Paper
Delegating Computation: Interactive Proofs for Muggles
Authors: Shafi Goldwasser, Yael Tauman Kalai, Guy N. Rothblum
Date: 2008
- An Interactive Proof (IP)
- can be turned into a zkSNARK with PCS and Fiat-Shamir
- designed to delegate computation for arbitrary computation rather than the specific Sum-Check Protocol computation
Overview
- reduces the evaluation of the circuit to only the inputs
- uses layered arithmetic circuits as the intermediate representation in the protocol
- main idea: write the output as the sum-check equations of input , i.e.
- The Sum-Check Protocol is applied once per layer of the circuit
- The verifier needs to evaluate the circuit at its multilinear extension at a random point
- Prover is not required to make any commitments as long as all inputs are public
- Pro:
- Information-theoretic (statistical) security since there is no cryptography in the protocol
- Security comes from the non-predictability of the verifier challenge
- Con:
- No commitment scheme so it’s hard to keep the circuit size small
- Uses a lot of untrusted advice
- i.e. instead of computing division in the circuit, Prover provides the quotient and remainder and the circuit checks that they are correct with a multiplication and an addition
- Pro:
- If there is a private input, then it needs to be committed
Layered Circuit
Circuit is decomposed into layers where the gates in a layer are only connected to gates in adjacent layers.
Layer : output layer
Layer : input layerAny circuit can be transformed into a layered circuit with a maximum blowup factor of in circuit size.
Protocol
: layered arithmetic circuit of fan-in two
: circuit depth
: inputs
: number of gates at layer of
Round 0
- Prover send a function claimed to equal to the circuit output to Verifier
- Verifier picks a random to compute .
Protocol Main Objective
The remaining protocol is to verify
Round
- Define the -variate polynomial:
- Prover claims
- Prover and Verifier apply the sum-check protocol to verify the claim, up till the last step
- During the last step of the sum-check protocol:
1. Prover sends a univariate polynomial of degree at most , claim
2. Verifier continue the sum-check protocol and perform final step where: ,
3. Verifier pick random and set and
Round
- Verifier checks
Security
Soundness
- follows sum-check protocol and is based on Schwartz-Zippel Lemma (i.e. no cryptographic assumptions)
Cost
Prover Time
- original:
- optimized to in subsequent works
Proof Size
-
- linear in the depth of the circuit, and log in the width of the circuit
Verifier Time
- + input size + time to evaluate and
- i.e. the Verifier can run in time sublinear in N (circuit size)
- structured circuits (common scenario):
- e.g. matrix multiplication, data-parallel circuits where they only depend on the public circuit description but not the values within the circuit
- with preprocessing:
- worst case:
Proof Size and Verifier Time for SNARKs for Verifiable Computation
In verifiable computation, the Verifier can (at least in principle) perform the computation locally in linear time. Thus for (non-ZK)SNARKs used for verifiable computation, it is meaningless for the verifier to use a SNARK that requires linear Verifier time. In this case, the SNARK needs to be in sublinear verifier time and proof size.
In GKR, the circuit is stored succinctly in the proof. This allows the Verifier to read the circuit in sub-linear time.
Improvements
Prover Time Optimization
- CMT12: improved to by using multilinear extensions instead of low-degree extensions
- vRAM / ZGKPP: for circuits with many non-connected but different copies
- Giraffe / WBSTWW17: for data-parallel circuits
- Libra19 / XZZ19:
Generalization
- original GKR only support layered circuits
- Virgo++ / ZLWZSXZ21 generalize GKR to arbitrary arithmetic general circuits with the same prover costs
Others
- Tha13 - Proposition 2: GKR for binary tree
- BTVW14: multi-provers, a sum-check-based polynomial IOP (precursor of Spartan), mildly disguised
GKR-based (zk)SNARKs
GKR can be combined with a PCS and FIat-Shamir to create a (zk)SNARK:
- vSQL17 (sumcheck / GKR + multivariate KZG)
- Hyrax18
- zkvSQL18
- Libra19 (sumcheck / GKR + multivariate KZG)
- Virgo20
- Virgo++ / Virgo21
GKR-based Lookup Arguments
- Lasso24
- GKRLogUp23 Improving logarithmic derivative lookups using GKR
Resources
- Proofs, Arguments and Zero Knowledge by Justin Thaler, Chapter 4.6
- A Note on the GKR Protocol by Justin Thaler
- Explore Expander Bootcamp: GKR and Sumcheck Protocol