decider for offchain verification

Overview: This section describes the Decider (compressed SNARK / final proof) for the non-ethereum use cases in which the verification of the Nova+CycleFold proofs is done offchain. For onchain Ethereum use cases, check out the decider-onchain section.

Setup

At the final stage of the Nova+CycleFold folding, after iterations, we have the committed instances and their respective witnessess.

cyclefold diagram Diagram source: CycleFold paper (https://eprint.iacr.org/2023/1192.pdf). In the case of this document , so , , .

We work with a cycle of curves and , where and . We will use for referring to , and for referring to . The main circuit constraint field is , and circuit constraint field is .

The and contain:

And contains:

Decider high level checks

These are the same checks for both the Onchain & Offchain Deciders. The difference lays on how are performed.

  1. check
  2. check that and
  3. check that and
  4. correct RelaxedR1CS relation of of the AugmentedFCircuit
  5. check commitments of with respect (where )
  6. check the correct RelaxedR1CS relation of of the CycleFoldCircuit
  7. check commitments of with respect (where )

Offchain Decider approach

In the offchain case, since we can end up with proofs in both curves of the cycle, we try to fit all the computations natively in each curve respectively.

We use the same checks numbers as the ones used in the Onchain Decider in order to make the relation of the checks easier to follow.

Circuit1 ()

  • 1.1: check that the given NIFS challenge is indeed well computed. This challenge is then used outside the circuit by the Verifier to compute NIFS.V obtaining
  • 2: check that and
  • 3: check that and
  • 4: correct RelaxedR1CS relation of of the AugmentedFCircuit
  • 5.1: Check correct computation of the CommitmentScheme challenges for which we do through in-circuit Transcript.
  • 5.2: check that the CommitmentScheme evaluations for are correct

    • where are the interpolated polynomials from respectively,
      ie. , where is zero-padding to the next power of 2 length, and interpolates a (unique) polynomial from the vector

Circuit2 ()

  • 6: correct RelaxedR1CS relation of
  • 7.1: Check correct computation of the CommitmentScheme challenges for which we do through in-circuit Transcript.
  • 7.2: check that the CommitmentScheme evaluations for are correct

    • where are the interpolated polynomials from respectively.

Outside the circuits

  • 1.2. check
  • 5.3: Commitments verification of with respect (where )
  • 7.3: Commitments verification of with respect (where )

Proving scheme

We could use a SNARK adapted to RelaxedR1CS, but before that is ready we use a regular R1CS SNARK and check the RelaxedR1CS relations in-circuit as described above. Two proofs are generated, one for each circuit over their respective curves of the cycle.