|
| static Field | compute_quotient_evaluation_contribution (typename Transcript::Key *, const Field &alpha_base, const Transcript &transcript, Field "ient_numerator_eval, const bool idpolys=false) |
| | This function computes the part of the quotient polynomial evaluation relevant to PLONK's permutation argument.
|
| |
|
static Field | append_scalar_multiplication_inputs (typename Transcript::Key *, const Field &alpha_base, const Transcript &transcript) |
| |
◆ compute_quotient_evaluation_contribution()
template<typename Field , typename Group , typename Transcript , const size_t num_roots_cut_out_of_vanishing_polynomial>
| Field proof_system::plonk::VerifierPermutationWidget< Field, Group, Transcript, num_roots_cut_out_of_vanishing_polynomial >::compute_quotient_evaluation_contribution |
( |
typename Transcript::Key * |
key, |
|
|
const Field & |
alpha, |
|
|
const Transcript & |
transcript, |
|
|
Field & |
quotient_numerator_eval, |
|
|
const bool |
idpolys = false |
|
) |
| |
|
static |
This function computes the part of the quotient polynomial evaluation relevant to PLONK's permutation argument.
Earlier in the life of this function was written, the linearization trick to reduce proof size was implemented in Barretenberg. Using a boolean switch, the function could be used for in both the linearized protocol (as described in the PlonK paper) and the naive protocol (which was called "unrolled" in the code) where a purported value of the quotient polynomial is assembled from purported evaluations of all of the prover polynomials. To reduce code complexity, we have subsequently remoted support for the linearized version, but for a variety of reasons we have left the structure of this function largely intact.
- Parameters
-
| key | the verification key |
| alpha | the quotient challenge (same name as in the Plonk paper) |
| transcript | |
| quotient_numerator_eval | this will be mutated by this function. |
| idpolys | describes whether we're using Vitalik's trick of using the trivial identity polys (idpolys=false), or whether the identity polys are circuit-specific and stored in the proving/verification key (idpolys=true). |
The documentation for this class was generated from the following files: