Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::stdlib::recursion::honk::ProtogalaxyRecursiveVerifier_< DeciderVerificationKeys > Class Template Reference

#include <protogalaxy_recursive_verifier.hpp>

Public Types

using Flavor = typename DeciderVerificationKeys::Flavor
 
using FF = typename Flavor::FF
 
using Commitment = typename Flavor::Commitment
 
using DeciderVK = typename DeciderVerificationKeys::DeciderVK
 
using VKAndHash = typename Flavor::VKAndHash
 
using Builder = typename Flavor::CircuitBuilder
 
using Transcript = bb::BaseTranscript< bb::stdlib::recursion::honk::StdlibTranscriptParams< Builder > >
 

Public Member Functions

 ProtogalaxyRecursiveVerifier_ (Builder *builder, const std::shared_ptr< DeciderVK > &accumulator, const std::vector< std::shared_ptr< VKAndHash > > &vk_and_hashs, const std::shared_ptr< Transcript > &transcript)
 
 ProtogalaxyRecursiveVerifier_ (Builder *builder, const std::shared_ptr< DeciderVK > &accumulator, const std::shared_ptr< DeciderVK > &incoming_instance, const std::shared_ptr< Transcript > &transcript)
 
void run_oink_verifier_on_each_incomplete_key (const std::vector< FF > &)
 Process the public data ϕ for the decider verification keys to be folded.
 
std::shared_ptr< DeciderVKverify_folding_proof (const stdlib::Proof< Builder > &)
 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

Builderbuilder
 
DeciderVerificationKeys keys_to_fold
 
std::shared_ptr< Transcripttranscript = std::make_shared<Transcript>()
 

Static Public Attributes

static constexpr size_t NUM_SUBRELATIONS = Flavor::NUM_SUBRELATIONS
 

Detailed Description

template<class DeciderVerificationKeys>
class bb::stdlib::recursion::honk::ProtogalaxyRecursiveVerifier_< DeciderVerificationKeys >

Definition at line 18 of file protogalaxy_recursive_verifier.hpp.

Member Typedef Documentation

◆ Builder

template<class DeciderVerificationKeys >
using bb::stdlib::recursion::honk::ProtogalaxyRecursiveVerifier_< DeciderVerificationKeys >::Builder = typename Flavor::CircuitBuilder

Definition at line 26 of file protogalaxy_recursive_verifier.hpp.

◆ Commitment

template<class DeciderVerificationKeys >
using bb::stdlib::recursion::honk::ProtogalaxyRecursiveVerifier_< DeciderVerificationKeys >::Commitment = typename Flavor::Commitment

Definition at line 22 of file protogalaxy_recursive_verifier.hpp.

◆ DeciderVK

template<class DeciderVerificationKeys >
using bb::stdlib::recursion::honk::ProtogalaxyRecursiveVerifier_< DeciderVerificationKeys >::DeciderVK = typename DeciderVerificationKeys::DeciderVK

Definition at line 23 of file protogalaxy_recursive_verifier.hpp.

◆ FF

template<class DeciderVerificationKeys >
using bb::stdlib::recursion::honk::ProtogalaxyRecursiveVerifier_< DeciderVerificationKeys >::FF = typename Flavor::FF

Definition at line 21 of file protogalaxy_recursive_verifier.hpp.

◆ Flavor

template<class DeciderVerificationKeys >
using bb::stdlib::recursion::honk::ProtogalaxyRecursiveVerifier_< DeciderVerificationKeys >::Flavor = typename DeciderVerificationKeys::Flavor

Definition at line 20 of file protogalaxy_recursive_verifier.hpp.

◆ Transcript

◆ VKAndHash

template<class DeciderVerificationKeys >
using bb::stdlib::recursion::honk::ProtogalaxyRecursiveVerifier_< DeciderVerificationKeys >::VKAndHash = typename Flavor::VKAndHash

Definition at line 24 of file protogalaxy_recursive_verifier.hpp.

Constructor & Destructor Documentation

◆ ProtogalaxyRecursiveVerifier_() [1/2]

template<class DeciderVerificationKeys >
bb::stdlib::recursion::honk::ProtogalaxyRecursiveVerifier_< DeciderVerificationKeys >::ProtogalaxyRecursiveVerifier_ ( Builder builder,
const std::shared_ptr< DeciderVK > &  accumulator,
const std::vector< std::shared_ptr< VKAndHash > > &  vk_and_hashs,
const std::shared_ptr< Transcript > &  transcript 
)
inline

Definition at line 37 of file protogalaxy_recursive_verifier.hpp.

◆ ProtogalaxyRecursiveVerifier_() [2/2]

template<class DeciderVerificationKeys >
bb::stdlib::recursion::honk::ProtogalaxyRecursiveVerifier_< DeciderVerificationKeys >::ProtogalaxyRecursiveVerifier_ ( Builder builder,
const std::shared_ptr< DeciderVK > &  accumulator,
const std::shared_ptr< DeciderVK > &  incoming_instance,
const std::shared_ptr< Transcript > &  transcript 
)
inline

Definition at line 45 of file protogalaxy_recursive_verifier.hpp.

Member Function Documentation

◆ run_oink_verifier_on_each_incomplete_key()

template<class DeciderVerificationKeys >
void bb::stdlib::recursion::honk::ProtogalaxyRecursiveVerifier_< DeciderVerificationKeys >::run_oink_verifier_on_each_incomplete_key ( const std::vector< FF > &  proof)

Process the public data ϕ for the decider verification keys to be folded.

Definition at line 17 of file protogalaxy_recursive_verifier.cpp.

◆ verify_folding_proof()

template<class DeciderVerificationKeys >
std::shared_ptr< typename DeciderVerificationKeys::DeciderVK > bb::stdlib::recursion::honk::ProtogalaxyRecursiveVerifier_< DeciderVerificationKeys >::verify_folding_proof ( const stdlib::Proof< Builder > &  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.

In the recursive setting this function doesn't return anything because the equality checks performed by the recursive verifier, ensuring the folded ϕ*, e* and β* on the verifier side correspond to what has been sent by the prover, are expressed as constraints.

Definition at line 41 of file protogalaxy_recursive_verifier.cpp.

Member Data Documentation

◆ builder

template<class DeciderVerificationKeys >
Builder* bb::stdlib::recursion::honk::ProtogalaxyRecursiveVerifier_< DeciderVerificationKeys >::builder

Definition at line 31 of file protogalaxy_recursive_verifier.hpp.

◆ keys_to_fold

template<class DeciderVerificationKeys >
DeciderVerificationKeys bb::stdlib::recursion::honk::ProtogalaxyRecursiveVerifier_< DeciderVerificationKeys >::keys_to_fold

Definition at line 33 of file protogalaxy_recursive_verifier.hpp.

◆ NUM_SUBRELATIONS

template<class DeciderVerificationKeys >
constexpr size_t bb::stdlib::recursion::honk::ProtogalaxyRecursiveVerifier_< DeciderVerificationKeys >::NUM_SUBRELATIONS = Flavor::NUM_SUBRELATIONS
staticconstexpr

Definition at line 29 of file protogalaxy_recursive_verifier.hpp.

◆ transcript

template<class DeciderVerificationKeys >
std::shared_ptr<Transcript> bb::stdlib::recursion::honk::ProtogalaxyRecursiveVerifier_< DeciderVerificationKeys >::transcript = std::make_shared<Transcript>()

Definition at line 35 of file protogalaxy_recursive_verifier.hpp.


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