Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::DeciderProver_< Flavor > Class Template Reference

#include <decider_prover.hpp>

Public Member Functions

 DeciderProver_ (const std::shared_ptr< DeciderPK > &, const std::shared_ptr< Transcript > &transcript=std::make_shared< Transcript >())
 
BB_PROFILE void execute_relation_check_rounds ()
 Run Sumcheck to establish that ∑_i pow(\vec{β*})f_i(ω) = e*. This results in u = (u_1,...,u_d) sumcheck round challenges and all evaluations at u being calculated.
 
BB_PROFILE void execute_pcs_rounds ()
 Produce a univariate opening claim for the sumcheck multivariate evalutions and a batched univariate claim for the transcript polynomials (for the Translator consistency check). Reduce the two opening claims to a single one via Shplonk and produce an opening proof with the univariate PCS of choice (IPA when operating on Grumpkin).
 
Proof export_proof ()
 
void construct_proof ()
 

Public Attributes

std::shared_ptr< DeciderPKproving_key
 
std::shared_ptr< Transcripttranscript
 
bb::RelationParameters< FFrelation_parameters
 
CommitmentLabels commitment_labels
 
Polynomial quotient_W
 
ZKData zk_sumcheck_data
 
SumcheckOutput< Flavorsumcheck_output
 

Private Types

using FF = typename Flavor::FF
 
using Curve = typename Flavor::Curve
 
using Commitment = typename Flavor::Commitment
 
using CommitmentKey = typename Flavor::CommitmentKey
 
using Polynomial = typename Flavor::Polynomial
 
using ProverPolynomials = typename Flavor::ProverPolynomials
 
using CommitmentLabels = typename Flavor::CommitmentLabels
 
using PCS = typename Flavor::PCS
 
using DeciderPK = DeciderProvingKey_< Flavor >
 
using Transcript = typename Flavor::Transcript
 
using ZKData = ZKSumcheckData< Flavor >
 
using SmallSubgroupIPA = SmallSubgroupIPAProver< Flavor >
 
using Proof = typename Flavor::Transcript::Proof
 

Detailed Description

template<IsUltraOrMegaHonk Flavor>
class bb::DeciderProver_< Flavor >

Definition at line 22 of file decider_prover.hpp.

Member Typedef Documentation

◆ Commitment

template<IsUltraOrMegaHonk Flavor>
using bb::DeciderProver_< Flavor >::Commitment = typename Flavor::Commitment
private

Definition at line 25 of file decider_prover.hpp.

◆ CommitmentKey

template<IsUltraOrMegaHonk Flavor>
using bb::DeciderProver_< Flavor >::CommitmentKey = typename Flavor::CommitmentKey
private

Definition at line 26 of file decider_prover.hpp.

◆ CommitmentLabels

template<IsUltraOrMegaHonk Flavor>
using bb::DeciderProver_< Flavor >::CommitmentLabels = typename Flavor::CommitmentLabels
private

Definition at line 29 of file decider_prover.hpp.

◆ Curve

template<IsUltraOrMegaHonk Flavor>
using bb::DeciderProver_< Flavor >::Curve = typename Flavor::Curve
private

Definition at line 24 of file decider_prover.hpp.

◆ DeciderPK

template<IsUltraOrMegaHonk Flavor>
using bb::DeciderProver_< Flavor >::DeciderPK = DeciderProvingKey_<Flavor>
private

Definition at line 31 of file decider_prover.hpp.

◆ FF

template<IsUltraOrMegaHonk Flavor>
using bb::DeciderProver_< Flavor >::FF = typename Flavor::FF
private

Definition at line 23 of file decider_prover.hpp.

◆ PCS

template<IsUltraOrMegaHonk Flavor>
using bb::DeciderProver_< Flavor >::PCS = typename Flavor::PCS
private

Definition at line 30 of file decider_prover.hpp.

◆ Polynomial

template<IsUltraOrMegaHonk Flavor>
using bb::DeciderProver_< Flavor >::Polynomial = typename Flavor::Polynomial
private

Definition at line 27 of file decider_prover.hpp.

◆ Proof

template<IsUltraOrMegaHonk Flavor>
using bb::DeciderProver_< Flavor >::Proof = typename Flavor::Transcript::Proof
private

Definition at line 35 of file decider_prover.hpp.

◆ ProverPolynomials

template<IsUltraOrMegaHonk Flavor>
using bb::DeciderProver_< Flavor >::ProverPolynomials = typename Flavor::ProverPolynomials
private

Definition at line 28 of file decider_prover.hpp.

◆ SmallSubgroupIPA

template<IsUltraOrMegaHonk Flavor>
using bb::DeciderProver_< Flavor >::SmallSubgroupIPA = SmallSubgroupIPAProver<Flavor>
private

Definition at line 34 of file decider_prover.hpp.

◆ Transcript

template<IsUltraOrMegaHonk Flavor>
using bb::DeciderProver_< Flavor >::Transcript = typename Flavor::Transcript
private

Definition at line 32 of file decider_prover.hpp.

◆ ZKData

template<IsUltraOrMegaHonk Flavor>
using bb::DeciderProver_< Flavor >::ZKData = ZKSumcheckData<Flavor>
private

Definition at line 33 of file decider_prover.hpp.

Constructor & Destructor Documentation

◆ DeciderProver_()

template<IsUltraOrMegaHonk Flavor>
bb::DeciderProver_< Flavor >::DeciderProver_ ( const std::shared_ptr< DeciderPK > &  proving_key,
const std::shared_ptr< Transcript > &  transcript = std::make_shared<Transcript>() 
)
explicit

Create DeciderProver_ from an accumulator.

Parameters
accumulatorRelaxed instance (ϕ, ω, \vec{β}, e) whose proof we want to generate, produced by Protogalaxy folding prover
Template Parameters
atype of UltraFlavor

Definition at line 23 of file decider_prover.cpp.

Member Function Documentation

◆ construct_proof()

template<IsUltraOrMegaHonk Flavor>
void bb::DeciderProver_< Flavor >::construct_proof ( )

Definition at line 109 of file decider_prover.cpp.

◆ execute_pcs_rounds()

template<IsUltraOrMegaHonk Flavor>
void bb::DeciderProver_< Flavor >::execute_pcs_rounds ( )

Produce a univariate opening claim for the sumcheck multivariate evalutions and a batched univariate claim for the transcript polynomials (for the Translator consistency check). Reduce the two opening claims to a single one via Shplonk and produce an opening proof with the univariate PCS of choice (IPA when operating on Grumpkin).

Definition at line 68 of file decider_prover.cpp.

◆ execute_relation_check_rounds()

template<IsUltraOrMegaHonk Flavor>
void bb::DeciderProver_< Flavor >::execute_relation_check_rounds ( )

Run Sumcheck to establish that ∑_i pow(\vec{β*})f_i(ω) = e*. This results in u = (u_1,...,u_d) sumcheck round challenges and all evaluations at u being calculated.

Definition at line 34 of file decider_prover.cpp.

◆ export_proof()

template<IsUltraOrMegaHonk Flavor>
DeciderProver_< Flavor >::Proof bb::DeciderProver_< Flavor >::export_proof ( )

Definition at line 104 of file decider_prover.cpp.

Member Data Documentation

◆ commitment_labels

template<IsUltraOrMegaHonk Flavor>
CommitmentLabels bb::DeciderProver_< Flavor >::commitment_labels

Definition at line 53 of file decider_prover.hpp.

◆ proving_key

template<IsUltraOrMegaHonk Flavor>
std::shared_ptr<DeciderPK> bb::DeciderProver_< Flavor >::proving_key

Definition at line 47 of file decider_prover.hpp.

◆ quotient_W

template<IsUltraOrMegaHonk Flavor>
Polynomial bb::DeciderProver_< Flavor >::quotient_W

Definition at line 55 of file decider_prover.hpp.

◆ relation_parameters

template<IsUltraOrMegaHonk Flavor>
bb::RelationParameters<FF> bb::DeciderProver_< Flavor >::relation_parameters

Definition at line 51 of file decider_prover.hpp.

◆ sumcheck_output

template<IsUltraOrMegaHonk Flavor>
SumcheckOutput<Flavor> bb::DeciderProver_< Flavor >::sumcheck_output

Definition at line 59 of file decider_prover.hpp.

◆ transcript

template<IsUltraOrMegaHonk Flavor>
std::shared_ptr<Transcript> bb::DeciderProver_< Flavor >::transcript

Definition at line 49 of file decider_prover.hpp.

◆ zk_sumcheck_data

template<IsUltraOrMegaHonk Flavor>
ZKData bb::DeciderProver_< Flavor >::zk_sumcheck_data

Definition at line 57 of file decider_prover.hpp.


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