barretenberg
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
proof_system::honk::ECCVMProver_< Flavor > Class Template Reference

Public Types

using Gemini = pcs::gemini::GeminiProver_< Curve >
 
using Shplonk = pcs::shplonk::ShplonkProver_< Curve >
 

Public Member Functions

 ECCVMProver_ (const std::shared_ptr< ProvingKey > &input_key, const std::shared_ptr< PCSCommitmentKey > &commitment_key, const std::shared_ptr< Transcript > &transcript=std::make_shared< Transcript >())
 
void execute_preamble_round ()
 Add circuit size, public input size, and public inputs to transcript.
 
void execute_wire_commitments_round ()
 Compute commitments to the first three wires.
 
void execute_log_derivative_commitments_round ()
 Compute sorted witness-table accumulator.
 
void execute_grand_product_computation_round ()
 Compute permutation and lookup grand product polynomials and commitments.
 
void execute_relation_check_rounds ()
 Run Sumcheck resulting in u = (u_1,...,u_d) challenges and all evaluations at u being calculated.
 
void execute_univariatization_round ()
 
void execute_pcs_evaluation_round ()
 
void execute_shplonk_batched_quotient_round ()
 
void execute_shplonk_partial_evaluation_round ()
 
void execute_final_pcs_round ()
 
void execute_transcript_consistency_univariate_opening_round ()
 Batch open the transcript polynomials as univariates for Translator consistency check TODO(#768): Find a better way to do this. See issue for details.
 
plonk::proofexport_proof ()
 
plonk::proofconstruct_proof ()
 

Public Attributes

std::shared_ptr< Transcript > transcript
 
TranslationEvaluations translation_evaluations
 
std::vector< FF > public_inputs
 
proof_system::RelationParameters< FF > relation_parameters
 
std::shared_ptr< ProvingKey > key
 
ProverPolynomials prover_polynomials
 
CommitmentLabels commitment_labels
 
std::vector< Polynomial > gemini_polynomials
 
Polynomial batched_quotient_Q
 
FF nu_challenge
 
Polynomial quotient_W
 
FF evaluation_challenge_x
 
FF translation_batching_challenge_v
 
sumcheck::SumcheckOutput< Flavorsumcheck_output
 
pcs::gemini::ProverOutput< Curve > gemini_output
 
pcs::shplonk::ProverOutput< Curve > shplonk_output
 
std::shared_ptr< PCSCommitmentKey > commitment_key
 

Constructor & Destructor Documentation

◆ ECCVMProver_()

template<ECCVMFlavor Flavor>
proof_system::honk::ECCVMProver_< Flavor >::ECCVMProver_ ( const std::shared_ptr< ProvingKey > &  input_key,
const std::shared_ptr< PCSCommitmentKey > &  commitment_key,
const std::shared_ptr< Transcript > &  transcript = std::make_shared<Transcript>() 
)
explicit

Create ECCVMProver_ from proving key, witness and manifest.

Parameters
input_keyProving key.
input_manifestInput manifest
Template Parameters
settingsSettings class.

Member Function Documentation

◆ execute_final_pcs_round()

template<ECCVMFlavor Flavor>
void proof_system::honk::ECCVMProver_< Flavor >::execute_final_pcs_round
  • Compute final PCS opening proof:
  • For KZG, this is the quotient commitment [W]_1
  • For IPA, the vectors L and R

◆ execute_grand_product_computation_round()

template<ECCVMFlavor Flavor>
void proof_system::honk::ECCVMProver_< Flavor >::execute_grand_product_computation_round

Compute permutation and lookup grand product polynomials and commitments.

◆ execute_log_derivative_commitments_round()

template<ECCVMFlavor Flavor>
void proof_system::honk::ECCVMProver_< Flavor >::execute_log_derivative_commitments_round

Compute sorted witness-table accumulator.

◆ execute_pcs_evaluation_round()

template<ECCVMFlavor Flavor>
void proof_system::honk::ECCVMProver_< Flavor >::execute_pcs_evaluation_round
  • Do Fiat-Shamir to get "r" challenge
  • Compute remaining two partially evaluated Fold polynomials Fold_{r}^(0) and Fold_{-r}^(0).
  • Compute and aggregate opening pairs (challenge, evaluation) for each of d Fold polynomials.
  • Add d-many Fold evaluations a_i, i = 0, ..., d-1 to the transcript, excluding eval of Fold_{r}^(0)

◆ execute_preamble_round()

template<ECCVMFlavor Flavor>
void proof_system::honk::ECCVMProver_< Flavor >::execute_preamble_round

Add circuit size, public input size, and public inputs to transcript.

◆ execute_relation_check_rounds()

template<ECCVMFlavor Flavor>
void proof_system::honk::ECCVMProver_< Flavor >::execute_relation_check_rounds

Run Sumcheck resulting in u = (u_1,...,u_d) challenges and all evaluations at u being calculated.

◆ execute_shplonk_batched_quotient_round()

template<ECCVMFlavor Flavor>
void proof_system::honk::ECCVMProver_< Flavor >::execute_shplonk_batched_quotient_round
  • Do Fiat-Shamir to get "nu" challenge.
  • Compute commitment [Q]_1

◆ execute_shplonk_partial_evaluation_round()

template<ECCVMFlavor Flavor>
void proof_system::honk::ECCVMProver_< Flavor >::execute_shplonk_partial_evaluation_round
  • Do Fiat-Shamir to get "z" challenge.
  • Compute polynomial Q(X) - Q_z(X)

◆ execute_transcript_consistency_univariate_opening_round()

template<ECCVMFlavor Flavor>
void proof_system::honk::ECCVMProver_< Flavor >::execute_transcript_consistency_univariate_opening_round

Batch open the transcript polynomials as univariates for Translator consistency check TODO(#768): Find a better way to do this. See issue for details.

Template Parameters
Flavor

◆ execute_univariatization_round()

template<ECCVMFlavor Flavor>
void proof_system::honk::ECCVMProver_< Flavor >::execute_univariatization_round
  • Get rho challenge
  • Compute d+1 Fold polynomials and their evaluations.

◆ execute_wire_commitments_round()

template<ECCVMFlavor Flavor>
void proof_system::honk::ECCVMProver_< Flavor >::execute_wire_commitments_round

Compute commitments to the first three wires.


The documentation for this class was generated from the following files: