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

#include <protogalaxy_verifier.hpp>

Public Types

using Flavor = typename VerifierInstance::Flavor
 
using Transcript = typename Flavor::Transcript
 
using FF = typename Flavor::FF
 
using Commitment = typename Flavor::Commitment
 
using VerificationKey = typename Flavor::VerificationKey
 
using WitnessCommitments = typename Flavor::WitnessCommitments
 
using CommitmentLabels = typename Flavor::CommitmentLabels
 
using SubrelationSeparators = typename Flavor::SubrelationSeparators
 
using VerifierInstances = std::array< std::shared_ptr< VerifierInstance >, NUM_INSTANCES >
 

Public Member Functions

 ProtogalaxyVerifier_ (const VerifierInstances &insts, const std::shared_ptr< Transcript > &transcript)
 
 ~ProtogalaxyVerifier_ ()=default
 
void run_oink_verifier_on_each_incomplete_instance (const std::vector< FF > &)
 Instatiate the verifier instances and the transcript.
 
std::shared_ptr< VerifierInstance > verify_folding_proof (const std::vector< FF > &)
 Run the folding protocol on the verifier side to establish whether the public data ϕ of the new accumulator, received from the prover, is the same as that produced by the verifier.
 

Public Attributes

VerifierInstances insts_to_fold
 
std::shared_ptr< Transcripttranscript = std::make_shared<Transcript>()
 

Static Public Attributes

static constexpr size_t NUM_SUBRELATIONS = Flavor::NUM_SUBRELATIONS
 
static constexpr size_t BATCHED_EXTENDED_LENGTH = computed_batched_extended_length<Flavor>()
 

Private Types

enum class  FOLDING_DATA : std::uint8_t { PRECOMPUTED_COMMITMENTS , WITNESS_COMMITMENTS , ALPHAS , RELATION_PARAMETERS }
 

Private Member Functions

template<FOLDING_DATA FoldingData>
auto get_data_to_fold () const
 Get data to be folded grouped by commitment index. Here the "commitment index" is the index of the row in the matrix whose columns are given be the instance components to be folded.
 

Detailed Description

template<class VerifierInstance>
class bb::ProtogalaxyVerifier_< VerifierInstance >

Definition at line 17 of file protogalaxy_verifier.hpp.

Member Typedef Documentation

◆ Commitment

template<class VerifierInstance >
using bb::ProtogalaxyVerifier_< VerifierInstance >::Commitment = typename Flavor::Commitment

Definition at line 22 of file protogalaxy_verifier.hpp.

◆ CommitmentLabels

template<class VerifierInstance >
using bb::ProtogalaxyVerifier_< VerifierInstance >::CommitmentLabels = typename Flavor::CommitmentLabels

Definition at line 25 of file protogalaxy_verifier.hpp.

◆ FF

template<class VerifierInstance >
using bb::ProtogalaxyVerifier_< VerifierInstance >::FF = typename Flavor::FF

Definition at line 21 of file protogalaxy_verifier.hpp.

◆ Flavor

template<class VerifierInstance >
using bb::ProtogalaxyVerifier_< VerifierInstance >::Flavor = typename VerifierInstance::Flavor

Definition at line 19 of file protogalaxy_verifier.hpp.

◆ SubrelationSeparators

template<class VerifierInstance >
using bb::ProtogalaxyVerifier_< VerifierInstance >::SubrelationSeparators = typename Flavor::SubrelationSeparators

Definition at line 26 of file protogalaxy_verifier.hpp.

◆ Transcript

template<class VerifierInstance >
using bb::ProtogalaxyVerifier_< VerifierInstance >::Transcript = typename Flavor::Transcript

Definition at line 20 of file protogalaxy_verifier.hpp.

◆ VerificationKey

template<class VerifierInstance >
using bb::ProtogalaxyVerifier_< VerifierInstance >::VerificationKey = typename Flavor::VerificationKey

Definition at line 23 of file protogalaxy_verifier.hpp.

◆ VerifierInstances

template<class VerifierInstance >
using bb::ProtogalaxyVerifier_< VerifierInstance >::VerifierInstances = std::array<std::shared_ptr<VerifierInstance>, NUM_INSTANCES>

Definition at line 27 of file protogalaxy_verifier.hpp.

◆ WitnessCommitments

template<class VerifierInstance >
using bb::ProtogalaxyVerifier_< VerifierInstance >::WitnessCommitments = typename Flavor::WitnessCommitments

Definition at line 24 of file protogalaxy_verifier.hpp.

Member Enumeration Documentation

◆ FOLDING_DATA

template<class VerifierInstance >
enum class bb::ProtogalaxyVerifier_::FOLDING_DATA : std::uint8_t
strongprivate
Enumerator
PRECOMPUTED_COMMITMENTS 
WITNESS_COMMITMENTS 
ALPHAS 
RELATION_PARAMETERS 

Definition at line 55 of file protogalaxy_verifier.hpp.

Constructor & Destructor Documentation

◆ ProtogalaxyVerifier_()

template<class VerifierInstance >
bb::ProtogalaxyVerifier_< VerifierInstance >::ProtogalaxyVerifier_ ( const VerifierInstances insts,
const std::shared_ptr< Transcript > &  transcript 
)
inline

Definition at line 36 of file protogalaxy_verifier.hpp.

◆ ~ProtogalaxyVerifier_()

template<class VerifierInstance >
bb::ProtogalaxyVerifier_< VerifierInstance >::~ProtogalaxyVerifier_ ( )
default

Member Function Documentation

◆ get_data_to_fold()

template<class VerifierInstance >
template<FOLDING_DATA FoldingData>
auto bb::ProtogalaxyVerifier_< VerifierInstance >::get_data_to_fold ( ) const
inlineprivate

Get data to be folded grouped by commitment index. Here the "commitment index" is the index of the row in the matrix whose columns are given be the instance components to be folded.

Template Parameters
FoldingDataThe type of the parameter to be folded

Definition at line 68 of file protogalaxy_verifier.hpp.

◆ run_oink_verifier_on_each_incomplete_instance()

template<class VerifierInstance >
void bb::ProtogalaxyVerifier_< VerifierInstance >::run_oink_verifier_on_each_incomplete_instance ( const std::vector< FF > &  proof)

Instatiate the verifier instances and the transcript.

Parameters
fold_dataThe data transmitted via the transcript by the prover.

Definition at line 16 of file protogalaxy_verifier.cpp.

◆ verify_folding_proof()

template<class VerifierInstance >
std::shared_ptr< VerifierInstance > bb::ProtogalaxyVerifier_< VerifierInstance >::verify_folding_proof ( const std::vector< FF > &  proof)

Run the folding protocol on the verifier side to establish whether the public data ϕ of the new accumulator, received from the prover, is the same as that produced by the verifier.

Definition at line 45 of file protogalaxy_verifier.cpp.

Member Data Documentation

◆ BATCHED_EXTENDED_LENGTH

template<class VerifierInstance >
constexpr size_t bb::ProtogalaxyVerifier_< VerifierInstance >::BATCHED_EXTENDED_LENGTH = computed_batched_extended_length<Flavor>()
staticconstexpr

Definition at line 30 of file protogalaxy_verifier.hpp.

◆ insts_to_fold

template<class VerifierInstance >
VerifierInstances bb::ProtogalaxyVerifier_< VerifierInstance >::insts_to_fold

Definition at line 32 of file protogalaxy_verifier.hpp.

◆ NUM_SUBRELATIONS

template<class VerifierInstance >
constexpr size_t bb::ProtogalaxyVerifier_< VerifierInstance >::NUM_SUBRELATIONS = Flavor::NUM_SUBRELATIONS
staticconstexpr

Definition at line 29 of file protogalaxy_verifier.hpp.

◆ transcript

template<class VerifierInstance >
std::shared_ptr<Transcript> bb::ProtogalaxyVerifier_< VerifierInstance >::transcript = std::make_shared<Transcript>()

Definition at line 34 of file protogalaxy_verifier.hpp.


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