An interactive protocol between a prover and verifier that takes two instances as common input. The prover also gets witnesses as input. It outputs a folded instance (idea: for the verifier’s random challenge ). The prover also outputs a folded witness (idea: ).

Allows compressing many statements into one statement of essentially the same size. Enables IVC.

Properties

  • Completeness: If the original , then also the folded
  • Soundness: Given and the folded , can (with Rewinding magic) compute valid witnesses for the unfolded statements .
    • More formally: Given the folded witness and the original instances that folded into (and three transcripts of the folding protocol with different challenges), one can efficiently compute witnesses (such that )
  • Zero Knowledge: the transcript doesn’t leak anything about the witness.

Instantiations

Resources