Putting it all Together
So far, we've gone over the Hyrax Primitives, and how these various primitives come together to prove more complex protocols, such as Proof of Sumcheck and Claim Aggregation. Now we go over how to put all of these together to construct a Zero-Knowledge GKR proof using the Hyrax transformation.
- commits to the input of the GKR circuit using a polynomial commitment scheme. For Hyrax circuits, this is via the Hyrax PCS.
- For every GKR layer, commits to its sumcheck messages at each round by committing to the coefficients of the univarate that makes up each round using Pedersen Commitments.
- At the end of sumcheck, commits to the values it claims on "underlying" MLEs.
- If any of these values involved a product of MLEs, such as , then commits to its claim for , as , the claim for as , and the product as . This is because only needs to compute the evaluation , but:
- needs to prove to that is a commitment to the product of the underlying messages in and . Therefore and engage in the necessary proofs of product for this GKR layer over commitments on underlying MLEs.
- and engage in proof of sumcheck for this layer.
- For the next layer, if it is not the input layer, and engage in a proof of claim aggregation depending on the type of claim aggregation used. They both have an aggregated claim (or RLC of claims) to do the next layer of sumcheck over, and repeat steps 1-6 until the input layer.
At the input layer, and either produce separate input layer proofs, or must engage in interpolative claim aggregation because we do not have a future layer of sumcheck to reduce to. Finally, ends up with a claim on the input to the circuit at a random point. We engage in an evaluation proof using the Hyrax PCS to prove this final claim.