In this page, we explain a generic mathematical technique that exponentiates a variable base by a variable exponent pointwise on the cube. That is, we explain how to algebraically relate the multilinear extension of this exponentiation to the multilinear extensions of the base and the exponent. This protocol is the technical core of our multiplication protocol. In the next page, we apply this protocol to our situation.
We fix an ℓmul-variate multilinear V(X) with values in F2128, and an F2-valued, oblong-multilinear exponent function z(I,X0,…,Xℓmul−1). As a notational device, we write zi(x):=z(i,x) for each i∈{0,…,63} and each x∈Bℓmul. For each x∈Bℓmul, we define z[x]∈{0,…,264−1} by combining z(I,x)'s bits on D:
z[x]:=i=0∑632i⋅z(i,x).
When z is a constraint array and z(I,X0,…,Xℓmul−1) its oblong-multilinearization, this condition indeed holds.
We define the exponentiated multilinearW(X0,…,Xℓmul−1) by specifying its values on the cube. For each x∈Bℓmul, we set:
W(x):=V(x)z[x].
In this page, our goal will be to efficiently reduce an evaluation claim on W(X) to evaluation claims on V(X) and z(I,X). This problem is tricky, since W(X) doesn't depend algebraically on V(X) and z(I,X) (the exponentiation operation is not algebraic).
The Product Decomposition
We first express W(X) pointwise on the cube as a product of 64 individual multilinears. Indeed, for each x∈Bℓmul,
for each i∈{0,…,63}, and let Wi(X) be its multilinear extension.
Our treatment from this point onwards has two phases. First, we reduce an evaluation claim on W(X) to evaluation claims on the individual multilinears Wi(X). After that, we reduce claims on the Wi(X) to claims on V(X) and z(I,X).
The GKR Step
To reduce a claim on W(X) to claims on the Wi(X), the parties could directly multilinearize the expression for W(x) above and run a sumcheck. The resulting sumcheck would be of a multilinear of individual degree 64 (excluding the equality indicator), which is very large.
Instead, we use GKR. We array the 64 multilinears Wi(X), for i∈{0,…,63}, into the leaves of a balanced binary tree of height 6. Each internal node is defined to be the product of its children, pointwise on the cube.
Notationally, we index the layers as k∈{0,…,6}. In the leaf layer k=6, for each i∈{0,…,63}, we let
Wi(6)(X):=Wi(X).
For each intermediate layer k∈{0,…,5} and each i∈{0,…,2k−1}, we let
We claim that our original multilinear W(X) and the resulting root multilinear W0(0)(X) are identical, as multilinears. Indeed, it's enough to note that, for each k∈{0,…,5}, each i∈{0,…,2k−1}, and each x∈Bℓmul, Wi(k)(x)=W2i(k+1)(x)⋅W2i+1(k+1)(x), and use induction.
We fix an initial evaluation claim W(r(0))=?s0(0). To assess it, the parties can run the following GKR loop:
for each tree layer k∈{0,…,5}do:
for each i∈{0,…,2k−1}do: verifier samples βi(k)←F2128, and sends it to the prover.
the parties run a batched sumcheck on the claim:
i=0∑2k−1βi(k)⋅si(k)=?i=0∑2k−1βi(k)⋅Wj(k)(r(k))=i=0∑2k−1βi(k)⋅x∈Bℓmul∑eq(r(k),x)⋅W2i(k+1)(x)⋅W2i+1(k+1)(x)=x∈Bℓmul∑eq(r(k),x)⋅i=0∑2k−1βi(k)⋅W2i(k+1)(x)⋅W2i+1(k+1)(x),
which pertains to a composition of multilinears of degree just 2 (excluding the equality indicator).
in this way, after ℓmul rounds, reduce the claim above to the further claim:
send(i)=?eq(r(k),r(k+1))⋅i=0∑2k−1βi(k)⋅W2i(k+1)(r(k+1))⋅W2i+1(k+1)(r(k+1)),
where r(k+1) is a further ℓmul-dimensional challenge sampled during the sumcheck.
for each i∈{0,…,2k+1−1}do: the prover sends the claimed evaluation si(k+1)=Wi(k+1)(r(k+1)).
using the prover's claims si(k+1), the verifier explicitly checks the equation just above.
output the reduced evaluation point r(6) and the reduced claims si(6), for i∈{0,…,63}.
The security analysis of this protocol is just standard GKR and batched sumcheck. The invariant of the loop is that, as of the beginning of each iteration k∈{0,…,5}, we have reduced the initial evaluation claim to the list of 2k individual evaluation claims Wi(k)(r(k))=?si(k), for i∈{0,…,2k−1}. By the usual batched sumcheck, the validity of these claims, individually, is implied—up to soundness error 21282k—by the validity of the sum claim that the parties check. The sumcheck's soundness analysis reduces this claim in turn, with soundness error just 21282⋅ℓmul, to the validity of the prover's claimed evaluations Wi(k+1)(r(k+1))=?si(k+1), for i∈{0,…,2k+1−1}. This proves the security of the reduction.
The Frobenius Step
We now reduce the individual evaluation claims Wi(r(6))=?si(6), for i∈{0,…,63}, to a single claim on both V(X) and z(I,X). For notation, we rename rx:=r(6).
By definition, we have
Wi(x):=(V(x)2i)zi(x)
on each cube point x∈Bℓmul. Since each zi(x) is either 0 or 1, each (V(x)2i)zi(x) is either 1 or V(x)2i, and we just need to select between those two. We thus get the equivalent expression:
Wi(x)=1+zi(x)⋅(V(x)2i−1)
for each x∈Bℓmul. Taking the multilinear extension, we get in turn:
We could again in theory run sumcheck here, since the right-hand expression above is fully algebraic in V(X) and z(I,X). On the other hand, the relevant multivariate would be of enormous degree: on the order of 2i. Instead, we use a trick, based on the Frobenius endomorphismφ.
Indeed, for each i∈{0,…,63}, applying φ−i to both sides of the above equality, we get the equivalent claim:
Indeed, first off, the Frobenius is invertible, so φ−i makes sense. Second, φ−i is a ring homomorphism, so we can distribute it over all sums and products. Since eq is defined over F2, φ−i(eq(rx,x))=eq(φ−i(rx),x). Finally, φ−i has no effect on 1 or zi(x), since it fixes F2, and it exactly "undoes" the 2ith power attached to V(x), since V(x)2i=φi(V(x)).
We thus now have 64 evaluation claims about low-degree multivariates. We can now apply the usual batch sumcheck to these. The verifier samples and sends to the prover 64 random scalars γi, for i∈{0,…,63}; the parties then sumcheck the claim:
for some challenge rx′ sampled during the sumcheck. The verifier can evaluate each quantity eq(φ−i(rx),rx′) himself. As a practical matter, we note that φ−i=φ128−i—since the order of φ as an operator is 128—so the verifier can always evaluate φ−i using a few squarings. As for the rest, the prover can nondeterministically send evaluation claims αV=?V(rx′) and αz,i=?zi(rx′) for each i∈{0,…,63}, say. Pending the correctness of these, the verifier can close out the above sumcheck.
Oblong-Multilinearizing
We've reduced everything to claims on V(X) and on all 64 polynomials zi(X)=z(i,X). On the other hand, our goal was to reduce everything to a single claim on the oblong-multilinear z(I,X). To do this, the verifier samples a random scalar ri←F2128, and outputs the single reduced evaluation claim
i=0∑63αz,i⋅δD(ri,i)=?z(ri,rx′).
I.e., it outputs the claim αz=?z(ri,rx′), where αz:=∑i=063αz,i⋅δD(ri,i).
To see why this is correct, we note that the equality of degree-63, univariate polynomials
z(I,rx′)=i=0∑63δD(I,i)⋅z(i,rx′)
holds, since z(I,X) is oblong-multilinear. Specializing both sides to ri, we get the correctness of this step. Conversely, if αz,i∗=z(i∗,rx′) holds for some i∗∈{0,…,63}, then the degree-63 univariate polynomials
P(I):=i=0∑63αz,i⋅δD(I,i)
and z(I,rx′) are unequal, as univariate polynomials, since they differ at i∗∈D. The chance, over the verifier's challenge ri←F2128, that P(ri)=z(ri,rx′) is thus at most 212864. If this doesn't happen, then we get