Sources:
- Brakedown - Linear-time and field-agnostic SNARKs for R1CS
- Unlocking the lookup singularity with Lasso
- (Originally described as part of Spartan)
Use-case: In Spartan, we need to commit to the sparse R1CS matrices, which are of size , but only have non-zero entries. They achieve a quadratic speed-up over using a dense commitment scheme.
Representing sparse polynomials with dense polynomials: Any -variate multilinear polynomial can be written as:
where is the unique multi-linear extension of the equality function on the boolean hypercube:
is the Lagrange polynomial on . We can factor it into two Langrange polynomials over :
Let be the function that maps a field element to its bit representation. Then, we can write:
for some -variate polynomials , , and .
Commitment phase: The prover commits to dense polynomials , , and .
Evaluation proof:
- The prover sends the claimed evaluation of
- The prover commits to two -variate helper polynomials and , such that:
- Prover and verifier run the Multivariate Sum-Check Protocol to check that:
- To show that and are well-formed, the prover and verifier run the an interactive protocol derived from the Offline Memory Checking technique.
- For example, to show that is well-formed, we show that it corresponds to the vector obtained by reading from a memory described by using addresses described by .
Generalizing: The reason we factored the Lagrange polynomials over into two Lagrange polynomials over is because . In general, we could split it into any number of polynomials where .