GKR Protocol
The protocol is best presented in terms of the (arithmetic) circuit evaluation problem. In this problem, V and P first agree on a log-space uniform arithmetic circuit C of fan-in 2 over a finite field F, and the goal is to compute the value of the output gate(s) of C. A log-space uniform circuit C is one that possesses a succinct implicit description, in the sense that there is a logarithmic-space algorithm that takes as input the label of a gate a of C, and is capable of determining all relevant information about that gate. That is, the algorithm can output the labels of all of a’s neighbors, and is capable of determining if a is an addition gate or a multiplication gate.
Notation
Suppose we are given a layered arithmetic circuit C of size S, depth d, and fan-in two (C may have more than one output gate). Number the layers from 0 to d, with 0 being the output layer and d being the input layer. Let Si denote the number of gates at layer i of the circuit C. Assume Si is a power of 2 and let Si = 2ki. The GKR protocol makes use of several functions, each of which encodes certain information about the circuit:
Let Wi:{0,1}ki→F denote the function that takes as input a binary gate label, and outputs the corresponding gate’s value at layer i.
Let addi:{0,1}ki+2ki+1→{0,1} denote the function that takes as input three gate labels (a,b,c) and return 1 if and only if b and c are the first and second in-neighbour of gate a and gate a is an addition gate.
Let multi:{0,1}ki+2ki+1→{0,1} denote the function that takes as input three gate labels (a,b,c) and return 1 if and only if b and c are the first and second in-neighbour of gate a and gate a is a multiplication gate.
Let Wi, addi and multi denote the multilinear extensions of Wi, addi and multi.
Illustration
W0(0)=15, W1(0)=12, W1(1)=3, W2(0,0)=3, W2(0,1)=4, W2(1,0)=1, W2(1,1)=2
add0(0,0,1)=1 and equals to 0 for all other inputs
mult0 is 0 for all the inputs
add1(1,1,0,1,1)=1, for all the other inputs the output is zero
mult1(0,0,0,0,1)=1, for all the other inputs the output is zero
Important lemma
Wi(z)=∑b,c∈{0,1}ki+1addi(z,b,c)(Wi+1(b)+Wi+1(c))+multi(z,b,c)(Wi+1(b)⋅Wi+1(c))
Protocol
Let C be a layered arithmetic circuit of depth d and fan-in two on input x∈Fn. Throughout, ki denotes log2(Si) where Si is the number of gates at layer i of C.
At the start of the protocol, P sends a function D:{0,1}k0→F claimed to equal W0 (the function mapping output gate labels to output values).
V picks a random r0∈Fk0 and lets m0=D(r0). The remainder of the protocol is devoted to confirming that m0=W0(r0).
For i=0,1,...,d−1:
Define the (2ki+1)-variate polynomial fri(i)(b,c)=addi(ri,b,c)(Wi+1(b)+Wi+1(c))+multi(ri,b,c)(Wi+1(b)⋅Wi+1(c)).
P claims that ∑b,c∈{0,1}ki+1fri(i)(b,c)=mi
So that V may check this claim, P and V apply the sum-check protocol to fri(i), up until V’s final check in that protocol, when V must evaluate fri(i) at a randomly chosen point (b∗,c∗)∈Fki+1×Fki+1. See Remark (a).
Let l be the unique line satisfying l(0)=b∗ and l(1)=c∗. P sends a univariate polynomial q of degree at most ki+1 to V, claimed to equal Wi+1 restricted to l.
V now performs the final check in the sum-check protocol, using q(0) and q(1) in place of Wi+1(b∗) and Wi+1(c∗). See Remark (b).
V chooses r∗∈F at random and sets ri+1=l(r∗) and mi+1=q(ri+1).
V checks directly that md=Wd(rd). Note that Wd is simply x~, the multilinear extension of the input x when x is interpreted as the evaluation table of function mapping {0,1}logn→F.
Remark a. Note that V does not actually know the polynomial fri(i), because V does not know the polynomial Wi+1 that appears in the definition of fri(i). However, the sum-check protocol does not require V to know anything about the polynomial to which it is being applied, until the very final check in the protocol.
Remark b. We assume here that for each layer i of C, V can evaluate the multilinear extensions addi and multi at the point (ri,b∗,c∗) in polylogarithmic time. Hence, given Wi+1(b∗) and Wi+1(c∗), V can quickly evaluate fri(i)(b∗,c∗) and thereby perform its final check in the sum-check protocol applied to fri(i).
Properties
perfect completeness
soundness error: O(dlogS/∣F∣)
Costs
Let n be a number of inputs.
O(dlogS)
O(dlogS)
O(n+dlogS)
poly(S)
Note (a): It is now known how to achieve prover runtime of O(S) for arbitrary layered arithmetic circuits C [XZZ+19].
Last updated