Show HN: I Built a Groth16 ZK-Proof Verifier from Scratch Using Rust

github.com

6 points by furfural 6 days ago

I've always been fascinated by cryptographic principles, so I decided to dive deep into zero-knowledge proofs and implement a Groth16 proof verifier entirely in Rust. This project validates cryptographic proofs and demonstrates how succinct, verifiable computations can be achieved.

Using Rust's powerful libraries like arkworks, I implemented pairing checks, public input commitments, and proof validation logic while ensuring the code remains modular and efficient.

I handled the complexities of affine group operations, scalar multiplications, and optimized public input verification to make this a practical ZK verifier.

Let me know what you think! Happy to answer questions about the design, challenges, or ZK cryptography in general.

michael0x11 6 days ago

You might want to check out bellman-rs for a more battle-tested implementation of Groth16 - it handles edge cases like subgroup checks that are easy to miss when rolling your own pairing-based crypto, plus it's already being used in production by several ZK projects.

  • furfural 6 days ago

    okay I see thanks for the insights

keyvank 5 days ago

nice job! now it's time for the prover part :)