Skip to content

zhendexuebuhui/pointproofs

 
 

Repository files navigation

Pointproofs

Build Status

This is Algorand's implementation of Pointproofs: Aggregating Proofs for Multiple Vector Commitments. This implementation uses bls12-381 curve.

Documentation

Code status

  • Version 0.1.
  • This code is NOT production-ready yet. It passed two external audits, but additional auditing and testing is required before deployment

Use this library directly

  • 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
  • Documentation: cargo doc --open

C wrapper

  • generate the header: make
  • test C wrapper: make test

Dependency

  • Pairing-plus library: stable dev.
    • A fork of zkcrypto's pairing library; with additional functions such as hash to groups and performance improvements such as sum of product.
  • 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.

License

MIT

Citation

@misc{Algo20,
    author    = {Algorand},
    title     = {Source code for Pointproofs},
    note      = "\url{https://github.com/algorand/pointproofs}",
    year      = {2020},
}

Performance

  • 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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 90.9%
  • C 8.9%
  • Makefile 0.2%