You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
66
67
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.
67
68
In Whisk, it uses Curdleproofs to prove the validity of a shuffle.
68
69
69
70
\begin{definition}[Zero-Knowledge Argument of Knowledge]
70
71
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.
71
72
\end{definition}
72
73
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}.
74
75
75
76
Also, two of three proofs that make up Curdleproofs are~\glspl{ipa}.
76
77
These are also~\glspl{zkp}, and will be the focus of this paper.
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.
49
49
Bulletproofs+ is also a zero-knowledge proof by itself unlike the original bulletproofs.
50
50
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}
52
52
53
53
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.
54
54
This comes from the prover only needing to commit to a single vector, rather than two.
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.
403
403
404
404
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}$.
406
406
The dependence on the $\log$ stems from the number of recursive rounds that take place in the~\gls{sameperm} and~\gls{samemsm} proofs.
407
407
The addition of four elements in the $\log$ stems from the protocol needing those as blinders.
408
408
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.
410
411
This means that the size of CAAUrdleproofs must be $18+10\lceil\log(\ell+4)\rceil\mathbb{G}$, $7\mathbb{F}$.
411
412
412
413
CAAUrdleproofs therefore has the same proof size as Curdleproofs.
413
414
414
415
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}.
416
417
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}:
418
419
\begin{itemize}
419
420
\item List of shuffled trackers ($\ell\cdot96\Rightarrow\text{eg. }124\cdot96=11,904$ bytes).
\item A fresh tracker (two BLS G1 points $\Rightarrow48\cdot2=96$ bytes).
422
423
\item A new commitment $com(k)$ to the proposer's tracker (one BLS G1 point $\Rightarrow48$ bytes).
423
424
\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).
424
425
\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.
Copy file name to clipboardExpand all lines: report/src/sections/06-results.tex
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -24,7 +24,7 @@ \subsection{Proving and Verifying Times}\label{subsec:results:provingverifying}
24
24
Though, this seems to not be the case, at least not as aggressively, when increasing $\ell$ from 128.
25
25
We find, however, that the bump is smaller the higher $\ell$ is.
26
26
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}.
28
28
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.
0 commit comments