This note is about LogUp-GKR, and is the culmination of many notes that built up to this. Make sure to take a look at the book for links to all other articles. Namely, the previous article deep dove into the original GKR. Also make sure to familiarize yourself with our math conventions.
Recall the LogUp equation from the LogUp note:
LogUp-GKR is a technique for a prover to prove the correct evaluation of this equation to a verifier using a modified version of GKR. We're going to be specifically interested in the case where the
Recall from the note on the multilinear extension that
Additionally, throughout the note,
Next, we will describe the circuit that LogUp-GKR operates on. However, before we discuss the circuit, let's first rearrange the above equation by bringing all the terms on the left-hand side:
Notice that the above is a sum of fractions. To simplify the presentation of the circuit, let's assume that we only have 4 fractions:
The first layer of the circuit will represent these 4 fractions. Then, the second layer will reduce the number of fractions by 2 by merging pairs of fractions as follows:
And finally, the final layer in this example would halve the number of fractions down to a single one in a similar manner:
Note that the circuit never performs any actual division; all it does is merge fractions together over and over with each new layer, down until there is only a single one remaining.
Hence, a fraction will be represented as a pair of field elements
We will follow the paper's terminology and call this
Below is an example circuit, where the initial fractions (encoded in projective representation) lie in the input layer:
In drawing this circuit, we made the assumption that
and . We omitted the index in the circuit, such that, for example, stands for . Additionally, note that the circuit ends with 2 fractions in the final layer instead of 1; we will explain why when we get to GKR.
The
Recall from the multiset check note that the terms
We will now discuss the modifications to the GKR protocol that are made to prove the evaluation of this circuit. The point to address is how we handle the fact that we have 2 field elements per node compared to a single one in the original GKR. We will also define the layer polynomial differently (exploiting the additional structure in the circuit) to make the layer sum-check more efficient.
We will first discuss GKR over all layers other than the input layer, and end with the treatment of the input layer.
We begin the discussion about all layers except the input layer. At layer
Additionally, we can describe the circuit structure as
This follows from how the nodes are laid out, the fact that we index nodes in bit representation from least to most significant bit, and from the definition of addition for the projective representation.
Next, we need to give a definition of
Remember that the MLE of a function
is unique, and hence all expressions which are multilinear and interpolate are equivalent definitions of the same polynomial . You can verify that the 2 properties hold for the above definitions. This concept is further discussed in this note from Justin Thaler.
Notice that unlike the original GKR protocol, both sum-checks are defined over
Recall that the core idea of the GKR protocol is to reduce a claim about the layer polynomial(s) at layer
The core property of a random linear combination of
claims is that it reduces the claims to a single claim. In other words, if the reduced claim is proven to be true, then with high probability, the original claims are proven true as well.
Hence, with this trick, we are back to having a single sum-check protocol per layer.
Finally, we are left with showing how to reduce a claim
Hence, starting from the claim
In the last step of the sum-check, let
Recall from GKR that to reduce 2 claims about
to a single claim about , the prover had to send a univariate polynomial of degree . In LogUp-GKR, we can do better by exploiting the additional structure of the circuit.
In LogUp-GKR, to reduce the 2 claims about
The above makes use of a property of multilinear polynomials, which was explored in this note.
Recall that our goal was to reduce the initial claim
Hence, by exploiting the graph structure, in LogUp-GKR we are able to have the prover send 2 field elements per polynomial (
Recall that we are interested in the use of LogUp-GKR where the values
Therefore, this additional constraint means that we need to reduce the claim about the 2nd layer (
Recall that the input layer holds the values
Let
Next, we will introduce
We abuse notation since
is the bit decomposition of the index , which we use directly into, for example, .
Then, let
where
Then, the reduction to the input layer can written as
We only run the sum-check protocol over the
And… We're done! We are left with claims