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.