This is Algorand's implementation of Pointproofs: Aggregating Proofs for Multiple Vector Commitments. This implementation uses bls12-381 curve.
- Version 0.1.
- This code is NOT production-ready yet. It passed two external audits, but additional auditing and testing is required before deployment
- Install rust and cargo toolchain
- Build library:
cargo build --release
- Run example:
cargo run
- Run tests:
cargo test [-- --ignore] [--release]
- Benchmark:
cargo bench
- see
benches
folder for more options
- see
- Documentation:
cargo doc --open
- generate the header:
make
- test C wrapper:
make test
Pairing-plus
library: stable dev.- A fork of zkcrypto's pairing library; with additional functions such as
hash to groups
and performance improvements such assum of product
.
- A fork of zkcrypto's pairing library; with additional functions such as
pointproofs-paramgen
: stable dev- This crate is used to generate the so called common reference string in an MPC manner.
- A sample CRS is provided with the code for testing purpose.
MIT
@misc{Algo20,
author = {Algorand},
title = {Source code for Pointproofs},
note = "\url{https://github.com/algorand/pointproofs}",
year = {2020},
}
- dimension = 1024
- AWS with Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30 GHz
operation | cost |
---|---|
commit_new | 54.34 ms |
proof_new | 54.41 ms |
single commit 8 proof aggregate | 1.55 ms |
verification (with proof deserialize) | 4.69 ms |
See here for more data.