-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Anonymous Zether performance and throughput on PoA chains #26
Comments
Front running problem and epoch times in ZetherFrom [2]:
|
I ran some experiments to understand the performance of anonymous zether running on a (local) quorum ledger. After doing so, I found it very hard to replicate the performance results shown in the section 3 of Anonymous Zether [1] paper. This issue describes and compares the measurements performed locally (A) and the measurements in the paper (B).
Note: "performance" in this context means time to transaction, ie, the time for the smart contract to verify the proof and settle the transaction so that a new transaction can be processed. Ultimately, I am trying to understand how many anonymous Zether transactions can a PoA blockchain process per day.
A. Performance study
Setup
Blockchain: Smart contracts running on Quorum PoA blockchain, with a validation pool of 7 Quorum nodes running on Docker, as in jpmorgan's examples repository
Epoch size: variable
1: Proof generation (using local JS library)
In this experiment, assuming that the epoch size is 1 in both experiments (no enough information about the experiments ran in the paper), the performance is similar to the measurements in the paper (see Fig.3 below)
2. E2E prover and verification times
This measurement refers to the E2E time from the proof generation in the client until the transaction is settled. As expected, the bottleneck is the epoch time, rather than the computational resources of the validator nodes or the proof/verification times.
B. Anonymous Zether paper performance study
Blockchain: not specified
Epoch time: not specified
Fig.3 : Performance measurements in [1]
Questions
It seems to me that epoch times are the hard bottleneck in the protocol, since no matter how fast on-chain verifications are, the verification smart contract has to wait for the end of the epoch to verify 1 transaction. This means that 10 verifications cost at minimum
10*epoch_time
, instead of10*(proof_time + verification_time + communication_time )
. Is this assumption correct?At this point, we can achieve 10 Anonymous Zether Tx per minute (600/h, 14,000/day). These values are based on a PoA blockchain with 7 Quorum validator nodes running locally on docker with a single thread and IBFT1.0 consensus protocol, with Anonymous Zether using PoC implementation and anonymity set size of 2. Is there any way to improve the throughput?
[1] Anonymous Zether paper
The text was updated successfully, but these errors were encountered: