Batch-Opening KZG Commitments at One Point: A Lemma and Its Proof
· Updated
A polynomial commitment lets a prover commit to a polynomial f and later open its value at any
point convincingly. In the KZG scheme1 both the commitment and an opening proof are a single
group element, which makes it a building block of proof systems such as PLONK. In practice a
verifier often needs t polynomials opened at the same pointz: checking them one by one
costs 2t pairings, and a single random linear combination brings that down to 2.2 This
note takes the lemma behind that step on its own and proves it in full.
Let G1,G2,GT be cyclic groups of prime order p with generators g1,g2,gT, let
e:G1×G2→GT be a non-degenerate bilinear map, and let F=Fp. For
a∈F write [a]1=a⋅g1 and [a]2=a⋅g2.
Definition (KZG polynomial commitment)
Let d be a degree bound. The trusted setup picks a random τ←F, outputs
srs=([1]1,[τ]1,[τ2]1,…,[τd]1;[1]2,[τ]2)
and destroys τ. For any f∈F[X] with degf≤d:
Commit: com(f)=[f(τ)]1, which can be computed linearly from srs;
Open: to prove f(z)=v, let q(X)=X−zf(X)−v; the proof is
π=[q(τ)]1;
Verify: accept if and only if
e(C−[v]1,[1]2)=e(π,[τ]2−[z]2).
The verification equation holds because q is a polynomial if and only if
(X−z)∣f(X)−v, that is, if and only if f(z)=v.
Suppose the prover has committed to f1,…,ft with commitments Ci=com(fi), and
claims fi(z)=vi for every i. The protocol:
The verifier sends a random challenge γ←F (non-interactively, γ comes from
the Fiat–Shamir transform);
The prover computes the batched quotient
h(X)=∑i=1tγi−1⋅X−zfi(X)−vi and sends
π=[h(τ)]1;
The verifier computes Cγ=∑i=1tγi−1Ci and
vγ=∑i=1tγi−1vi, and accepts if and only if
e(Cγ−[vγ]1,[1]2)=e(π,[τ]2−[z]2).
Write Fγ(X)=∑i=1tγi−1(fi(X)−vi). An honest prover has
Cγ−[vγ]1=[Fγ(τ)]1 and Fγ(X)=h(X)(X−z), so
completeness follows directly from bilinearity:
The heart of soundness: if even one claimed value is wrong, then after the random linear
combination it is, with overwhelming probability, still wrong.
Lemma (Random linear combination)
Let f1,…,ft∈F[X] and z,v1,…,vt∈F, with Fγ as above. If
fj(z)=vj for some j, then
γ←FPr[(X−z)∣Fγ(X)]≤∣F∣t−1.
Proof
By the remainder theorem, (X−z)∣Fγ(X) if and only if Fγ(z)=0. Read
Fγ(z) as a polynomial in γ:
P(γ)=i=1∑t(fi(z)−vi)γi−1∈F[γ].
Its degree is at most t−1, and the coefficient of γj−1 is fj(z)−vj=0, so
P is not the zero polynomial. A nonzero polynomial over a field has no more roots than its
degree, so at most t−1 values of γ give P(γ)=0; since γ is uniform over
F, the probability is at most (t−1)/∣F∣.
Theorem (Soundness of batch opening, informally)
Assume the single-polynomial KZG scheme is evaluation binding, and that the polynomial fi
behind every commitment Ci the adversary outputs can be extracted (for instance in the
algebraic group model3). Then for any polynomial-time adversary, the probability that batch
verification passes while fj(z)=vj for some j is at most
(t−1)/∣F∣+negl(λ).
Proof
(Sketch.) Suppose verification passes and fj(z)=vj for some j. By
Lemma 1, except with probability at most (t−1)/∣F∣, we have Fγ(z)=0. Then
Cγ−[vγ]1 is a commitment to the polynomial Fγ, and the adversary’s
π opens it to 0 at z; the reduction, knowing every fi, can honestly compute a proof
that opens the same commitment at z to Fγ(z)=0. Two valid openings of one
commitment at one point, with different values, contradict evaluation binding.
评论