Skip to main content

Maller's Optimization to Reduce Proof Size

In the PlonK\plonk paper, they make use of an optimization from Mary Maller in order to reduce the proof size.

Explanation

Maller's optimization is used in the "polynomial dance" between the prover and the verifier to reduce the number of openings the prover send.

Recall that the polynomial dance is the process where the verifier and the prover form polynomials together so that:

  1. the prover doesn't leak anything important to the verifier
  2. the verifier doesn't give the prover too much freedom

In the dance, the prover can additionally perform some steps that will keep the same properties but with reduced communication.


Let's see the protocol where Prover wants to prove to Verifier that

xF,  h1(x)h2(x)h3(x)=0\forall x \in \mathbb{F}, \; h_1(x)h_2(x) - h_3(x) = 0

given commitments of h1,h2,h3h_1, h_2, h_3,

maller 1

A shorter proof exists. Essentially, if the verifier already has the opening h1(s), they can reduce the problem to showing that

xF,  L(x)=h1(s)h2(x)h3(x)=0 \forall x \in \mathbb{F}, \; L(x) = h_1(s)h_2(x) - h_3(x) = 0

given commitments of h1,h2,h3h_1, h_2, h_3 and evaluation of h1h1 at a point ss.

maller 2

Notes

Why couldn't the prover open the polynomial LL' directly?

L(x)=h1(x)h2(x)h3(x)L'(x) = h_1(x)h_2(x) - h_3(x)

By doing

maller 3

The problem here is that you can't multiply the commitments together without using a pairing (if you're using a pairing-based polynomial commitment scheme), and you can only use that pairing once in the protocol.

If you're using an inner-product-based commitment, you can't even multiply commitments.

question: where does the multiplication of commitment occurs in the pairing-based protocol of PlonK\plonk? And how come we can use bootleproof if we need that multiplication of commitment?

Appendix: Original explanation from the PlonK\plonk paper

https://eprint.iacr.org/2019/953.pdf

For completion, the lemma 4.7: