Skip to content

Commit 317733e

Browse files
authored
Merge pull request #39 from AAU-Dat/readthroughchanges
Readthrough changes
2 parents 96db1bc + e07eea2 commit 317733e

11 files changed

+82
-83
lines changed

report/src/sections/00-abstract.tex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11

22
\begin{abstract}
3-
Ethereum is one of the leading proof-of-stake blockchains.
3+
Ethereum is one of the leading Proof-of-Stake blockchains.
44
However, it is still vulnerable to attacks.
55
One such attack is the de-anonymization attack by Heimbach et al.~where an adversary could get validator IP addresses and then perform a denial-of-service attack on them.
66
To try and combat this attack, Ethereum has proposed the use of the Whisk protocol.
7-
Whisk is a Single secret leader election protocol that uses a zero-knowledge proof called Curdleproofs that uses inner product arguments to prove the validity of a shuffle of validators.
8-
This paper improves upon Curdleproofs' inner product arguments by introducing CAAUrdleproofs, which is a modified version of Curdleproofs with ideas from Springproofs as to overcome the limitations of Curdleproofs regarding the shuffle size.
7+
Whisk is a Single Secret Leader Election protocol that uses a zero-knowledge proof called Curdleproofs that uses Inner Product Arguments to prove the validity of a shuffle of validators.
8+
This paper improves upon Curdleproofs' Inner Product Arguments by introducing CAAUrdleproofs, which is a modified version of Curdleproofs with ideas from Springproofs as to overcome the limitations of Curdleproofs regarding the shuffle size.
99
We show that CAAUrdleproofs has similar proving and verifying times to Curdleproofs when the shuffle size is a power of two.
1010
We also show that CAAUrdleproofs has a performance advantage for any shuffle size that is not a power of two, and that this advantage grows the lower the shuffle size is below a power of two.
1111
After performing experiments, we also suggest a new shuffle size which is smaller than the current one used in Curdleproofs that would result in a smaller block overhead than the one created by the current Curdleproofs protocol.
@@ -14,5 +14,5 @@
1414
\end{abstract}
1515

1616
\begin{IEEEkeywords}
17-
Ethereum, Proof of Shuffle, Distributed Systems, Inner Product Arguments, Zero-Knowledge Proof
17+
Ethereum, Proof of Shuffle, Distributed Systems, Inner Product Arguments, Zero-Knowledge Proof, Single Secret Leader Election
1818
\end{IEEEkeywords}

report/src/sections/01-introduction.tex

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,27 @@
33
\section{Introduction}\label{sec:introduction}
44
Ethereum is a decentralized blockchain platform that enables developers to build and deploy smart contracts and decentralized applications.
55
It is the second-largest blockchain platform by market capitalization and has a large and active developer community.
6-
Currently working as a Proof-of-Stake protocol, block proposal opportunities are allocated to the community members willing to stake their ether cryptocurrency on entities called validators.
6+
Currently working as a Proof-of-Stake protocol, block proposal opportunities are allocated to validators, which can be created by community members willing to stake their ether cryptocurrency.
77
Though, previous work from Heimbach et al., confirmed also by our previous study, shows that adversaries are able to gather validator IP addresses~\cite{heimbach2024deanonymizingethereumvalidatorsp2p,ouroldpaper}.
88
These can be used to perform a Denial-of-Service (DoS) attack on the validators, threatening the liveness of the blockchain~\cite{EthereumAttackDefense2024,ouroldpaper}.
99

10-
In response to the potential threat, Ethereum has proposed a protocol, Whisk, which hides validators' identities making the DoS attack harder to perform~\cite{Whisk2024}.
10+
In response to the potential threat, Ethereum has proposed a protocol, Whisk, which hides block proposers' identities making the DoS attack harder to perform~\cite{Whisk2024}.
1111
Whisk is a Single Secret Leader Election (SSLE) protocol~\cite{10.1145/3419614.3423258}, where validators each publish a private tracker, which is used for proposer selection instead.
1212
When proposing a block, the validator will then prove the ownership of the tracker.
1313
To ensure that adversaries are unable to trace the tracker to specific validators, each block proposer shuffles the list of validator trackers while adding randomness to the trackers.
1414

1515
Making sure that this has been done correctly is essential to the protocol.
16-
Hence, Whisk uses a proof protocol, called Curdleproofs, which is a Zero-Knowledge proof of shuffle~\cite{Curdleproofs}.
16+
Hence, Whisk uses a proof protocol, called Curdleproofs, which is a Zero-Knowledge Proof of Shuffle~\cite{Curdleproofs}.
1717
Therefore, the block proposer constructs such a proof, adds it to the block, after which other validators can verify the proof.
1818

19-
This introduces block size overhead to the blockchain.
19+
This introduces a block size overhead to the blockchain.
2020
Also, additional work is required for both provers and verifiers.
2121

2222
In this paper, we dive into the structure of Curdleproofs to understand, where the protocol can be optimized.
23-
Specifically, we work with the concept of Inner Product Arguments (IPA) and how they generally only work for vector sizes that are powers of two.
23+
Specifically, we work with the concept of Inner Product Arguments (IPAs) and how they generally only work for vector sizes that are powers of two.
2424

2525
Our protocol, CAAUrdleproofs, aims to improve on the rigid nature of Curdleproofs.
26-
Following this, we also provide argumentation of in which conditions CAAUrdleproofs is still secure.
26+
Following this, we also provide argumentation of the conditions in which CAAUrdleproofs is still secure.
2727

2828
Working with this led to the following contributions:
2929
\begin{itemize}

report/src/sections/02-background.tex

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ \subsection{Zero-knowledge proofs}\label{sec:background-zkps}
7373

7474
Definitions for knowledge-soundness, completeness, and~\gls{hvzk} can be found in Appendix~\ref{sec:appendix}.
7575

76-
Also, two of three proofs that make up Curdleproofs are~\glspl{ipa}.
76+
Also, two of three proofs that make up Curdleproofs are proven using~\glspl{ipa}.
7777
These are also~\glspl{zkp}, and will be the focus of this paper.
7878
Hence, we provide a definition on~\glspl{ipa}.
7979

@@ -90,19 +90,20 @@ \subsection{Whisk}\label{subsec:related-work-whisk}
9090

9191
The proposer~\gls{dos} attack is a type of attack that targets the block proposers, making them unable to propose blocks.
9292
An adversary can use the proposer~\gls{dos} attack to prevent a proposer from receiving rewards, gotten from proposing a block, and increase their own rewards~\cite{EthereumSSLE2024}.
93+
The proposer~\gls{dos} is made possible by an attack on the Ethereum network that was discovered by Heimbach et al.~\cite{heimbach2024deanonymizingethereumvalidatorsp2p} in which they deanonymize validators and get their IP addresses.
94+
In our preliminary work~\cite{ouroldpaper}, we show that the attack is still possible to perform on the Ethereum network.
9395
As a response to the proposer~\gls{dos} attack, Ethereum proposed a new protocol called Whisk~\cite{Whisk2024} as an attempt to mitigate the attack.
94-
An attack on the Ethereum network that was discovered by Heimbach et al.~\cite{heimbach2024deanonymizingethereumvalidatorsp2p} is the deanonymization attack on validators.
95-
In our preliminary work~\cite{ouroldpaper}, we show that the attack is still possible to perform on the Ethereum network, and using the attack, a proposer~\gls{dos} can be performed.
96-
9796

9897
Whisk is a~\gls{zk}~\gls{ssle} system that uses a~\gls{zk} argument called Curdleproofs~\cite{Curdleproofs} to verify the correctness of a shuffle with size $\ell$ without revealing the input or output~\cite{10.1145/3419614.3423258}.
99-
Whisk works by selecting a list of 16,384 validator trackers and shuffles them over 8,192 slots ($\sim$1 day).
98+
Whisk works by selecting a list of 16,384 validator trackers and then the following 8,192 block proposers shuffle them over 8,192 slots ($\sim$1 day).
10099
Then 8,192 proposers are selected from the shuffled list to propose blocks for the next 8,192 slots while a new list is being shuffled.
101-
This way a new list of proposers is created every day.
100+
This way, a new list of proposers is created every day.
102101
After each shuffle, Whisk uses a~\gls{zkp} to prove that the shuffle is correct.
103-
This is so that the proposer can prove that they are the correct proposer for the slot without revealing their identity, thereby mitigating the proposer~\gls{dos} attack because of the identity of the upcoming proposers being hidden now.
102+
As the specific shuffle is hidden to prevent adversarial tracking, this is done to ensure that the trackers are shuffled according to protocol specifications.
103+
Whenever a proposer is chosen, they can prove that they are the correct proposer for the slot without revealing their identity.
104+
Thereby, Whisk mitigates the proposer~\gls{dos} attack because of the identity of the upcoming proposers being hidden now.
104105

105-
Curdleproofs is a~\gls{zkp} system that allows a prover to prove knowledge of a shuffle without revealing how it shuffled the elements.
106+
Curdleproofs is a~\gls{zkp} system, used by Whisk, that allows a prover to prove knowledge of a shuffle without revealing how it shuffled the elements.
106107
It does so by using three different~\glspl{zkp}, with one of them relying on two more~\glspl{zkp}.
107108
The overview can be seen in~\autoref{fig:curdleproof-protocol}.
108109

@@ -170,8 +171,8 @@ \subsection{Whisk}\label{subsec:related-work-whisk}
170171

171172
The second proof is a~\gls{samemsm} argument.
172173
The prover has proven the existence of the permutation.
173-
Now, the goal of the~\gls{samemsm} argument is to prove that the output ciphertext set was constructed with the same permutation, $\sigma$, here called multiscalar $\mathbf{v}$\footnote{Denoted as $\mathbf{c}$ in the Curdleproofs paper but changed for readability}, committed to in commitment $A$.
174-
Note, therefore, that $A$ in~\gls{sameperm} and~\gls{samemsm} is the same commitment, where $\mathbf{v}=\sigma(\mathbf{a})$
174+
Now, the goal of the~\gls{samemsm} argument is to prove that the output ciphertext set was constructed with the same permutation,~$\sigma$, here called multiscalar $\mathbf{v}$\footnote{Denoted as $\mathbf{c}$ in the Curdleproofs paper but changed for readability}, committed to in commitment $A$.
175+
Note, therefore, that commitment~$A$ in~\gls{sameperm} and~\gls{samemsm} is the same commitment, where $\mathbf{v}=\sigma(\mathbf{a})$.
175176
As the multiscalar is a vector, this argument is an~\gls{ipa} by nature, contrary to the~\gls{sameperm} argument.
176177

177178
The third proof is a Same Scalar argument.
@@ -181,7 +182,7 @@ \subsection{Whisk}\label{subsec:related-work-whisk}
181182
Therefore, the goal of the Same Scalar argument is to prove the existence of the scalar,~$k$, such that the commitment of the permuted set is equal to the commitment of the pre-permuted set multiplied by $k$.
182183

183184

184-
In Chapter 6 of Curdleproofs~\cite{Curdleproofs} they explain that the proof has size~$18+10 \log(\ell+4)\mathbb{G}$, $7\mathbb{F}$, where $\mathbb{G}$ is a cryptographic group point, and $\mathbb{F}$ is a field element.
185+
In Chapter 6 of Curdleproofs~\cite{Curdleproofs} they explain that the proof has size~$(18+10 \log(\ell+4))\mathbb{G}+7\mathbb{F}$, where $\mathbb{G}$ is a cryptographic group point, and $\mathbb{F}$ is a field element.
185186

186187
\subsection{Problem definition}\label{subsec:problem-definition}
187188
The current proposal of Curdleproofs only works when the shuffle size of Whisk is set to a power of 2.

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

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ \section{Related Work}\label{sec:related-work}
44

55

66
\subsection{Single Secret Leader Election}\label{sec:related-work-SSLE}
7-
A~\gls{ssle} is a protocol where a group of participants randomly elects only one leader from the group.
7+
An~\gls{ssle} is a protocol where a group of participants randomly elects only one leader from the group.
88
The identity of the leader is kept secret from all other participants so only the leader themselves know that they have been chosen.
99
The elected leader can then later publicly prove that they have been elected~\cite{10.1145/3419614.3423258}.
1010

@@ -18,7 +18,7 @@ \subsection{Single Secret Leader Election}\label{sec:related-work-SSLE}
1818
Safrole is the production version of the research protocol Sassafras~\cite{sassafras}.
1919
In this, validators each produce a number of tickets, some of which are winning, depending on some threshold.
2020
A~\gls{zk-snark} is then used to prove that a ticket is winning, after which the winning tickets are published to the chain.
21-
A randomization algorithm will then pick, from all the winning tickets, proposers for all the slots two epochs later.
21+
A randomization algorithm will then pick proposers from all the winning tickets for all the slots two epochs later.
2222

2323

2424

@@ -40,17 +40,17 @@ \subsection{Shuffling algorithms}\label{subsec:related-work-shuffling-algorithm}
4040
Ethereum mentioned the reason for this to be that the shuffle by Larsen et al.\ provides a simpler protocol~\cite{Whisk2024}.
4141

4242
\subsection{Bulletproofs}\label{subsec:related-work-bulletproofs}
43-
A big inspiration for the Curdleproofs protocol is bulletproofs~\cite{bunz2018bulletproofs}.
44-
Bulletproofs is a type of range proof that uses inner product arguments to prove that a committed value is within a certain range without revealing the value itself.
45-
Bulletproofs is in itself not a zero-knowledge proof system, but with the help of Fiat Shamir~\cite{bunz2018bulletproofs} it can be used to create a zero-knowledge proof.
46-
Bulletproofs also has had a few iterations and improvements to increase the speed and reduce the size of the proof since it was used in curdleproofs.
47-
48-
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-
Bulletproofs+ is also a zero-knowledge proof by itself unlike the original bulletproofs.
50-
Trying to modify Curdleproofs with the weighted inner product argument introduces complications that would need larger modifications and is therefore not suitable.
43+
A big inspiration for the Curdleproofs protocol is Bulletproofs~\cite{bunz2018bulletproofs}.
44+
Bulletproofs is a type of range proof that uses~\glspl{ipa} to prove that a committed value is within a certain range without revealing the value itself.
45+
Bulletproofs is in itself not a~\gls{zkp} system, but with the help of Fiat Shamir~\cite{bunz2018bulletproofs} it can be used to create a~\gls{zkp}.
46+
Bulletproofs also has had a few iterations and improvements to increase the speed and reduce the size of the proof since it was used in Curdleproofs.
47+
48+
One of these is Bulletproofs+~\cite{chung2022bulletproofs+} which uses a~\gls{wipa} instead of the standard~\gls{ipa} to achieve a better performance.
49+
Bulletproofs+ is also a~\gls{zkp} by itself unlike the original Bulletproofs.
50+
Trying to modify Curdleproofs with the~\gls{wipa} introduces complications that would need larger modifications and is therefore not suitable.
5151
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.
55-
Therefore, with the two vectors, $x$ and $y$ of a standard~\gls{ipa}, they need to assume $x=y$ for their protocol to work.
55+
Therefore, with the two vectors, $x$ and $y$ of a standard~\gls{ipa}, they need to assume~$x=y$ for their protocol to work.
5656
Then, along with the norm being weighted, which raises the same complications as with Bulletproofs+, this makes it unsuitable for Curdleproofs.

0 commit comments

Comments
 (0)