risc0_zkvm

Module recursion

Source
Available on non-target_os="zkvm" and crate feature prove only.
Expand description

Prover implementation for the recursion VM.

This module contains the recursion programs used with the zkVM. As examples, the lift, join, and resolve programs are used oto compress a collection of STARK receipts for a composition into a single succinct receipt.

Structs§

  • Merkle tree implementation used in the recursion system to commit to a set of recursion programs, and to verify the inclusion of a given program in the set.
  • An inclusion proof for the MerkleGroup. Used to verify inclusion of a given recursion program in the committed set.
  • A Program for the recursion circuit (e.g. lift_20 or join).
  • Prover for zkVM use of the recursion circuit.

Constants§

  • Control IDs allowed in the default set of recursion programs. Includes control IDs for the base set of recursion programs, and each power-of-two of the rv32im circuit, using Poseidon2.
  • Root of the Merkle tree constructed from ALLOWED_CONTROL_IDS, using Poseidon2.
  • Number of rows to use for the recursion circuit witness as a power of 2.

Functions§

  • Prove the verification of a recursion receipt using the Poseidon254 hash function for FRI.
  • Run the join program to compress two receipts of the same session into one.
  • Run the lift program to transform an rv32im segment receipt into a recursion receipt.
  • TODO
  • TODO
  • Run the resolve program to remove an assumption from a conditional receipt upon verifying a receipt proving the validity of the assumption.
  • TODO