Source: Proofs, Arguments, and Zero-Knowledge, Section 4.6.
An IP for general-purpose computation due to Goldwasser, Kalai, and Rothblum (2008).
The Setting
We assume the computation in a layered arithmetic circuit of low depth (as verification time will be linear in the depth of the circuit).
Notation:
- Layers are numbered from (output layer) to
- At each layer, there are gates
- denotes the functions that maps binary gate label in layer to its output
- Wiring predicates and are functions that map one gate label of layer and two of layer to a iff. they correspond to the two inputs and one output of an addition or multiplication, respectively
The protocol
can be explicitly expressed as follows:
This follows from the fact that multilinear extensions are unique and that the right-hand side is a multilinear polynomial.
Now, the algorithm is as follows:
- The prover provides the claimed output, from which the verifier can reconstruct the claimed polynomial
- The verifier can test for equality at a random point by applying the Multivariate Sum-Check Protocol to the expression above
- At the end of the sum-check protocol, the verifier needs to evaluate , , and at a random point. For the wiring predicates, we assume that this can be done efficiently.
- For the evaluation of at two random points, we apply a reduction to one point → Reducing Multiple Evaluations to One
- In the final layer, is simply the multilinear extension provided by the prover (i.e., all inputs are public)
In more detail:
Runtimes & Soundness errors
Communication cost: Verifier cost: , where is the time needed for all evaluations of the wiring predicates
- in for many common wiring patterns, including matrix multiplication, Fast Fourier Transforms, distinct elements, …
- However, there is no clean categorization of when this is the case
- If it’s not possible, one can resort to polynomial commitment schemes, resulting in an argument instead of an interactive proof Prover cost: Analogous to the cost analysis in Super-Efficient IP for Matrix Multiplication, we can exploit the fact that wiring predicates are sparse Soundness error:
- If the claimed output does not equal the actual output, in at least one round, the prover must have sent a polynomial that is different from the one the honest prover would have sent
- The probability of this being undetected is , by the Schwartz-Zippel Lemma