This is a benchmarking implementation of Curve Trees. It is not for production purposes.
This repository contains:
- A modified version of dalek bulletproofs, which is adapted to support any curve implemented using the arkworks algebra library in addition to batch verification and vector commitments (see Generalized Bulletproofs).
- Bulletproof constraints to show that a commitment is a rerandomization of a member of the set represented by a curve tree. I.e. the select and rerandomize relation.
- Extensions for proving that batches of elements are in the set (Curve Forests)
- Benchmarks of the VCash anonymous payment system.
- Benchmarks of an accumulator based on opening a commitment extracted using the select and rerandomize relation.
To replicate the benchmarks in the Curve Trees paper run: cargo bench --features bench_prover
.
To get single core benchmarks disable default features: cargo bench --features bench_prover --no-default-features
.
The bulletproofs implementation is based on dalek bulletproofs and the arkworks algebra library.
This code is released under the MIT License.