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.