Sources:
- Proofs, Arguments, and Zero-Knowledge, section 10.5
- Brakedown - Linear-time and field-agnostic SNARKs for R1CS
These protocols exploit the Tensor Product Structure in Polynomial Evaluation Queries to commit to a degree- polynomial . Let .
Ligero and Brakedown use a different Error-correcting code with rate :
- Ligero uses the univariate low-degree extension code →
- Brakedown uses a code with a linear-time encoding procedure →
Commitment Phase: To commit to a polynomial with coefficient vector , let’s view as an matrix and let be the matrix where each row is replaced with , then:
- The prover sends a commitment to matrix , claimed to equal
The verifier has to check that is well-formed, i.e., every row is a valid code word:
- The verifier chooses a random vector
- The prover responds with (which must be a codeword, so the prover can just send such that the result is )
- In other words, the prover requests a random linear combination of rows.
- For a random column subset of size , the verifier checks entries of by opening the entire column from the commitment of and re-computes it
Evaluation Phase: means computing for and .
Computing works completely analogous to the “random linear combination test”. Then, can be computed in time.