arithmetic circuits, KZG, and one verifier pairing
PLONK — the universal-updatable SNARK authorising state changes in a metadata-hiding registry.
A succinct non-interactive argument of knowledge for arithmetic circuits over $F_r$. The prover encodes a witness as polynomials, commits via KZG, and proves a permutation-argument identity. The verifier samples challenges via Fiat-Shamir and checks one algebraic identity with a single pairing.
~700-byte proof, verified by one CAP-0059 pairing on Stellar, one universal SRS across every circuit in the deployment. Order of magnitude larger than Groth16's 192 B; two orders smaller than FRI configurations.
the shape
What a SNARK actually is: circuit and witness in, one bit out.
A prover holds a witness $w$ and a circuit $C$. They produce a short proof $\pi$ that $C(x,w)=0$ for some public input $x$, revealing nothing about $w$. The verifier reads $\pi$ and $x$, runs a fixed-cost check, and accepts or rejects. PLONK fixes the algebraic machinery: KZG over BLS12-381, Fiat-Shamir under Poseidon2, one pairing at the end.
Three objects, two algebraic domains. Steps 1–2 of the pipeline live in $F_r$, steps 3–5 in $G_1$, step 6 in $G_T$. The same colour convention runs through the rest of the page.
the pipeline, step-through
Six stages off-chain. One pairing on-chain.
From a circuit to a 700-byte proof in six moves. Each step produces a concrete object the next step consumes — polynomials, commitments, evaluations, finally one pairing equation. Step through them.
Six stages off-chain, one pairing on-chain. The ~700-byte proof is the only thing that crosses the wire.
parameters
Concrete numbers.
All values are fixed by the protocol definition or by the deployment's host-function surface. 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 circuit in the deployment. The prover runs once per proof, off-chain. The verifier runs once per proof, on-chain — three host functions, one bit of output.
Setup and prover share the cool/blue lane tint — both run 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
A heuristic that holds. A break that's coming.
Two assumptions, two horizons. The classical card is the working margin today; the post-quantum card is the load-bearing caveat — and the one a deployment must say out loud.
Knowledge soundness in the algebraic group model; Fiat-Shamir under the random oracle.
Commitment binding reduces to the $d$-SBDH assumption on BLS12-381. Zero-knowledge holds against unbounded distinguishers in the standard model.
- AGM is a heuristic, not a standard-model proof — a separation from the generic group model could in principle be exploited.
- Fiat-Shamir collapses interaction to one round under the random-oracle model; in-circuit Poseidon2 is the concrete instantiation.
- The zero-knowledge guarantee is information-theoretic against unbounded distinguishers; the only thing computational here is soundness.
The KZG sub-component falls; PLONK falls with it.
The bound is the same as for the underlying curve — discrete log in $G_1$ on BLS12-381 is solvable in polynomial time on a CRQC, which collapses KZG's binding, which collapses PLONK's soundness. There is no graceful degradation.
- Migration paths: FRI-based STARKs, Plonky3 with hash-based polynomial commitments, or lattice-based SNARKs.
- Current deployment constraints depend on the host environment's precompile surface — a curve change isn't free if the chain only exposes BLS12-381 host functions.
- Mitigation is a commitment-scheme swap, not a parameter bump.
plonk vs groth16 vs fri/stark
Where PLONK sits in the trilemma.
Three working SNARK families, three different trades. Setup-trust on one axis, proof-size and PQ-stance on the other.
Groth16
- Setup
- per-circuit MPC ceremony
- Proof size
- 192 B
- Verifier work
- 3 pairings
- PQ stance
- broken under Shor
- Representative deployments
- Tornado Cash, Semaphore
PLONK
- Setup
- universal updatable · one SRS, many circuits
- Proof size
- ~700 B
- Verifier work
- 1 pairing
- PQ stance
- broken under Shor
- Representative deployments
- universal-updatable SNARK stacks on pairing-friendly chains
FRI / STARK
- Setup
- transparent · no trusted setup
- Proof size
- ~50–200 KB · config-dependent
- Verifier work
- hash verifier
- PQ stance
- conjectured PQ-secure
- Representative deployments
- StarkNet, Plonky3
Universal-updatable vs per-circuit-MPC is the trust-posture differentiator vs Groth16. Proof-size vs PQ-stance is the differentiator vs STARKs. PLONK trades the post-quantum break for two orders of magnitude smaller proofs.
references
Primary literature.
Five sources. The PLONK paper, the KZG paper, the curve construction, the Fiat-Shamir security note, and the Groth16 paper for the size baseline.
- PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge. IACR ePrint 2019/953.
- Constant-Size Commitments to Polynomials and Their Applications. ASIACRYPT 2010, 177–194.
- BLS12-381: New zk-SNARK Elliptic Curve Construction. Electric Coin Co. blog.
- Security of the Fiat-Shamir Transformation in the Quantum Random-Oracle Model. CRYPTO 2019.
- On the Size of Pairing-Based Non-Interactive Arguments. EUROCRYPT 2016, 305–326.