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

The VerifierInstance encapsulates all the necessary information for a Mega Honk Verifier to verify a proof (sumcheck + Shplemini). In the context of folding, this is returned by the Protogalaxy verifier with non-zero target sum. More...

#include <verifier_instance.hpp>

Public Types

using Flavor = Flavor_
 
using FF = typename Flavor::FF
 
using Commitment = typename Flavor::Commitment
 
using VerificationKey = typename Flavor::VerificationKey
 
using VerifierCommitmentKey = typename Flavor::VerifierCommitmentKey
 
using WitnessCommitments = typename Flavor::WitnessCommitments
 
using CommitmentLabels = typename Flavor::CommitmentLabels
 
using SubrelationSeparators = typename Flavor::SubrelationSeparators
 
using Transcript = typename Flavor::Transcript
 

Public Member Functions

 VerifierInstance_ ()=default
 
 VerifierInstance_ (std::shared_ptr< VerificationKey > vk)
 
std::shared_ptr< VerificationKeyget_vk () const
 Get the verification key.
 
FF hash_through_transcript (const std::string &domain_separator, Transcript &transcript) const
 
 MSGPACK_FIELDS (vk, relation_parameters, alphas, is_complete, gate_challenges, target_sum, witness_commitments)
 

Public Attributes

std::shared_ptr< VerificationKeyvk
 
bool is_complete = false
 
std::vector< FFpublic_inputs
 
SubrelationSeparators alphas
 
RelationParameters< FFrelation_parameters
 
std::vector< FFgate_challenges
 
FF target_sum { 0 }
 
WitnessCommitments witness_commitments
 
CommitmentLabels commitment_labels
 

Detailed Description

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

The VerifierInstance encapsulates all the necessary information for a Mega Honk Verifier to verify a proof (sumcheck + Shplemini). In the context of folding, this is returned by the Protogalaxy verifier with non-zero target sum.

This is \(\phi\) in the Protogalaxy paper. It is the committed version of a ProverInstance_. With the notation used in ProverInstance_, a prover instance is \(\omega = (p_1, \dots, p_M, \theta_1, \dots, \theta_6, \alpha_{1,1}, \dots, \alpha_{n,r_n})\) where the \(p_i\)'s are the prover polynomials, the \(\theta_i\)'s are the relation parameters, and the \(\alpha_{i,j}\)'s are the subrelation batching parameters. Then, \(\phi\) is given by \(\omega = ([p_1], \dots, [p_M], \theta_1, \dots, \theta_6, \alpha_{1,1}, \dots, \alpha_{n,r_n})\)m where [p_i] denotes the commitment to the i-th prover polynomial.

Definition at line 25 of file verifier_instance.hpp.

Member Typedef Documentation

◆ Commitment

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

Definition at line 29 of file verifier_instance.hpp.

◆ CommitmentLabels

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

Definition at line 33 of file verifier_instance.hpp.

◆ FF

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

Definition at line 28 of file verifier_instance.hpp.

◆ Flavor

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

Definition at line 27 of file verifier_instance.hpp.

◆ SubrelationSeparators

template<IsUltraOrMegaHonk Flavor_>
using bb::VerifierInstance_< Flavor_ >::SubrelationSeparators = typename Flavor::SubrelationSeparators

Definition at line 34 of file verifier_instance.hpp.

◆ Transcript

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

Definition at line 35 of file verifier_instance.hpp.

◆ VerificationKey

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

Definition at line 30 of file verifier_instance.hpp.

◆ VerifierCommitmentKey

template<IsUltraOrMegaHonk Flavor_>
using bb::VerifierInstance_< Flavor_ >::VerifierCommitmentKey = typename Flavor::VerifierCommitmentKey

Definition at line 31 of file verifier_instance.hpp.

◆ WitnessCommitments

template<IsUltraOrMegaHonk Flavor_>
using bb::VerifierInstance_< Flavor_ >::WitnessCommitments = typename Flavor::WitnessCommitments

Definition at line 32 of file verifier_instance.hpp.

Constructor & Destructor Documentation

◆ VerifierInstance_() [1/2]

template<IsUltraOrMegaHonk Flavor_>
bb::VerifierInstance_< Flavor_ >::VerifierInstance_ ( )
default

◆ VerifierInstance_() [2/2]

template<IsUltraOrMegaHonk Flavor_>
bb::VerifierInstance_< Flavor_ >::VerifierInstance_ ( std::shared_ptr< VerificationKey vk)
inline

Definition at line 52 of file verifier_instance.hpp.

Member Function Documentation

◆ get_vk()

template<IsUltraOrMegaHonk Flavor_>
std::shared_ptr< VerificationKey > bb::VerifierInstance_< Flavor_ >::get_vk ( ) const
inline

Get the verification key.

Returns
Verification key shared pointer

Definition at line 60 of file verifier_instance.hpp.

◆ hash_through_transcript()

template<IsUltraOrMegaHonk Flavor_>
FF bb::VerifierInstance_< Flavor_ >::hash_through_transcript ( const std::string &  domain_separator,
Transcript transcript 
) const
inline

Definition at line 62 of file verifier_instance.hpp.

◆ MSGPACK_FIELDS()

template<IsUltraOrMegaHonk Flavor_>
bb::VerifierInstance_< Flavor_ >::MSGPACK_FIELDS ( vk  ,
relation_parameters  ,
alphas  ,
is_complete  ,
gate_challenges  ,
target_sum  ,
witness_commitments   
)

Member Data Documentation

◆ alphas

template<IsUltraOrMegaHonk Flavor_>
SubrelationSeparators bb::VerifierInstance_< Flavor_ >::alphas

Definition at line 42 of file verifier_instance.hpp.

◆ commitment_labels

template<IsUltraOrMegaHonk Flavor_>
CommitmentLabels bb::VerifierInstance_< Flavor_ >::commitment_labels

Definition at line 49 of file verifier_instance.hpp.

◆ gate_challenges

template<IsUltraOrMegaHonk Flavor_>
std::vector<FF> bb::VerifierInstance_< Flavor_ >::gate_challenges

Definition at line 44 of file verifier_instance.hpp.

◆ is_complete

template<IsUltraOrMegaHonk Flavor_>
bool bb::VerifierInstance_< Flavor_ >::is_complete = false

Definition at line 39 of file verifier_instance.hpp.

◆ public_inputs

template<IsUltraOrMegaHonk Flavor_>
std::vector<FF> bb::VerifierInstance_< Flavor_ >::public_inputs

Definition at line 40 of file verifier_instance.hpp.

◆ relation_parameters

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

Definition at line 43 of file verifier_instance.hpp.

◆ target_sum

template<IsUltraOrMegaHonk Flavor_>
FF bb::VerifierInstance_< Flavor_ >::target_sum { 0 }

Definition at line 46 of file verifier_instance.hpp.

◆ vk

template<IsUltraOrMegaHonk Flavor_>
std::shared_ptr<VerificationKey> bb::VerifierInstance_< Flavor_ >::vk

Definition at line 37 of file verifier_instance.hpp.

◆ witness_commitments

template<IsUltraOrMegaHonk Flavor_>
WitnessCommitments bb::VerifierInstance_< Flavor_ >::witness_commitments

Definition at line 48 of file verifier_instance.hpp.


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