
Recursive SNARKs Explained: How Proofs Verify Other Proofs
What If a Proof Could Check Another Proof? In most zero-knowledge systems, a verifier checks a single proof against a single statement. Recursive SNARKs break this model open: a proof can itself verify another proof, creating chains -- or even trees -- of verified computation. This is not a theoretical curiosity. Recursive composition is the core mechanism behind zkRollups that batch thousands of transactions into a single on-chain proof, and behind systems like Nova, Halo 2, and SP1 that achieve incrementally verifiable computation (IVC). How It Works A standard SNARK proves: "I know a witness w such that C(x, w) = true ." A recursive SNARK proves something stronger: "I know a witness w and a valid proof π of a prior statement, and both check out." The trick is encoding the verifier circuit inside the proving circuit. The prover runs the previous verifier as a sub-computation, then proves that the entire thing -- new computation plus old verification -- is correct. This is expensive.
Continue reading on Dev.to
Opens in a new tab




