Source: Proofs, Arguments, and Zero-Knowledge, chapter 8
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 .