Lumen Loop
All media
VideoYouTubeJames BachiniMarch 2, 20262mo ago6:36

Noir x Groth16 Verifier

Tutorial demonstrating how to write zero-knowledge circuits in Noir, compile them to R1CS, generate Groth16 proofs with Snark.js, and verify them on Stellar blockchain via smart contracts.

Smart ContractsDeveloper ToolsSoroban
Lumen Loop's take

This tutorial walks through building and deploying zero-knowledge proofs on Stellar. The speaker demonstrates writing a simple circuit in Noir (a Rust-based domain-specific language), compiling it to R1CS format compatible with Snark.js, generating Groth16 proofs, and verifying them on-chain in a Stellar smart contract. The workflow allows users to generate proofs locally in the browser while keeping private data private, then submit only the proof to an RPC node for verification. The repository includes example circuits, compilation scripts, and a Soroban smart contract for verification. The speaker explains the technical challenges of lowering ACIR opcodes to R1CS and notes that simpler circuits compile more reliably than exotic ones.