Glossary
Short, plain-language definitions for terms used elsewhere on this site. Each links back to the page where it’s explained in more depth.
Argument of knowledge
A soundness guarantee that only holds against a prover bounded by realistic computing power (as opposed to a proof, sound even against an unbounded prover) — combined with the requirement that a convincing prover must actually know a witness, not just know that one exists. See what a zk-SNARK is.
Arithmetic circuit
A computation expressed as a network of addition and multiplication gates over a finite field — the standard target representation a zk-SNARK proves statements about. Converting an arbitrary program into one is the arithmetization step; see how it works.
Fiat–Shamir heuristic
The 1986 technique this site’s own demo runs: replace an interactive proof’s live, random verifier challenge with the output of a hash function computed by the prover over the public transcript so far, turning an interactive protocol into a non-interactive one. See how it works for the exact mechanics and History for the citation.
Pairing
A special bilinear operation on certain elliptic curves that lets a verifier check an algebraic relationship between two committed values without seeing the values themselves. Constructions like Groth16 use pairings to make final verification both succinct and zero-knowledge at once. See how it works.
Structured reference string (SRS)
The public parameters a pairing-based zk-SNARK needs before anyone can prove or verify anything — generated once via a trusted setup. Whether one SRS is reusable across different circuits, and whether the ceremony that generated it can be safely extended later, is exactly what separates Groth16 from PLONK below.
Succinctness
The property that a proof stays small and fast to check no matter how large the underlying computation is — a Groth16 proof is exactly 3 group elements whether the circuit had 10 gates or 10 million. This is the one property this site’s own interactive demo does not demonstrate — see what a zk-SNARK is for why, and the homepage for the concrete number.
Trusted setup — circuit-specific vs. universal/updatable
A step where public parameters (a structured reference string) are generated using some random, secret values that must then be destroyed — if anyone retains them, they can forge proofs. Groth16’s setup is circuit-specific: a brand new ceremony is required for every new circuit. PLONK’s setup is universal and updatable: one ceremony, run once, produces an SRS usable for any circuit up to a size bound, and “updatable” means the ceremony can be safely extended by new participants over time — honesty of the whole thing only requires that at least one contributor, ever, was honest. See History for both papers.
Zero-knowledge
The proof reveals nothing beyond the single bit “the prover knows a valid witness” — not a hint, not a partial leak. The oldest idea on this site, dating to 1985. See what a zk-SNARK is and History.
Sources: these are standard definitions used consistently across the zk-SNARK literature; see History and Further reading for citations to the original papers.