*Sources:

Warm-up: Clover (BTVW14)

Achieves a verification time independent of the circuit depth!

Idea: Instead of committing to the witness, commit to the full transcript, i.e., the evaluation of every single gate in the circuit Higher commitment cost than GKR

  • The prover claims to “hold” an extension of a correct transcript.
  • For a circuit of gates, let’s define which takes 3 gate labels as inputs and output iff.:
    • : has and as inputs and is an addition / multiplication gate
    • : gate is either a gate from the circuit input and or one of the output gates, and gates and are the inputs to
  • Also, with if is an input gate, if is an output gate, and otherwise
  • Then, is a correct transcript iff. the following function vanishes on the boolean hypercube: Apply the Multivariate Zero Check Protocol
  • To evaluate at 3 random inputs, the verifier can reduce to one point (see Reducing Multiple Evaluations to One) and then query the second prover (i.e., request an evaluation prove from the PCS) Possible to implement prover in time

Spartan (Setty, 20)

An R1CS instance is specified by 3 matrices , , and and is satisfiable if there is a vector with such that:

This can be proven by showing that the following polynomial vanishes on the boolean hypercube:

This can be shown using the Multivariate Zero Check Protocol.

To evaluate the at a random point, the Multivariate Sum-Check Protocol can be executed 3 times in parallel using the same randomness. The prover can be implemented in time linear time in the number of non-zero entries in , , and using Spark.

Generalization to CCS

I think this is best described in Lev’s post:

  • You can see R1CS of a very simple AIR of virtual columns , , and : a * b = c. Note that this already allows to express copy constraints, because can be such that the same element in is selected multiple times.
  • CCS generalizes this notion and allows for number of virtual columns (with a matrix each) and any number of constraints between them.
  • As a result, CCS generalizes R1CS, PlonK and AIR.
  • Spartan generalizes to CCS.