barretenberg
Loading...
Searching...
No Matches
Static Public Member Functions | List of all members
proof_system::plonk::VerifierPermutationWidget< Field, Group, Transcript, num_roots_cut_out_of_vanishing_polynomial > Class Template Reference

Static Public Member Functions

static Field compute_quotient_evaluation_contribution (typename Transcript::Key *, const Field &alpha_base, const Transcript &transcript, Field &quotient_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)
 

Member Function Documentation

◆ 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
keythe verification key
alphathe quotient challenge (same name as in the Plonk paper)
transcript
quotient_numerator_evalthis will be mutated by this function.
idpolysdescribes 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: