jdwhite48 / groth-sahai-wrappers

A library for constructing Groth-Sahai proofs using pre-built wrappers
Other
1 stars 0 forks source link

Groth-Sahai Wrappers

A Rust library containing wrappers that facilitate the construction of non-interactive witness-indistinguishable and zero-knowledge proofs about various equations over bilinear groups [1]. See the corresponding Groth-Sahai library for more details about how Groth-Sahai has been implemented.

This library is distributed under the MIT License and the Apache v2 License (see License).

⚠ Disclaimer ⚠

Getting Started

Installation

First, install the latest version of Rust using rustup:

rustup install stable

After that, use Rust's cargo to compile the library:

git clone https://github.com/jdwhite88/groth-sahai-wrappers.git
cd groth-sahai-wrappers
cargo build

Test

To run the unit tests (in each source file) and integration tests (in tests):

cargo test

To run the benchmark tests (in benches):

cargo bench

Supported Wrappers

Dependencies

Contributing

If you notice a bug, would like to ask a question, or want to propose a new wrapper, feel free to open an issue!

If you would like to contribute, but have not been invited as a direct collaborator to the project, follow the procedure below (keeping in mind these instructions if you are attempting to resolve an open issue):

  1. Fork the project
  2. Create your feature branch (git checkout -b feature-branch main)
  3. Commit your changes (git commit -m 'Resolves #i; commit message')
  4. Push to the branch (git push origin feature-branch)
  5. Open a pull request to merge with this repo (preferably linked to an issue)

References

[1] Jens Groth and Amit Sahai. Efficient Non-interactive Proof Systems for Bilinear Groups, Advances in Cryptology -- EUROCRYPT 2008: 27th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Istanbul, Turkey. Springer Berlin Heidelberg, vol 4965: 415–432, 2008.

[2] Essam Ghadafi, Nigel P. Smart, and Bogdan Warinschi. Groth-Sahai proofs revisited. In Phong Q. Nguyen and David Pointcheval, editors, PKC 2010, volume 6056 of LNCS, pages 177–192. Springer, Heidelberg, May 2010.

[3] Jens Groth. On the size of pairing-based non-interactive arguments. In Marc Fischlin and Jean-Sébastien Coron, editors, EUROCRYPT 2016, Part II, volume 9666 of LNCS, pages 305-326. Springer, Heidelberg, May 2016.

License

This library is distributed under either of the following licenses:

Unless explicitly stated otherwise, any contribution made to this library shall be dual-licensed as above (as defined in the Apache v2 License), without any additional terms or conditions.

Authors