This experimental example demonstrates the verification of a proof from another proof system, in this case Groth16 over the BN_254 curve, within the zkVM.
This example uses a pre-generated Groth16 proof
of a Sudoku solution generated via zkSudoku. You can also try with an ECDSA-circuit example created by 0xPARC or any other Circom project.
Specifically, you will learn:
- How to verify a Groth16 proof generated by Circom/SnarkJS. To learn how to generate such a proof, follow the zkSudoku README or the Circom tutorial.
- How to prove the verification of a Groth16 proof in the zkVM.
This example requires ~500M cycles to run and therefore will take some time to prove locally. We recommend running it on Bonsai or just running in DEV_MODE.
First, follow the installation guide if you don't already have the RISC Zero tools installed.
Then, run the example in DEV_MODE with:
RISC0_DEV_MODE=1 cargo run --release