Appendix C: Field Equations Cheat Sheet
A quick reference for the core equations that power zero-knowledge proof systems.
Schwartz-Zippel Lemma
The most important bound in the book.
For a non-zero polynomial of total degree over a field :
Consequence: Random evaluation catches cheating with probability .
Multilinear Extensions
Lagrange Basis Polynomial
For :
Property: and for .
Multilinear Extension Formula
For :
Equality Polynomial
Property: if , else (on hypercube).
Sum-Check Protocol
Dimensions: Vector size ; protocol runs rounds.
The Claim
Prove:
Round Polynomial
Prover sends:
Verifier Checks
- Round 1:
- Round :
- Final: query oracle at to check
Soundness
where is the number of variables and is the maximum individual degree. (More precisely: where is the degree in variable .)
Vanishing Polynomials
Over Roots of Unity
For domain where :
Property: for all , and for .
Over Boolean Hypercube
For proving a polynomial vanishes on , use the univariate identity:
applied variable by variable in multilinear settings.
R1CS and QAP
R1CS Constraint
Dimensions: Matrices are ; witness is ; result is .
For witness vector :
where is entry-wise multiplication.
QAP Polynomial Identity
Define polynomials by interpolating constraint matrices.
The constraint system is satisfied iff:
where is the vanishing polynomial.
KZG Polynomial Commitments
Dimensions: Polynomial degree ; SRS size elements.
Structured Reference String (SRS)
Secret ; public:
Commitment
For :
Evaluation Proof
To prove : (Prover knows ; Verifier knows , , )
- Compute quotient:
- Proof:
Verification (Pairing Check)
Equivalently:
FRI Folding
Split Polynomial
For :
- : even coefficients
- : odd coefficients
Folding with Challenge
Property:
Consistency Check
At query point (where is its conjugate on the same coset), verify:
This uses: and .
AIR (Algebraic Intermediate Representation)
Trace Polynomials
For a trace matrix with registers and timesteps, interpolate each column over domain :
Transition Constraints
For a constraint "register 0 at next step equals of current registers":
The shift accesses "next row" values. Define constraint polynomial:
Quotient Check
Valid trace iff vanishes on transition domain :
is a polynomial (not rational function).
Boundary Constraints
Pin inputs/outputs. For :
must be a polynomial.
PLONK
Gate Equation
on domain .
Permutation Grand Product
Accumulator satisfies:
Property: The product telescopes, so iff all copy constraints hold.
Quotient Check
All constraints satisfied iff there exists with:
Groth16
Public Input Combination
Given public inputs where :
where are verification key elements.
Verification Equation
Given proof :
Verification cost: One MSM (size ) + 3-4 pairings, independent of circuit size.
Proof Size
3 group elements: 128 bytes over BN254 (32 + 64 + 32 for , , ).
Lookup Arguments
Plookup Identity
For lookups and table , let .
Property: Equality holds iff .
LogUp Identity
For lookups into table with multiplicities :
Property: Equality holds iff each and counts occurrences correctly.
Soundness: By Schwartz-Zippel, equality holds with probability over random .
Advantage: No sorting required; additive structure enables multi-table batching.
GKR Protocol
Dimensions: Layer has gates; layer (inputs) has gates; .
Layer Reduction
For layered circuit with values at layer :
Sum-Check Reduction
A claim about reduces via sum-check to claims about and for random .
Soundness: Compound over layers, each with sum-check rounds.
Inner Product Argument (IPA)
The Claim
Prove for committed .
Folding Step
Given challenge :
Property:
where and .
Proof Size
group elements after rounds.
Nova Folding
Relaxed R1CS
Standard R1CS:
Relaxed R1CS with scalar and error :
A satisfying instance has and .
Folding Two Instances
Given instances and , with challenge :
where is the "cross-term" computed by the prover.
Property: If both inputs satisfy relaxed R1CS, so does the folded instance.
Fiat-Shamir Transform
Challenge Derivation
Security Requirement
The hash must include:
- The public statement
- All previous commitments
- All previous challenges
Complexity Summary
| System | Proof Size | Verification | Prover | Setup |
|---|---|---|---|---|
| Groth16 | Per-circuit | |||
| PLONK+KZG | Universal | |||
| STARK/FRI | Transparent | |||
| Bulletproofs | Transparent | |||
| Sum-check IP | None |
Field Sizes (Common Choices)
| Field | Size | Security | Use Case |
|---|---|---|---|
| BN254 scalar | ~100 bits | Ethereum, Groth16, PLONK | |
| BLS12-381 scalar | ~128 bits | Zcash, many SNARKs | |
| Goldilocks | ~100 bits* | Plonky2, fast arithmetic | |
| Baby Bear | ~100 bits* | RISC Zero | |
| Mersenne-31 | ~100 bits* | Circle STARKs |
*Small fields require extension fields for cryptographic security; base field security refers to the overall system design.
Quick Reference: What to Use When
Proving a sum over hypercube: Sum-check protocol
Encoding data as polynomial: Multilinear extension (hypercube) or Lagrange interpolation (roots of unity)
Binding prover to polynomial: KZG (trusted setup, constant size), FRI (transparent, log² size), IPA (no pairings, log size)
Checking polynomial identity on a domain: Quotient by for roots of unity
Checking table membership: Lookup argument (Plookup with sorting, LogUp without)
Verifying circuit layer-by-layer: GKR protocol with sum-check at each layer
Incremental computation: Nova folding (amortize SNARK cost across steps)
Eliminating interaction: Fiat-Shamir with complete transcript hashing