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

#include <hypernova_verifier.hpp>

Public Types

using Flavor = Flavor_
 
using FF = Flavor::FF
 
using Curve = Flavor::Curve
 
using Commitment = Flavor::Commitment
 
using VerifierCommitments = Flavor::VerifierCommitments
 
using Transcript = Flavor::Transcript
 
using Accumulator = MultilinearBatchingVerifierClaim< Curve >
 
using OinkVerifier = OinkVerifier< Flavor >
 
using SumcheckVerifier = bb::SumcheckVerifier< Flavor >
 
using MegaSumcheckOutput = SumcheckOutput< Flavor >
 
using MultilinearBatchingVerifier = std::conditional_t< IsRecursiveFlavor< Flavor >, typename HypernovaRecursiveTypes::MultilinearBatchingVerifier, typename HypernovaNativeTypes::MultilinearBatchingVerifier >
 
using VerifierInstance = std::conditional_t< IsRecursiveFlavor< Flavor >, typename HypernovaRecursiveTypes::VerifierInstance, typename HypernovaNativeTypes::VerifierInstance >
 
using Proof = std::conditional_t< IsRecursiveFlavor< Flavor >, typename HypernovaRecursiveTypes::Proof, typename HypernovaNativeTypes::Proof >
 

Public Member Functions

 HypernovaFoldingVerifier (std::shared_ptr< Transcript > &transcript)
 
std::pair< bool, Accumulatorinstance_to_accumulator (const std::shared_ptr< VerifierInstance > &instance, const Proof &proof)
 Turn an instance into an accumulator by executing sumcheck.
 
std::tuple< bool, bool, Accumulatorverify_folding_proof (const std::shared_ptr< typename HypernovaFoldingVerifier::VerifierInstance > &instance, const Proof &proof)
 Verify folding proof. Return the new accumulator and the results of the two sumchecks.
 

Public Attributes

std::shared_ptr< Transcripttranscript
 

Static Public Attributes

static constexpr size_t NUM_UNSHIFTED_ENTITIES = MegaFlavor::NUM_UNSHIFTED_ENTITIES
 
static constexpr size_t NUM_SHIFTED_ENTITIES = MegaFlavor::NUM_SHIFTED_ENTITIES
 

Private Member Functions

Accumulator sumcheck_output_to_accumulator (MegaSumcheckOutput &sumcheck_output, const std::shared_ptr< VerifierInstance > &instance)
 
Commitment batch_mul (const std::vector< Commitment > &points, const std::vector< FF > &scalars)
 

Detailed Description

template<typename Flavor_>
class bb::HypernovaFoldingVerifier< Flavor_ >

Definition at line 21 of file hypernova_verifier.hpp.

Member Typedef Documentation

◆ Accumulator

template<typename Flavor_ >
using bb::HypernovaFoldingVerifier< Flavor_ >::Accumulator = MultilinearBatchingVerifierClaim<Curve>

Definition at line 29 of file hypernova_verifier.hpp.

◆ Commitment

template<typename Flavor_ >
using bb::HypernovaFoldingVerifier< Flavor_ >::Commitment = Flavor::Commitment

Definition at line 26 of file hypernova_verifier.hpp.

◆ Curve

template<typename Flavor_ >
using bb::HypernovaFoldingVerifier< Flavor_ >::Curve = Flavor::Curve

Definition at line 25 of file hypernova_verifier.hpp.

◆ FF

template<typename Flavor_ >
using bb::HypernovaFoldingVerifier< Flavor_ >::FF = Flavor::FF

Definition at line 24 of file hypernova_verifier.hpp.

◆ Flavor

template<typename Flavor_ >
using bb::HypernovaFoldingVerifier< Flavor_ >::Flavor = Flavor_

Definition at line 23 of file hypernova_verifier.hpp.

◆ MegaSumcheckOutput

template<typename Flavor_ >
using bb::HypernovaFoldingVerifier< Flavor_ >::MegaSumcheckOutput = SumcheckOutput<Flavor>

Definition at line 32 of file hypernova_verifier.hpp.

◆ MultilinearBatchingVerifier

template<typename Flavor_ >
using bb::HypernovaFoldingVerifier< Flavor_ >::MultilinearBatchingVerifier = std::conditional_t<IsRecursiveFlavor<Flavor>, typename HypernovaRecursiveTypes::MultilinearBatchingVerifier, typename HypernovaNativeTypes::MultilinearBatchingVerifier>

Definition at line 34 of file hypernova_verifier.hpp.

◆ OinkVerifier

template<typename Flavor_ >
using bb::HypernovaFoldingVerifier< Flavor_ >::OinkVerifier = OinkVerifier<Flavor>

Definition at line 30 of file hypernova_verifier.hpp.

◆ Proof

template<typename Flavor_ >
using bb::HypernovaFoldingVerifier< Flavor_ >::Proof = std::conditional_t<IsRecursiveFlavor<Flavor>, typename HypernovaRecursiveTypes::Proof, typename HypernovaNativeTypes::Proof>

Definition at line 41 of file hypernova_verifier.hpp.

◆ SumcheckVerifier

template<typename Flavor_ >
using bb::HypernovaFoldingVerifier< Flavor_ >::SumcheckVerifier = bb::SumcheckVerifier<Flavor>

Definition at line 31 of file hypernova_verifier.hpp.

◆ Transcript

template<typename Flavor_ >
using bb::HypernovaFoldingVerifier< Flavor_ >::Transcript = Flavor::Transcript

Definition at line 28 of file hypernova_verifier.hpp.

◆ VerifierCommitments

template<typename Flavor_ >
using bb::HypernovaFoldingVerifier< Flavor_ >::VerifierCommitments = Flavor::VerifierCommitments

Definition at line 27 of file hypernova_verifier.hpp.

◆ VerifierInstance

template<typename Flavor_ >
using bb::HypernovaFoldingVerifier< Flavor_ >::VerifierInstance = std::conditional_t<IsRecursiveFlavor<Flavor>, typename HypernovaRecursiveTypes::VerifierInstance, typename HypernovaNativeTypes::VerifierInstance>

Definition at line 38 of file hypernova_verifier.hpp.

Constructor & Destructor Documentation

◆ HypernovaFoldingVerifier()

template<typename Flavor_ >
bb::HypernovaFoldingVerifier< Flavor_ >::HypernovaFoldingVerifier ( std::shared_ptr< Transcript > &  transcript)
inline

Definition at line 50 of file hypernova_verifier.hpp.

Member Function Documentation

◆ batch_mul()

template<typename Flavor_ >
Commitment bb::HypernovaFoldingVerifier< Flavor_ >::batch_mul ( const std::vector< Commitment > &  points,
const std::vector< FF > &  scalars 
)
inlineprivate

Definition at line 75 of file hypernova_verifier.hpp.

◆ instance_to_accumulator()

template<typename Flavor >
std::pair< bool, typename HypernovaFoldingVerifier< Flavor >::Accumulator > bb::HypernovaFoldingVerifier< Flavor >::instance_to_accumulator ( const std::shared_ptr< VerifierInstance > &  instance,
const Proof proof 
)

Turn an instance into an accumulator by executing sumcheck.

Parameters
instance
Returns
std::pair<bool, Accumulator> Pair of sumcheck result and new accumulator.

Definition at line 73 of file hypernova_verifier.cpp.

◆ sumcheck_output_to_accumulator()

template<typename Flavor_ >
HypernovaFoldingVerifier< Flavor >::Accumulator bb::HypernovaFoldingVerifier< Flavor >::sumcheck_output_to_accumulator ( MegaSumcheckOutput sumcheck_output,
const std::shared_ptr< VerifierInstance > &  instance 
)
private

Definition at line 12 of file hypernova_verifier.cpp.

◆ verify_folding_proof()

template<typename Flavor >
std::tuple< bool, bool, typename HypernovaFoldingVerifier< Flavor >::Accumulator > bb::HypernovaFoldingVerifier< Flavor >::verify_folding_proof ( const std::shared_ptr< typename HypernovaFoldingVerifier< Flavor_ >::VerifierInstance > &  instance,
const Proof proof 
)

Verify folding proof. Return the new accumulator and the results of the two sumchecks.

Parameters
proof
Returns
std::tuple<bool, bool, Accumulator> Tuple of first and second sumcheck result, and new accumulator.

Definition at line 114 of file hypernova_verifier.cpp.

Member Data Documentation

◆ NUM_SHIFTED_ENTITIES

template<typename Flavor_ >
constexpr size_t bb::HypernovaFoldingVerifier< Flavor_ >::NUM_SHIFTED_ENTITIES = MegaFlavor::NUM_SHIFTED_ENTITIES
staticconstexpr

Definition at line 46 of file hypernova_verifier.hpp.

◆ NUM_UNSHIFTED_ENTITIES

template<typename Flavor_ >
constexpr size_t bb::HypernovaFoldingVerifier< Flavor_ >::NUM_UNSHIFTED_ENTITIES = MegaFlavor::NUM_UNSHIFTED_ENTITIES
staticconstexpr

Definition at line 45 of file hypernova_verifier.hpp.

◆ transcript

template<typename Flavor_ >
std::shared_ptr<Transcript> bb::HypernovaFoldingVerifier< Flavor_ >::transcript

Definition at line 48 of file hypernova_verifier.hpp.


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