ZKMember is a benchmark project designed to build and evaluate membership circuits using various SNARK protocols and finite fields. This project aims to provide a comprehensive comparison of different approaches to constructing and verifying membership proofs in zero-knowledge settings.
The primary goal of ZKMember is to:
- Implement membership circuits using different SNARK protocols.
- Explore the use of various finite fields in these implementations.
- Benchmark the performance and efficiency of each approach.
- Multiple SNARK Protocols: Support for various SNARK protocols to provide a broad comparison.
- Finite Fields: Utilization of different finite fields to assess their impact on performance.
- Benchmarking Tools: Comprehensive tools to measure and compare the efficiency of each implementation.
To quickly get started with the ZKMember CLI application, follow these steps:
- Ensure you have Rust installed. If not, you can install it from rust-lang.org.
- Clone the repository:
git clone https://github.com/abipalli/zkmember.git cd zkmember
To run the benchmarks for groth16
circuits, run the following:
cargo bench --bench groth16
groth16
always uses circuit-specific constraints.
To run the benchmarks for marlin
circuits with circuit-specific constraints, run the following:
cargo bench --bench marlin
To run the benchmarks for marlin
circuits with universal constaraints, simply add the universal-constraints
feature:
cargo bench -F universal-constraints --bench marlin