Paper
Algebraic Methods for Interactive Proof Systems
Authors: Carsten Lund, Lance Fortnow, Howard Karloff, Noam Nisan
Date: 1992
- One of the most important Interactive Proofs for verifying the sum of a multi-variate polynomial over the Boolean Hypercube
- Prover’s perspective: allows the Prover to prove to the Verifier that the sum is correct
- Verifier’s perspective: allows the Verifier to reduce its computation when calculating the sum by trustlessly delegating the computation to a Prover
Overview
- Allows the Prover to convince the Verifier that a multivariate polynomial sum over the Boolean Hypercube with a claimed sum . i.e.:
-
- Where:
- is the claimed sum
- is the true sum
- is a -variate polynomial defined over a finite field
- Where:
- Alternatively:
- Reduces the claim to a form for random
-
- Prover doesn’t need to perform FFT or commit to other polynomials
- rounds are needed for a -variate polynomial
- The protocol is unconditionally secure without any crypto assumption is low-degree (which defines the soundness error)
Sum-Check works for any
Sum-Check actually works for any . But we are mostly just concerned with and thus the degree of each variable is 2 (i.e. )
Purpose
- reduce the Verifier’s work from to
Notation: T
time for 1 evaluation of
Applications
Zero Testing
- in ZKP, a typical example is:
- Prover has multilinear polynomial
- Verfier has
- Prover wants to prove:
- rather than using univariate Zero Quotient testing, Prover doesn’t have to perform FFT or commit to other polynomials
Protocol
Round
Intuition
Prover calculates and send the claimed sum.
- Prover:
- send value
- claimed
Round
Overview
The prover computes over the Boolean Hypercube except leaving the 1st variable open. Then let the Verifier evaluate .
1. Prover:
- sends , which is a univariate polynomial
- claims
- where:
- is defined such that
- i.e. is the summation of over Boolean Hypercube for all variables except which is equal to
- where:
Implementation Optimization
1. Prover can send in a few ways:
- send the coefficients of the polynomials (i.e. send coefficients)
- (more efficient) send evaluations of the polynomial at points (e.g. -1, 0, 1) so that the verifier can evaluate efficiently
2. Prover doesn’t need to send since it can be inferred
Verifier: - checks: 1. 2. is a univariate polynomial of degree - sends a random element
Round where
Overview
Prover replace from previous round with random numbers given by the Verifier. Then the Prover leave the current open and computes over the Boolean Hypercube with the rest of . The Verifier evaluate the current .
- Prover:
- sends
- claims
- where
- Verifier:
- checks:
- is a univariate polynomial of degree
- sends a random element
- checks:
What does the Verifier actually know?
Verifier doesn’t actually know that at this point. Verifier only knows that the Prover has been consistent with throughout the rounds.
Round (last round)
- Prover:
- send
- claim
- where
- Verifier:
- checks:
- is a univariate polynomial of degree
- select a random element
- checks
- checks:
Why does Verifier need the evaluation of ?
The Verifier only knows the Prover has been consistent with in previous rounds. By checking the evaluation of , the Verifier finally know that from the Prover is the claimed .
Evaluating
For the Verifier to get the evaluation of , the Verifier use one of these methods:
- oracle access to
- can compute efficiently
- ask the Prover where the Prover will subsequently prove the claim is correct via further applications of sum-check
Security
Completeness error
Proof
- If the Prover is honest, then the Verifier will always accept when following the protocol
Soundness error
Proof
- based on Schwartz-Zippel Lemma
- If the Prover is dishonest, the Prover prove but
- To do this, the Prover must send a yet .
- For each round, this has the probability .
- With rounds in the protocol, the total probability is
Costs
Tip
- for a -variate polynomial,
- In SNARK application, = number of terms being summed = circuit size
- Thus
Prover Time
Verifier Time
- , since is constant for a multivariate polynomial and is constant
- O(T), since is usually small and can be ignored
Number of Rounds
- 1 round per variable in
- Total rounds
Communication / Proof Size
- For each round, Prover sends a univariate polynomials represented by field elements
- For rounds, the total is
- Thus it is
- Since is constant for a multilinear polynomial, it is
Non-interactive Implementation
To transform the sum-check protocol to non-interactive often requires applying the Fiat-Shamir transformation, which requires a hash function. Even though this is a overhead, it can still be a large constant.
Optimization
Prover Doesn’t Send Polynomial to Verifier (HyperPlonk)
Benefits and Characteristics
- no commitments necessary
- avoid commitment costs which can be high
- sized proofs
- although it’s not constant sized, but if using a hashing-based commitment scheme like FRI which is anyways, then sum-check protocol doesn’t add any extra costs
Sum-Check-Based SNARKs
- Spartan20
- Brakedown21
- Orion22
- HyperPlonk23
- BaseFold24
- Blaze2
- Losum - a KZG-based sum-check scheme
Sum-Check-Based Lookups
- Locq24 - based on Losum
Resources
- Proofs, Arguments and Zero Knowledge by Justin Thaler, Chapter 4.1