Prerequisite:
- multilinear polynomials
- low degree extension
Multilinear extensions
A multivariate polynomial is multilinear if the degree of the polynomial in each variable is at most one.
let be any function mapping the v-dimensional hypercube to , then multilinear extension of is , a -variate polynomial that agrees with on all .
Why multilinear extensions?
Allows to represent domain of length 2^v into v variable multilinear polynomial, which is way less than univariate polynomials where variable polynomial is needed to represent length domain.
Using SZ lemma, verifier gains power over prover as if two functions differ at even one point in , then their extension disagree almost everywhere, precisely agree at most .
Prove that a function has a unique multilinear extension over . a
Lagrange interpolation
where for any , is called equality polynomial,
Sumcheck protocol
To Prove:
More precisely, sumcheck protocol is used to prove a v-variate polynomial defined over a Finite field .
Let’s see how the protocol behaves:
- claiming to equal to
- round 1: sends a univariate polynomial:
- checks that , and
- , and sends to
- round i:
- checks and sends to
- last round:
- checks , and
- checks with oracle query access to that
Efficiency:
- : for each round i: terms are sent
Univariate sumcheck
Introduced in Aurora Paper, univariate sumcheck proves relation for a univariate polynomial of degree and subset :
Properties of protocol:
- rounds:
- proof complexity:
- query complexity:
- prover operations:
- verifier operations:
Uses theorem stated by Byott and Chapman BC99 that iff has degree less than . Prove this using FRI protocol by BBHR18b which has proof complexity and proof length . For case when degree : we observe that we can split any polynomial into two polynomials and such that with and ; in particular, and agree on , and thus so do their sums on .
- https://hackmd.io/@kIJ38IbETaGkxGkcxhrNVg/HycoeJUJh?utm_source=preview-mode&utm_medium=rec
GKR
and agrees to a circuit. proves , the output of the circuit.
Taken from jolt repo:
GKR is a SNARK protocol for binary trees of multiplication / addition gates. The standard form allows combinations of both using a wiring predicate , and two additional MLEs and .
evaluates to the value of he circuit at the -th layer in the -th gate. For example corresponds to the output gate.
evaluates to 1 if the -th gate of the -th layer is an addition gate.
evaluates to 1 if the -th gate of the -th layer is a multiplication gate.
The sumcheck protocol is applied to the following:
where
Lasso and Jolt implement the Thaler13 version of GKR which is optimized for the far simpler case of a binary tree of multiplication gates. This simplifies each sumcheck to:
where
GKR is utilized in memory-checking for the multi-set permutation check.
Resources
- recmo’s post about sumcheck
- JThaler’s: unreasonable power of sumcheck
- JThaler’s sumcheck notes
- JThaler’s: Proofs, Args, and ZK, Chapter 3, 4
- JThaler’s small sumcheck
- erhant’s notes on Lecture 4 of ZKP MOOC
- NUS CS6230: The power of IPs
- Berkeley’s CS294: Introduction to IP & Sumcheck
- risencrypto’s sumcheck
- zk sumcheck
- sumcheck arguments and their application
- CPerez’s post about sumcheck
- CPerez’s ideas about GKR