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
  • 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 layer

Any 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

  1. Prover send a function claimed to equal to the circuit output to Verifier
  2. Verifier picks a random to compute .

Protocol Main Objective

The remaining protocol is to verify

Round

  1. Define the -variate polynomial:
  1. Prover claims
  2. Prover and Verifier apply the sum-check protocol to verify the claim, up till the last step
  3. 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

  1. Verifier checks

Security

Soundness

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