KZG
KZG (Kate, Zaverucha, Goldberg) is a pairing-based polynomial commitment scheme with trusted setup.
Intuition
Bilinear maps effectively convey the power of multiplicative-homomorphism, but only for one multiplication operation. To be more concrete, let us think of a group element gmi∈G as a commitment to mi (if mi is chosen at random, the commitment is computationally hiding if the discrete logarithm problem is hard in G, meaning it is hard to determine mi from gmi). Then bilinear maps allow any party, given commitments c1,c2,c3 to check whether the values m1,m2,m3 inside the commitments satisfy m3=m1⋅m2. This is because by bilinearity of the map e:G×G→Gt, e(gm1,gm2)=e(gm3,g) if and only if m3=m1⋅m2.
It turns out that the power to perform a single “multiplication check” of committed values is enough to obtain a polynomial commitment scheme. This is because for any degree-D univariate polynomial p, the assertion p(z)=v is equivalent to the assertion that there exists a polynomial w of degree at most D−1 such that
This equation can be probabilistically verified by evaluating the two polynomials on the left hand side and right hand side at a randomly chosen point τ. This entire approach assumes that the committer does not know τ, since if it did, it could choose the polynomial w so that the equation does not hold as an equality of polynomials, but does hold at τ.
Protocol Description
Setup
Let e be a bilinear map pairing groups G, Gt of prime order p, and g∈G be a generator, and D be an upper bound on the degree of the polynomials we would like to support commitments to. Let τ,α∈Fp be two random nonzero field elements. Then SRS (structured reference string) consists of the pairs:
Note that neither τ nor α are included in the SRS — they are “toxic waste” that must be discarded after the SRS is generated, as any party that knows these quantities can break extractability or binding of the polynomial commitment scheme.
Commit
To commit to a polynomial q over Fp, the committer sends a value
Note that while the committer does not know τ, it is still able to compute gq(τ) using the first elements in pairs in the SRS and additive homomorphism:
which can be computed given the values gτi for all i=0,...,D even without knowing τ. The commiter can compute gαq(τ) in a similar manner, using second elements in pairs in the SRS, without knowing the value of α.
Evaluatuion
To open a commitment c=(U,V) at z∈Fp to some value v, the committer computes the degree-(D−1) polynomial w(X):=(q(X)−v)/(X−z) and sends a value y claimed to equal w(τ). The verifier checks:
This scheme is binding and extractable. You can find security analysis in the subsection 15.2 of "Proofs, Arguments, and Zero-Knowledge". If we omit the "alpha part" (second elements in the SRS, second element of commitment, second verification check), this scheme will be binding to some function but it doesn’t establish that the function the prover is bound to is a degree-D polynomial.
Complexity
Setup time: O(D)
Commit time: O(D)
Commit size: O(1)
Evaluation proof time: O(DlogD)
Evaluation proof size: O(1)
Verify time: O(1)
Extension of KZG to Multilinear Polynomials
TBD
Original Paper
https://www.iacr.org/archive/asiacrypt2010/6477178/6477178.pdf
Last updated