SNARK ⇒ Recursive SNARKs
Statement
Any SNARK for NP composes with itself, each proof attesting that one step was executed correctly and that the previous proof verifies, into proof-carrying data for constant-depth compliance predicates, and by depth reduction into incrementally verifiable computation for computations of any fixed polynomial length, with proof size and verification time independent of the number of steps, without random oracles — BCCT13.
Sketch
For a step function , the prover at step proves with the SNARK that there exist and with and . Knowledge soundness applies the SNARK extractor to the outer proof to recover the inner one and repeats down the chain; each nesting costs a polynomial blow-up in extraction time, so the depth of direct composition must be constant.