Appendix C: Field equations cheat sheet
A quick reference for the core equations in zero-knowledge proof systems.
Schwartz-Zippel lemma
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 | |
| KoalaBear | ~100 bits* | Lean Ethereum (Whirlaway) | |
| Mersenne-31 | ~100 bits* | Circle STARKs, Airbender |
*Small fields require extension fields for cryptographic security; base field security refers to the overall system design.
Quick reference
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