constant-size commitments · single-point opening · one pairing
KZG — commit to any polynomial in 48 bytes; open at any point in 48 bytes more; verify in one pairing.
A pairing-based polynomial commitment scheme of Kate, Zaverucha, and Goldberg (2010). The commitment and the opening are each a single $G_1$ element regardless of polynomial degree — the cost is a one-time structured reference string with a secret nobody is allowed to remember.
48-byte commitments, one pairing per opening, on the SRS the Ethereum Foundation ceremony produced with ~141 000 contributors. PLONK commits to its witness, permutation, and quotient polynomials through this scheme; the deployment reuses the same ceremony output rather than running its own.
the shape
A polynomial, a commitment, an opening — three objects, one pairing.
Commit $f(X)$ as a single curve point. To open at any point $z$, hand over a quotient commitment and the claimed value $f(z)$. The verifier collapses the whole story to one pairing identity.
Three primary objects. The polynomial lives in $F_r[X]$; commitments and openings live in $G_1$; the verifier's check lands in $G_T$ via one pairing. The same dot-colour convention runs through the rest of the page.
commit · open · verify — step through
Three moves, end to end.
From a polynomial to one pairing decision in three steps. Each step has one concrete object and one equation.
Soundness intuition. If a cheating committer tries to open $f$ at $z$ to a wrong value $y \neq f(z)$, they have to commit to a polynomial $q'(X)$ such that $f(X) - y = q'(X) \cdot (X - z)$ — but then $q'$ is not a polynomial (the divisibility fails). Binding rules out finding such a $q'$ under $d$-SBDH on BLS12-381.
parameters
Concrete numbers.
All values are fixed by the protocol definition or by the reused SRS. None are tunable knobs.
wiring — setup, prover, verifier
One SRS, many circuits, one pairing.
The setup runs once and produces a structured reference string usable by every relation the deployment compiles to PLONK. The prover commits polynomials and batches openings off-chain. The on-chain verifier runs one pairing.
Setup and prover share the cool/blue lane tint — both live off-chain in $F_r$ and $G_1$. The verifier's lane is amber: warm, host-function-bound, the only thing the chain pays for.
security
Binding holds. The curve does not survive Shor.
Two assumptions, two horizons. The classical card is the working margin today; the post-quantum card is the load-bearing caveat — and the one any deployment must say out loud.
Binding under the $d$-strong Bilinear Diffie–Hellman assumption on BLS12-381.
Given $\{[\tau^i]_1, [\tau^i]_2\}_{i=0..d}$, an adversary cannot produce $[1/(\tau - c)]_1$ for an adversary-chosen $c$. Hiding is information-theoretic in the trusted-setup model; knowledge soundness is in the algebraic group model.
- $d$-SBDH is the standard assumption underlying KZG binding — same family as $q$-strong DH used elsewhere in pairing-based crypto.
- AGM is a heuristic, not a standard-model proof — the same caveat as PLONK's overall knowledge-soundness argument.
- The trusted-setup assumption shifts to a ceremony-level one-honest-contributor question, not a per-proof one. Every proof under the SRS inherits it.
The SRS becomes a witness. Binding collapses; every commitment opens to anything.
KZG binding reduces to discrete log in $G_1$ on BLS12-381. A CRQC recovers $\tau$ from the SRS in polynomial time, after which a cheating committer can construct a valid opening of any commitment to any value. There is no graceful degradation.
- The break is structural — the SRS itself becomes a full-knowledge witness for the adversary.
- Mitigation is a commitment-scheme swap, not a parameter bump — see §7 for the PQ alternatives.
- In a PQ-secure configuration KZG is replaced entirely, typically by FRI (hash-based) or a lattice-based scheme.
kzg vs ipa vs fri
Three polynomial-commitment families. Three different trades.
Setup-trust on one axis. Verifier cost, proof size, and PQ stance on the others. KZG is the column this page highlights.
KZG
- Commitment size
- 48 B · constant
- Opening size
- 48 B · constant
- Verifier work
- 1 pairing + MSM
- Setup
- trusted · universal updatable
- PQ stance
- broken under Shor
- Representative deployments
- PLONK · KZG-based zkRollups
IPA / Bulletproofs
- Commitment size
- O(1) · 32–48 B
- Opening size
- O(log n)
- Verifier work
- O(n)
- Setup
- transparent · no ceremony
- PQ stance
- broken under Shor
- Representative deployments
- Halo 2 · Monero range proofs
FRI
- Commitment size
- Merkle root · 32 B
- Opening size
- O(log² n) · 10s of KB
- Verifier work
- hash-only
- Setup
- transparent · no ceremony
- PQ stance
- conjectured PQ-secure
- Representative deployments
- STARKs · Plonky3 (hash commitments)
KZG trades a one-time trusted setup for the smallest commitments and the cheapest verifier. IPA pays in verifier time to drop the trusted setup. FRI pays in proof size to be conjectured post-quantum secure.
references
Primary literature.
Four sources. The original KZG paper, the ceremony whose SRS the deployment reuses, the PLONK paper that consumes the commitments, and the curve construction underneath.
- Constant-Size Commitments to Polynomials and Their Applications. ASIACRYPT 2010, 177–194.
- KZG Summoning Ceremony. github.com/ethereum/kzg-ceremony.
- PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge. IACR ePrint 2019/953.
- BLS12-381: New zk-SNARK Elliptic Curve Construction. Electric Coin Co. blog.