Skip to content

Anonymous Zether performance and throughput on PoA chains  #26

Description

@gpestana

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)

Anonymity set size Avg. time (ms) Epoch time Outliers
2 2023 1 3523, 3570, 2665

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.

Screenshot 2019-08-27 at 18 40 23

B. Anonymous Zether paper performance study

Blockchain: not specified
Epoch time: not specified

Screenshot 2019-08-27 at 18 16 59

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 of 10*(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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions