Learning/Teaching repository for Groth16 proof systems.
Protocol relies on pairing-friendly elliptic curves:
- BN254
- BLS12-381
- BLS12-377
Proof size consists of 3 elliptic curve elements and is among the fastest to verify, but it requires a trusted setup per program.
- Intro to QAPs & SNARKs : https://medium.com/@VitalikButerin/quadratic-arithmetic-programs-from-zero-to-hero-f6d558cea649
- https://eprint.iacr.org/2016/260.pdf
- https://blog.lambdaclass.com/groth16/
- Implementation of the above article : https://github.com/lambdaclass/lambdaworks/tree/main/provers/groth16
- https://www.rareskills.io/post/groth16
- https://medium.com/ppio/how-to-generate-a-groth16-proof-for-forgery-9f857b0dcafd
- https://arxiv.org/pdf/2212.01855.pdf