PlonK Deconstructed 10: Round 5
Ben Bencik
Round 5
Previously, we have seen how to perform linearization tricks. We will use this knowledge in the finale of the prover algorithm. All constraints are combined in this round to generate the argument/proof .
Compute opening challenge
Compute linearisation polynomial
Compute opening proof polynomial
Compute opening proof polynomial
Calculate commitments ,
Return proof
Linearisation polynomial
Recall from the third round that the quotient polynomial was split into 3 parts to reduce the degree, such that it holds:
This is the base of how we will construct the linearisation polynomial . Some of the terms in are substituted with the openings which the prover calculated in the round 4. The linearisation polynomial can be expressed as:
represents linearised arithmetic gate check corresponding to in the quotient polynomial .
is linearised from the quotient polynomial . It represents the second check of the permutation polynomial.
-(\bar{a} + \beta \bar{s},[object Object],1} + \gamma) (\bar{b} + \beta \bar{s},[object Object],2} + \gamma) $(\bar{c} + \beta S*{\sigma,[object Object],{\omega}$
corresponds to , which represents the first check of the permutation polynomial
If the prover computed everything according to the protocol description is zero over the whole domain . Notice which polynomials are evaluated (denoted with the horizontal line). As described in the previous round, the linearization polynomial can contain polynomial additions and multiplication by a constant, but not multiplication of two polynomials. And that is exactly what we are trying to achieve. The openings are picked so that there is not a single polynomial multiplication. This allows us to use the linearization trick, and as a result, the prover does not need to send the commitment because the verifier can calculate it independently.
The big picture is that the prover is trying to prove: . If he did it naively, he would need to send an opening to every polynomial. However, thanks to the linearization trick, we can minimize the number of openings, thus also reduce the proof size.
Opening proof polynomial
The prover must provide two opening proofs - one for opening at and the second for opening at .
First opening proof polynomial
The polynomial proofs openings of polynomials in . Analogous to the KZG we will transform the equality check into divisibility check by constructing an opening proof polynomials:
Finally, these are combined using random linear combination where is the opening challenge. The batching is based on the same principle as described in the round 3. This yields the first opening proof polynomial:
Second opening proof polynomial
Lastly, the prover constructs an opening proof polynomial for on :
The only difference it that this polynomial proves opening in instead of
Return Proof
At the end of this round, the prover can finally send the whole proof:
We have looked at the prover side of the algorithm. In the last post, we will continue with the verifier's algorithm.
List of the PlonK blog posts:
- 1: Overview
- 2: Arithmetization
- 3: Math Preliminaries
- 4: KZG
- 5: Setup
- 6: Round 1
- 7: Round 2
- 8: Round 3
- 9: Round 4
- 10: Round 5
- 11: Verification
If you have any suggestions or improvements to this blog, send an e-mail to contact@maya-zk.com