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 provided to the Hypernova verifier as an incoming instance. 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 SubrelationSeparator = typename Flavor::SubrelationSeparator
 
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_with_origin_tagging (const std::string &domain_separator, Transcript &transcript) const
 Tag all components and hash.
 
 MSGPACK_FIELDS (vk, relation_parameters, alpha, is_complete, gate_challenges, witness_commitments, gemini_masking_commitment)
 

Public Attributes

std::shared_ptr< VerificationKeyvk
 
bool is_complete = false
 
std::vector< FFpublic_inputs
 
SubrelationSeparator alpha
 
RelationParameters< FFrelation_parameters
 
std::vector< FFgate_challenges
 
WitnessCommitments witness_commitments
 
CommitmentLabels commitment_labels
 
Commitment gemini_masking_commitment
 

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 provided to the Hypernova verifier as an incoming instance.

Definition at line 19 of file verifier_instance.hpp.

Member Typedef Documentation

◆ Commitment

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

Definition at line 23 of file verifier_instance.hpp.

◆ CommitmentLabels

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

Definition at line 27 of file verifier_instance.hpp.

◆ FF

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

Definition at line 22 of file verifier_instance.hpp.

◆ Flavor

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

Definition at line 21 of file verifier_instance.hpp.

◆ SubrelationSeparator

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

Definition at line 28 of file verifier_instance.hpp.

◆ Transcript

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

Definition at line 29 of file verifier_instance.hpp.

◆ VerificationKey

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

Definition at line 24 of file verifier_instance.hpp.

◆ VerifierCommitmentKey

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

Definition at line 25 of file verifier_instance.hpp.

◆ WitnessCommitments

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

Definition at line 26 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 47 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 55 of file verifier_instance.hpp.

◆ hash_with_origin_tagging()

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

Tag all components and hash.

Tags all instance components (VK, commitments, challenges) with transcript context to ensure proper origin tag tracking for recursive verification.

Parameters
domain_separator(currently unused, kept for API compatibility)
transcriptUsed to extract tag context (transcript_index, round_index)
Returns
FF Hash of the verifier instance

Definition at line 66 of file verifier_instance.hpp.

◆ MSGPACK_FIELDS()

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

Member Data Documentation

◆ alpha

template<IsUltraOrMegaHonk Flavor_>
SubrelationSeparator bb::VerifierInstance_< Flavor_ >::alpha

Definition at line 36 of file verifier_instance.hpp.

◆ commitment_labels

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

Definition at line 41 of file verifier_instance.hpp.

◆ gate_challenges

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

Definition at line 38 of file verifier_instance.hpp.

◆ gemini_masking_commitment

template<IsUltraOrMegaHonk Flavor_>
Commitment bb::VerifierInstance_< Flavor_ >::gemini_masking_commitment

Definition at line 44 of file verifier_instance.hpp.

◆ is_complete

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

Definition at line 33 of file verifier_instance.hpp.

◆ public_inputs

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

Definition at line 34 of file verifier_instance.hpp.

◆ relation_parameters

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

Definition at line 37 of file verifier_instance.hpp.

◆ vk

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

Definition at line 31 of file verifier_instance.hpp.

◆ witness_commitments

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

Definition at line 40 of file verifier_instance.hpp.


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