Source: Proofs, Arguments, and Zero-Knowledge, Section 14.4
This scheme achieves:
- Constant commitment size
- Logarithmic evaluation proof size
- Linear verifier time
Key idea
The commitment is a Generalized Pedersen Commitment (but without the blinding factor). However, in this section, we use additive notation, so a commitment can be seen as a dot product of the coefficient vector with a vector of group elements :
Let’s break the vectors into two halves, and (where denotes concatenation). Note that .
Now, for a randomly picked , let:
This cuts the length of and in half. Their dot products are related as follows:
With these ideas, one can build a protocol that let’s the prover prove that it knows an opening to the commitment:
- Prover sends the commitment
- For rounds:
- Prover sends claimed to equal and
- The verifier picks a random challenge and sets and
- Now, there is a derived “vector” of size (which the prover can compute) such that . The prover sends and the verifier checks the equality
The polynomial commitment scheme
What we’re actually interested in is for . The idea is to run the protocol in parallel for both and . Note that is a vector of group elements and is a vector of field elements, but since both support addition, we can perform the same calculations on them.
The algorithm
Zero Knowledge
Using commit-and-prove style techniques, the prover can send hiding Pedersen Commitments and prove in zero knowledge that the committed values do pass the final verifier check.
Relation to other commitment schemes
Compared to Hyrax, verification time is worse ( vs. ) but evaluation proof size is better. Both ideas can be combined which would:
- Increases the commitment size from to
- Reduces the public parameter size and verifier runtime from to
- Maintains the evaluation proof size
Dory reduces the verifier runtime from to but requires pairings.