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

#include <ultra_prover.hpp>

Public Types

using Flavor = Flavor_
 
using FF = typename Flavor::FF
 
using Builder = typename Flavor::CircuitBuilder
 
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 HonkVK = typename Flavor::VerificationKey
 
using Transcript = typename Flavor::Transcript
 
using Proof = typename Transcript::Proof
 

Public Member Functions

 UltraProver_ (const std::shared_ptr< DeciderPK > &, const std::shared_ptr< HonkVK > &, const CommitmentKey &)
 
 UltraProver_ (const std::shared_ptr< DeciderPK > &, const std::shared_ptr< HonkVK > &, const std::shared_ptr< Transcript > &transcript=std::make_shared< Transcript >())
 Create UltraProver_ from a decider proving key.
 
 UltraProver_ (Builder &, const std::shared_ptr< HonkVK > &, const std::shared_ptr< Transcript > &transcript=std::make_shared< Transcript >())
 Create UltraProver_ from a circuit.
 
 UltraProver_ (Builder &&, const std::shared_ptr< HonkVK > &)
 
BB_PROFILE void generate_gate_challenges ()
 
Proof export_proof ()
 
Proof construct_proof ()
 
Proof prove ()
 

Public Attributes

std::shared_ptr< DeciderPKproving_key
 
std::shared_ptr< HonkVKhonk_vk
 
std::shared_ptr< Transcripttranscript
 
bb::RelationParameters< FFrelation_parameters
 
Polynomial quotient_W
 
SumcheckOutput< Flavorsumcheck_output
 
CommitmentKey commitment_key
 

Detailed Description

template<IsUltraOrMegaHonk Flavor_>
class bb::UltraProver_< Flavor_ >

Definition at line 19 of file ultra_prover.hpp.

Member Typedef Documentation

◆ Builder

template<IsUltraOrMegaHonk Flavor_>
using bb::UltraProver_< Flavor_ >::Builder = typename Flavor::CircuitBuilder

Definition at line 23 of file ultra_prover.hpp.

◆ Commitment

template<IsUltraOrMegaHonk Flavor_>
using bb::UltraProver_< Flavor_ >::Commitment = typename Flavor::Commitment

Definition at line 24 of file ultra_prover.hpp.

◆ CommitmentKey

template<IsUltraOrMegaHonk Flavor_>
using bb::UltraProver_< Flavor_ >::CommitmentKey = typename Flavor::CommitmentKey

Definition at line 25 of file ultra_prover.hpp.

◆ CommitmentLabels

template<IsUltraOrMegaHonk Flavor_>
using bb::UltraProver_< Flavor_ >::CommitmentLabels = typename Flavor::CommitmentLabels

Definition at line 28 of file ultra_prover.hpp.

◆ DeciderPK

template<IsUltraOrMegaHonk Flavor_>
using bb::UltraProver_< Flavor_ >::DeciderPK = DeciderProvingKey_<Flavor>

Definition at line 30 of file ultra_prover.hpp.

◆ FF

template<IsUltraOrMegaHonk Flavor_>
using bb::UltraProver_< Flavor_ >::FF = typename Flavor::FF

Definition at line 22 of file ultra_prover.hpp.

◆ Flavor

template<IsUltraOrMegaHonk Flavor_>
using bb::UltraProver_< Flavor_ >::Flavor = Flavor_

Definition at line 21 of file ultra_prover.hpp.

◆ HonkVK

template<IsUltraOrMegaHonk Flavor_>
using bb::UltraProver_< Flavor_ >::HonkVK = typename Flavor::VerificationKey

Definition at line 31 of file ultra_prover.hpp.

◆ PCS

template<IsUltraOrMegaHonk Flavor_>
using bb::UltraProver_< Flavor_ >::PCS = typename Flavor::PCS

Definition at line 29 of file ultra_prover.hpp.

◆ Polynomial

template<IsUltraOrMegaHonk Flavor_>
using bb::UltraProver_< Flavor_ >::Polynomial = typename Flavor::Polynomial

Definition at line 26 of file ultra_prover.hpp.

◆ Proof

template<IsUltraOrMegaHonk Flavor_>
using bb::UltraProver_< Flavor_ >::Proof = typename Transcript::Proof

Definition at line 33 of file ultra_prover.hpp.

◆ ProverPolynomials

template<IsUltraOrMegaHonk Flavor_>
using bb::UltraProver_< Flavor_ >::ProverPolynomials = typename Flavor::ProverPolynomials

Definition at line 27 of file ultra_prover.hpp.

◆ Transcript

template<IsUltraOrMegaHonk Flavor_>
using bb::UltraProver_< Flavor_ >::Transcript = typename Flavor::Transcript

Definition at line 32 of file ultra_prover.hpp.

Constructor & Destructor Documentation

◆ UltraProver_() [1/4]

template<IsUltraOrMegaHonk Flavor>
bb::UltraProver_< Flavor >::UltraProver_ ( const std::shared_ptr< DeciderPK > &  proving_key,
const std::shared_ptr< HonkVK > &  honk_vk,
const CommitmentKey commitment_key 
)

Definition at line 14 of file ultra_prover.cpp.

◆ UltraProver_() [2/4]

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

Create UltraProver_ from a decider proving key.

Parameters
proving_keykey whose proof we want to generate.
Template Parameters
atype of UltraFlavor

Definition at line 31 of file ultra_prover.cpp.

◆ UltraProver_() [3/4]

template<IsUltraOrMegaHonk Flavor>
bb::UltraProver_< Flavor >::UltraProver_ ( Builder circuit,
const std::shared_ptr< HonkVK > &  honk_vk,
const std::shared_ptr< Transcript > &  transcript = std::make_shared<Transcript>() 
)
explicit

Create UltraProver_ from a circuit.

Parameters
circuitCircuit with witnesses whose validity we'd like to prove.
Template Parameters
atype of UltraFlavor

Definition at line 48 of file ultra_prover.cpp.

◆ UltraProver_() [4/4]

template<IsUltraOrMegaHonk Flavor>
bb::UltraProver_< Flavor >::UltraProver_ ( Builder &&  circuit,
const std::shared_ptr< HonkVK > &  honk_vk 
)
explicit

Definition at line 58 of file ultra_prover.cpp.

Member Function Documentation

◆ construct_proof()

template<IsUltraOrMegaHonk Flavor>
UltraProver_< Flavor >::Proof bb::UltraProver_< Flavor >::construct_proof ( )

Definition at line 89 of file ultra_prover.cpp.

◆ export_proof()

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

Definition at line 65 of file ultra_prover.cpp.

◆ generate_gate_challenges()

template<IsUltraOrMegaHonk Flavor>
void bb::UltraProver_< Flavor >::generate_gate_challenges ( )

Definition at line 79 of file ultra_prover.cpp.

◆ prove()

template<IsUltraOrMegaHonk Flavor_>
Proof bb::UltraProver_< Flavor_ >::prove ( )
inline

Definition at line 64 of file ultra_prover.hpp.

Member Data Documentation

◆ commitment_key

template<IsUltraOrMegaHonk Flavor_>
CommitmentKey bb::UltraProver_< Flavor_ >::commitment_key

Definition at line 46 of file ultra_prover.hpp.

◆ honk_vk

template<IsUltraOrMegaHonk Flavor_>
std::shared_ptr<HonkVK> bb::UltraProver_< Flavor_ >::honk_vk

Definition at line 36 of file ultra_prover.hpp.

◆ proving_key

template<IsUltraOrMegaHonk Flavor_>
std::shared_ptr<DeciderPK> bb::UltraProver_< Flavor_ >::proving_key

Definition at line 35 of file ultra_prover.hpp.

◆ quotient_W

template<IsUltraOrMegaHonk Flavor_>
Polynomial bb::UltraProver_< Flavor_ >::quotient_W

Definition at line 42 of file ultra_prover.hpp.

◆ relation_parameters

template<IsUltraOrMegaHonk Flavor_>
bb::RelationParameters<FF> bb::UltraProver_< Flavor_ >::relation_parameters

Definition at line 40 of file ultra_prover.hpp.

◆ sumcheck_output

template<IsUltraOrMegaHonk Flavor_>
SumcheckOutput<Flavor> bb::UltraProver_< Flavor_ >::sumcheck_output

Definition at line 44 of file ultra_prover.hpp.

◆ transcript

template<IsUltraOrMegaHonk Flavor_>
std::shared_ptr<Transcript> bb::UltraProver_< Flavor_ >::transcript

Definition at line 38 of file ultra_prover.hpp.


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