*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.