A minimal implementation of the Groth16 zero-knowledge proof system, built for study purposes.
This crate implements the three algorithms of Groth16:
- Setup — generates a proving key and verification key from a circuit and a toxic waste sample
- Prove — produces a proof for a given circuit instantiation and witness
- Verify — checks a proof against public inputs and the verification key
The implementation relies on the arkworks ecosystem:
ark-relations— R1CS constraint system constructionark-poly— polynomial arithmetic and FFT evaluation domainsark-ec— elliptic curve group operations and pairingsark-ff— finite field arithmetic
The test suite uses ark-bls12-381 as the concrete pairing-friendly curve.