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

#include <multilinear_batching_verifier.hpp>

Public Types

using Flavor = Flavor_
 
using FF = typename Flavor::FF
 
using Curve = typename Flavor::Curve
 
using Transcript = typename Flavor::Transcript
 
using Commitment = typename Flavor::Commitment
 
using Sumcheck = SumcheckVerifier< Flavor >
 
using VerifierClaim = MultilinearBatchingVerifierClaim< Curve >
 
using Proof = std::vector< FF >
 
using InstanceFlavor = std::conditional_t< std::is_same_v< Flavor, MultilinearBatchingFlavor >, MegaFlavor, MegaRecursiveFlavor_< MegaCircuitBuilder > >
 
using InstanceCommitments = InstanceFlavor::VerifierCommitments
 
using InstanceFF = InstanceFlavor::FF
 

Public Member Functions

 MultilinearBatchingVerifier (const std::shared_ptr< Transcript > &transcript)
 
std::pair< bool, VerifierClaimverify_proof (SumcheckOutput< InstanceFlavor > &instance_sumcheck, InstanceCommitments &verifier_commitments, std::vector< InstanceFF > &unshifted_challenges, std::vector< InstanceFF > &shifted_challenges)
 

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

FF compute_new_target_sum (const FF &alpha, SumcheckOutput< InstanceFlavor > &instance_sumcheck, const std::vector< InstanceFF > &unshifted_challenges, const std::vector< InstanceFF > &shifted_challenges, const FF &accumulator_non_shifted_evaluation, const FF &accumulator_shifted_evaluation) const
 Utility to compute the new target sum for the batching sumcheck.
 
template<size_t N>
Commitment batch_mul (RefArray< Commitment, N > instance_commitments, const Commitment &accumulator_commitment, std::vector< FF > &scalars, const FF &batching_challenge)
 Utility to perform batch mul of commitments.
 
VerifierClaim compute_new_claim (const SumcheckOutput< Flavor > &sumcheck_result, InstanceCommitments &verifier_commitments, std::vector< InstanceFF > &unshifted_challenges, std::vector< InstanceFF > &shifted_challenges, const Commitment &non_shifted_accumulator_commitment, const Commitment &shifted_accumulator_commitment, const FF &batching_challenge)
 Utility to compute the new claim after the batching sumcheck.
 

Private Attributes

std::shared_ptr< Transcripttranscript
 
std::shared_ptr< VerifierClaimaccumulator_claim
 
std::shared_ptr< VerifierClaiminstance_claim
 

Detailed Description

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

Definition at line 22 of file multilinear_batching_verifier.hpp.

Member Typedef Documentation

◆ Commitment

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

Definition at line 29 of file multilinear_batching_verifier.hpp.

◆ Curve

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

Definition at line 26 of file multilinear_batching_verifier.hpp.

◆ FF

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

Definition at line 25 of file multilinear_batching_verifier.hpp.

◆ Flavor

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

Definition at line 24 of file multilinear_batching_verifier.hpp.

◆ InstanceCommitments

template<typename Flavor_ >
using bb::MultilinearBatchingVerifier< Flavor_ >::InstanceCommitments = InstanceFlavor::VerifierCommitments

Definition at line 37 of file multilinear_batching_verifier.hpp.

◆ InstanceFF

template<typename Flavor_ >
using bb::MultilinearBatchingVerifier< Flavor_ >::InstanceFF = InstanceFlavor::FF

Definition at line 38 of file multilinear_batching_verifier.hpp.

◆ InstanceFlavor

◆ Proof

template<typename Flavor_ >
using bb::MultilinearBatchingVerifier< Flavor_ >::Proof = std::vector<FF>

Definition at line 32 of file multilinear_batching_verifier.hpp.

◆ Sumcheck

template<typename Flavor_ >
using bb::MultilinearBatchingVerifier< Flavor_ >::Sumcheck = SumcheckVerifier<Flavor>

Definition at line 30 of file multilinear_batching_verifier.hpp.

◆ Transcript

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

Definition at line 27 of file multilinear_batching_verifier.hpp.

◆ VerifierClaim

template<typename Flavor_ >
using bb::MultilinearBatchingVerifier< Flavor_ >::VerifierClaim = MultilinearBatchingVerifierClaim<Curve>

Definition at line 31 of file multilinear_batching_verifier.hpp.

Constructor & Destructor Documentation

◆ MultilinearBatchingVerifier()

template<typename Flavor_ >
bb::MultilinearBatchingVerifier< Flavor_ >::MultilinearBatchingVerifier ( const std::shared_ptr< Transcript > &  transcript)
explicit

Definition at line 17 of file multilinear_batching_verifier.cpp.

Member Function Documentation

◆ batch_mul()

template<typename Flavor_ >
template<size_t N>
MultilinearBatchingVerifier< Flavor_ >::Commitment bb::MultilinearBatchingVerifier< Flavor_ >::batch_mul ( RefArray< Commitment, N >  instance_commitments,
const Commitment accumulator_commitment,
std::vector< FF > &  scalars,
const FF batching_challenge 
)
private

Utility to perform batch mul of commitments.

Definition at line 54 of file multilinear_batching_verifier.cpp.

◆ compute_new_claim()

template<typename Flavor_ >
MultilinearBatchingVerifier< Flavor_ >::VerifierClaim bb::MultilinearBatchingVerifier< Flavor_ >::compute_new_claim ( const SumcheckOutput< Flavor > &  sumcheck_result,
InstanceCommitments verifier_commitments,
std::vector< InstanceFF > &  unshifted_challenges,
std::vector< InstanceFF > &  shifted_challenges,
const Commitment non_shifted_accumulator_commitment,
const Commitment shifted_accumulator_commitment,
const FF batching_challenge 
)
private

Utility to compute the new claim after the batching sumcheck.

Definition at line 75 of file multilinear_batching_verifier.cpp.

◆ compute_new_target_sum()

template<typename Flavor_ >
MultilinearBatchingVerifier< Flavor_ >::FF bb::MultilinearBatchingVerifier< Flavor_ >::compute_new_target_sum ( const FF alpha,
SumcheckOutput< InstanceFlavor > &  instance_sumcheck,
const std::vector< InstanceFF > &  unshifted_challenges,
const std::vector< InstanceFF > &  shifted_challenges,
const FF accumulator_non_shifted_evaluation,
const FF accumulator_shifted_evaluation 
) const
private

Utility to compute the new target sum for the batching sumcheck.

Definition at line 22 of file multilinear_batching_verifier.cpp.

◆ verify_proof()

template<typename Flavor_ >
std::pair< bool, typename MultilinearBatchingVerifier< Flavor_ >::VerifierClaim > bb::MultilinearBatchingVerifier< Flavor_ >::verify_proof ( SumcheckOutput< InstanceFlavor > &  instance_sumcheck,
InstanceCommitments verifier_commitments,
std::vector< InstanceFF > &  unshifted_challenges,
std::vector< InstanceFF > &  shifted_challenges 
)

Definition at line 111 of file multilinear_batching_verifier.cpp.

Member Data Documentation

◆ accumulator_claim

template<typename Flavor_ >
std::shared_ptr<VerifierClaim> bb::MultilinearBatchingVerifier< Flavor_ >::accumulator_claim
private

Definition at line 51 of file multilinear_batching_verifier.hpp.

◆ instance_claim

template<typename Flavor_ >
std::shared_ptr<VerifierClaim> bb::MultilinearBatchingVerifier< Flavor_ >::instance_claim
private

Definition at line 52 of file multilinear_batching_verifier.hpp.

◆ NUM_SHIFTED_ENTITIES

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

Definition at line 40 of file multilinear_batching_verifier.hpp.

◆ NUM_UNSHIFTED_ENTITIES

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

Definition at line 39 of file multilinear_batching_verifier.hpp.

◆ transcript

template<typename Flavor_ >
std::shared_ptr<Transcript> bb::MultilinearBatchingVerifier< Flavor_ >::transcript
private

Definition at line 50 of file multilinear_batching_verifier.hpp.


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