Terminology Glossary
Common terms and definitions in zero-knowledge proofs
Foundations & Future
🧱 Fundamentals ⚙️ Proof Systems 🔗 Constraint Systems 🔐 Cryptographic Primitives 🚀 Advanced Concepts 🌐 ZK Applications 📐 Mathematical Foundations
🧱
Fundamentals
- # Zero-Knowledge Proof (ZKP)
- A cryptographic method that allows one party (the prover) to prove to another party (the verifier) that a statement is true, without revealing any information beyond the validity of the statement itself. → Prover · Verifier · Witness
- # Prover
- The party in a zero-knowledge protocol that possesses secret information (the witness) and wants to convince the verifier of a statement's truth without revealing the secret. → Verifier · Witness
- # Verifier
- The party in a zero-knowledge protocol that checks the validity of a proof without learning any secret information beyond whether the statement is true or false. → Prover · Proof
- # Witness
- The secret input or private data that the prover uses to generate a proof. The witness is never revealed to the verifier but is essential for creating a valid proof. → Prover · Public Input
- # Public Input
- Data that is known to both the prover and verifier, used alongside the witness to generate and verify proofs. Also called public parameters or instance. → Witness · Statement
- # Statement
- The claim being proven in a zero-knowledge proof. It typically asserts that the prover knows a witness satisfying certain conditions without revealing the witness itself. → Witness · Circuit
- # Soundness
- A security property ensuring that a dishonest prover cannot convince the verifier of a false statement, except with negligible probability. → Completeness · Zero-Knowledge
- # Completeness
- A property guaranteeing that an honest prover with a valid witness can always convince the verifier that the statement is true. → Soundness · Zero-Knowledge
⚙️
Proof Systems
- # zkSNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)
- A type of ZKP that is succinct (small proof size), non-interactive (no back-and-forth communication), and provides a proof of knowledge. Most zkSNARKs require a trusted setup. → zkSTARK · Trusted Setup · Succinctness
- # zkSTARK (Zero-Knowledge Scalable Transparent Argument of Knowledge)
- A type of ZKP that is transparent (no trusted setup required), scalable, and post-quantum secure. STARKs typically have larger proof sizes than SNARKs but avoid trusted setup assumptions. → zkSNARK · FRI · Transparency
- # PLONK (Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge)
- A universal zkSNARK construction that uses a single trusted setup for all circuits of a given size. It's widely adopted due to its flexibility and efficiency. → Universal Setup · KZG · Polynomial Commitment
- # Groth16
- One of the most efficient zkSNARK constructions in terms of proof size and verification time. Requires a circuit-specific trusted setup but produces very compact proofs. → Trusted Setup · Pairing-based
- # Halo
- A recursive proof composition technique that eliminates the need for a trusted setup by using a novel polynomial commitment scheme. Enables efficient proof aggregation. → Recursion · IPA · Accumulation
- # Bulletproofs
- A non-interactive zero-knowledge proof system that doesn't require a trusted setup. Known for efficient range proofs but has linear verification time. → Range Proof · IPA
🔗
Constraint Systems
- # R1CS (Rank-1 Constraint System)
- A constraint system where each constraint is of the form (a · s) * (b · s) = (c · s), where a, b, c are vectors and s is the witness vector. Used in Groth16 and other SNARKs. → Constraint · QAP · Witness
- # Plonkish
- A family of arithmetization schemes based on PLONK that use a table-based approach with custom gates and lookup arguments. Includes Halo2, Plonky2, etc. → PLONK · Custom Gates · Lookup
- # AIR (Algebraic Intermediate Representation)
- A constraint system used in STARKs that represents computation as polynomial constraints over an execution trace. Constraints are checked at every row of the trace. → STARK · Execution Trace · Transition Constraints
- # QAP (Quadratic Arithmetic Program)
- A representation of R1CS constraints as polynomials, enabling efficient verification using polynomial identity testing. Core to many SNARK constructions. → R1CS · Polynomial
- # Circuit
- An arithmetic circuit representing a computation as a directed acyclic graph of addition and multiplication gates over a finite field. The standard way to express computations in ZK systems. → Gate · Wire · Constraint
- # Constraint
- A mathematical equation that must be satisfied by the witness values. Circuits are compiled into sets of constraints that the prover must satisfy. → Circuit · R1CS · Satisfiability
🔐
Cryptographic Primitives
- # Polynomial Commitment
- A cryptographic primitive that allows a prover to commit to a polynomial and later prove evaluations of that polynomial at specific points without revealing the entire polynomial. → KZG · FRI · IPA
- # KZG Commitment (Kate-Zaverucha-Goldberg)
- A polynomial commitment scheme using elliptic curve pairings. Produces constant-size commitments and proofs but requires a trusted setup. → Polynomial Commitment · Pairing · Trusted Setup
- # FRI (Fast Reed-Solomon Interactive Oracle Proof of Proximity)
- A protocol used in STARKs to prove that a committed function is close to a low-degree polynomial. Enables transparent (no trusted setup) polynomial commitments. → STARK · Reed-Solomon · Low-Degree Test
- # IPA (Inner Product Argument)
- A polynomial commitment scheme that doesn't require pairings or trusted setup. Used in Bulletproofs and Halo. Has logarithmic proof size but linear verification time. → Bulletproofs · Halo · Polynomial Commitment
- # Pedersen Commitment
- A cryptographic commitment scheme that is computationally binding and perfectly hiding. Often used to commit to values in ZK protocols. → Commitment · Hiding · Binding
- # Merkle Tree
- A tree data structure where each leaf contains a hash of data and each non-leaf node contains a hash of its children. Used for efficient membership proofs in ZK systems. → Hash Function · Membership Proof
- # Fiat-Shamir Transform
- A technique to convert an interactive proof into a non-interactive one by replacing the verifier's random challenges with hash outputs of the transcript. → Non-Interactive · Random Oracle
🚀
Advanced Concepts
- # Recursion
- The technique of verifying a proof inside another proof, enabling proof composition and aggregation. Essential for scaling ZK systems. → IVC · Folding · Aggregation
- # IVC (Incrementally Verifiable Computation)
- A technique where each step of a computation produces a proof that verifies all previous steps, enabling efficient verification of long-running computations. → Recursion · Nova · Folding
- # Folding Scheme
- A technique to combine multiple instances of a relation into a single instance, enabling efficient recursive proof composition without full SNARK verification at each step. → Nova · IVC · Accumulation
- # Lookup Argument
- A technique that allows proving that values in a computation belong to a predefined table, enabling efficient implementation of non-arithmetic operations. → Plookup · Custom Gates
- # Custom Gates
- In Plonkish systems, gates that go beyond simple addition and multiplication, allowing more efficient representation of specific operations. → Plonkish · Gate
- # Proof Aggregation
- Combining multiple proofs into a single proof that can be verified more efficiently than verifying each proof individually. → Recursion · Batching
- # Trusted Setup
- A one-time ceremony to generate public parameters for certain ZK systems. The secret randomness used must be destroyed; if compromised, fake proofs could be created. → CRS · Powers of Tau · Toxic Waste
- # Universal Setup
- A trusted setup that can be reused for any circuit up to a certain size, unlike circuit-specific setups that must be regenerated for each new circuit. → PLONK · Trusted Setup
🌐
ZK Applications
- # zkRollup
- A Layer 2 scaling solution that bundles (rolls up) transactions off-chain and posts a validity proof on-chain, inheriting the security of the base layer while increasing throughput. → Layer 2 · Validity Proof · Data Availability
- # zkEVM
- A zero-knowledge virtual machine compatible with the Ethereum Virtual Machine, allowing existing Ethereum smart contracts to run with ZK proof generation. → zkRollup · EVM · Compatibility
- # zkVM (Zero-Knowledge Virtual Machine)
- A virtual machine that can generate zero-knowledge proofs of program execution. Examples include RISC Zero, SP1, and various zkEVMs. → zkEVM · RISC-V
- # Private Transaction
- A blockchain transaction where details like sender, receiver, or amount are hidden using zero-knowledge proofs while still proving validity. → Zcash · Tornado Cash
- # Verifiable Computation
- Using ZK proofs to verify that a computation was performed correctly without re-executing it, enabling trustless outsourcing of computation. → zkVM · Proof of Computation
- # zkML (Zero-Knowledge Machine Learning)
- Applying zero-knowledge proofs to machine learning, enabling verification of ML inference without revealing the model or input data. → Verifiable Computation · Privacy
📐
Mathematical Foundations
- # Finite Field
- A field with a finite number of elements, typically denoted F_p for prime p. All arithmetic in ZK circuits is performed over finite fields. → Prime Field · Extension Field · Modular Arithmetic
- # Elliptic Curve
- A curve defined by an equation of the form y² = x³ + ax + b over a field. The group structure of points on elliptic curves is fundamental to many ZK constructions. → Pairing · Scalar Multiplication
- # Pairing (Bilinear Pairing)
- A bilinear map e: G₁ × G₂ → G_T between elliptic curve groups. Enables verification of polynomial equations in the exponent, crucial for SNARKs like Groth16. → Elliptic Curve · KZG
- # Lagrange Interpolation
- A method to find a polynomial that passes through a given set of points. Used extensively in polynomial-based ZK systems for encoding constraints. → Polynomial · FFT
- # FFT (Fast Fourier Transform)
- An efficient algorithm for polynomial multiplication and evaluation. Critical for performance in ZK systems that work with large polynomials. → NTT · Polynomial
- # NTT (Number Theoretic Transform)
- The finite field analog of FFT, used for efficient polynomial operations in ZK proof systems. Requires the field to have roots of unity. → FFT · Finite Field
- # Schwartz-Zippel Lemma
- A fundamental result stating that a non-zero polynomial of degree d evaluated at a random point is zero with probability at most d/|F|. Basis for polynomial identity testing in ZK. → Polynomial · Soundness