Skip to content

Commit f609aab

Browse files
committed
Changes from supervisors
1 parent 1eb91f1 commit f609aab

File tree

7 files changed

+20
-17
lines changed

7 files changed

+20
-17
lines changed

report/src/sections/02-background.tex

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,16 @@ \section{Background}\label{sec:background}
6262
\end{definition}
6363

6464
\subsection{Zero-knowledge proofs}\label{sec:background-zkps}
65-
Before explaining the protocol, we must mention that Curdleproofs is a~\gls{zkp} system, which is a system that allows a prover to convince a verifier that they know a secret without revealing the secret itself.
65+
Before explaining the protocol, we must mention that Curdleproofs, and hence also Whisk, is a~\gls{zkp} system.
66+
It is a system that allows a prover to convince a verifier that they know a secret without revealing the secret itself.
6667
Within the context of Ethereum, it could be the ability to convince someone that a transaction is valid without revealing information about the transaction such as the value of it.
6768
In Whisk, it uses Curdleproofs to prove the validity of a shuffle.
6869

6970
\begin{definition}[Zero-Knowledge Argument of Knowledge]
7071
An argument $(Setup, P, V)$ is a zero-knowledge argument of knowledge of a relation $\mathbb{R}$ if it satisfies completeness, knowledge-soundness and is honest-verifier zero-knowledge.
7172
\end{definition}
7273

73-
Definitions for knowledge-soundness, completeness, and~\gls{hvzk} can be found in Appendix~\autoref{app:definitions}.
74+
Definitions for knowledge-soundness, completeness, and~\gls{hvzk} can be found in Appendix~\ref{sec:appendix}.
7475

7576
Also, two of three proofs that make up Curdleproofs are~\glspl{ipa}.
7677
These are also~\glspl{zkp}, and will be the focus of this paper.
@@ -162,7 +163,7 @@ \subsection{Whisk}\label{subsec:related-work-whisk}
162163

163164
In order to show this, the protocol makes use of a~\gls{grandprod} argument.
164165
To prove that argument, Curdleproofs compiles it down to a~\gls{dlipa} by expressing each multiplication of the grand product as its own equation.
165-
This~\gls{dlipa} stems from the protocol originally proposed by Bootle et al.~\cite{cryptoeprint:2016/263,Curdleproofs}
166+
The proof of the~\gls{dlipa} then stems from the protocol originally proposed by Bootle et al.~\cite{cryptoeprint:2016/263,Curdleproofs}
166167

167168
Hence, the~\gls{sameperm} proof is done if the prover can prove the~\gls{dlipa}.
168169

report/src/sections/03-related-work.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ \subsection{Bulletproofs}\label{subsec:related-work-bulletproofs}
4848
One of these is Bulletproofs+~\cite{chung2022bulletproofs+} which uses a weighted inner product argument instead of the standard inner product argument to achieve a better performance.
4949
Bulletproofs+ is also a zero-knowledge proof by itself unlike the original bulletproofs.
5050
Trying to modify Curdleproofs with the weighted inner product argument introduces complications that would need larger modifications and is therefore not suitable.
51-
This can be seen in Appendix~\autoref{app:bpplus}
51+
This can be seen in Appendix~\ref{app:curdleproofs-weighted-inner-product-argument-modification-attempt}
5252

5353
A third version of the Bulletproofs protocol is Bulletproofs++~\cite{eagen2024bulletproofs++} which uses a new type of argument called the norm argument to achieve a better performance.
5454
This comes from the prover only needing to commit to a single vector, rather than two.

report/src/sections/04-Approach.tex

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -402,25 +402,26 @@ \subsubsection{Size reduction}
402402
If we can reduce the shuffle size used in Whisk and still prove it secure, then we expect to see some reduction in the size overhead on the blockchain.
403403

404404
We first set our focus on Curdleproofs, as this is the protocol we have modified directly.
405-
As mentioned in~\autoref{sec:background-zkps}, the size of Curdleproofs is $18+10 \log(\ell+4)\mathbb{G}$, $7\mathbb{F}$.
405+
As mentioned in~\autoref{subsec:related-work-whisk}, the size of Curdleproofs is $18+10 \log(\ell+4)\mathbb{G}$, $7\mathbb{F}$.
406406
The dependence on the $\log$ stems from the number of recursive rounds that take place in the~\gls{sameperm} and~\gls{samemsm} proofs.
407407
The addition of four elements in the $\log$ stems from the protocol needing those as blinders.
408408
Hence, at a proof of size 128, $\ell$ is 124.
409-
In the proof of theorem 1, we show CAAUrdleproofs to be $\mathcal{O}(\log n)$.
409+
In the proof of theorem 1, see Appendix~\ref{sec:appendix-thm1proof}, we show that CAAUrdleproofs is $\mathcal{O}(\log n)$, which is the same as Curdleproofs.
410+
However, as discussed in~\autoref{subsec:approach-CAAUrdleproofs}, CAAUrdleproofs'~\gls{ipa} proofs use $\lceil \log n \rceil$ recursive rounds.
410411
This means that the size of CAAUrdleproofs must be $18+10 \lceil\log(\ell+4)\rceil\mathbb{G}$, $7\mathbb{F}$.
411412

412413
CAAUrdleproofs therefore has the same proof size as Curdleproofs.
413414

414415
The CAAUrdleproofs modification can still reduce the overall block size overhead, though.
415-
Using Whisk with CAAUrdleproofs has a block size of $16.656$ KB, when the shuffle size is 128\cite{Whisk2024}.
416+
By using the overhead calculation described by Whisk on CAAUrdleproofs, it measures a block overhead of $16.656$ KB, when the shuffle size is 128~\cite{Whisk2024}.
416417
Note that this is the same size as Curdleproofs, as the shuffle size is a power of 2.
417-
The calculation of the block size comes from the following, where $\mathbb{G}=48$ bytes and $\mathbb{F}=32$ bytes\footnote{\text{As noted in the code on the Curdleproofs GitHub repository: }\\ \href{https://github.com/asn-d6/curdleproofs/blob/main/src/whisk.rs}{https://github.com/asn-d6/curdleproofs/blob/main/src/whisk.rs}. Accessed: 26/05/2025}:
418+
The provided calculation of the block overhead is provided as the following, where $\mathbb{G}=48$ bytes and $\mathbb{F}=32$ bytes\footnote{\text{As noted in the code on the Curdleproofs GitHub repository: }\\ \href{https://github.com/asn-d6/curdleproofs/blob/main/src/whisk.rs}{https://github.com/asn-d6/curdleproofs/blob/main/src/whisk.rs}. Accessed: 26/05/2025}:
418419
\begin{itemize}
419420
\item List of shuffled trackers ($\ell\cdot96\Rightarrow\text{eg. }124\cdot96=11,904$ bytes).
420421
\item Shuffle proof ($18+10 \lceil\log(\ell+4)\rceil\mathbb{G}$, $7\mathbb{F}\Rightarrow\text{eg. }(18+10\lceil\log(124+4)\rceil)\cdot48+7\cdot32=4,448$ bytes).
421422
\item A fresh tracker (two BLS G1 points $\Rightarrow48\cdot2=96$ bytes).
422423
\item A new commitment $com(k)$ to the proposer's tracker (one BLS G1 point $\Rightarrow48$ bytes).
423424
\item A Discrete Logarithm Equivalence Proof on the ownership of the elected proposer commitment (two G1 points, two Fr scalars $\Rightarrow2\cdot48+2\cdot32=160$ bytes).
424425
\end{itemize}
425-
The majority of the block size comes from the list of shuffled trackers.
426-
Hence, using CAAUrdleproofs could majorly decrease the block size by allowing~$\ell$ to be chosen at arbitrary length.
426+
The majority of the block overhead comes from the list of shuffled trackers.
427+
Hence, as the list size is heavily dependent on~$\ell$, using CAAUrdleproofs could majorly decrease the block overhead by allowing~$\ell$ to be more flexibly chosen as a smaller size than 128.

report/src/sections/06-results.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ \subsection{Proving and Verifying Times}\label{subsec:results:provingverifying}
2424
Though, this seems to not be the case, at least not as aggressively, when increasing $\ell$ from 128.
2525
We find, however, that the bump is smaller the higher $\ell$ is.
2626

27-
Additional to the proving and verifying times, the time used on shuffling is also lower for any $\ell$ that is not a power of 2; see Appendix~\autoref{app:shuffling-times}.
27+
Additional to the proving and verifying times, the time used on shuffling is also lower for any $\ell$ that is not a power of 2; see Appendix~\ref{sec:shuffling-results}.
2828
Though, that was to be expected since CAAUrdleproofs uses the same shuffling algorithm as Curdleproofs, but does not have to add additional padding to the non-power of 2 input sizes.
2929

3030

report/src/sections/aa-appendix.tex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
% Main appendix file
55
% Insert appendix sections below
6-
\input{sections/appendix/01-appendix}\label{app:definitions}
7-
\input{sections/appendix/02-thm1proof}\label{app:thm1proof}
8-
\input{sections/appendix/03-bpplus}\label{app:bpplus}
9-
\input{sections/appendix/04-shuffling-times}\label{app:shuffling-times}
6+
\input{sections/appendix/01-appendix}
7+
\input{sections/appendix/02-thm1proof}
8+
\input{sections/appendix/03-bpplus}
9+
\input{sections/appendix/04-shuffling-times}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11

2-
\section{Curdleproofs Weighted Inner Product Argument Modification Attempt}\label{sec:curdleproofs-weighted-inner-product-argument-modification-attempt}
2+
\section{Curdleproofs Weighted Inner Product Argument Modification Attempt}\label{app:curdleproofs-weighted-inner-product-argument-modification-attempt}
3+
We have made code for the~\gls{ipa} in the Curdleproofs repository which actually works with Bulletproofs+' Weighted Inner Product Argument.

report/src/setup/acronyms.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,6 @@
2828
\newacronym{samemsm}{SameMSM}{Same Multiscalar Multiplication}
2929
\newacronym{rrc}{RRC}{re-randomizable commitment}
3030
\newacronym{eth}{ETH}{Ether}
31-
\newacronym{grandprod}{GrandProd}{Grand Product Argument}
31+
\newacronym{grandprod}{GrandProd}{Grand Product}
3232
\newacronym{dlipa}{DL IPA}{Discrete-Logarithm Inner Product Argument}
3333

0 commit comments

Comments
 (0)