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

Internal verifier for multilinear batching sumcheck over a fixed number of claims. More...

#include <multilinear_batching_verifier.hpp>

Public Types

using Flavor = Flavor_
 
using FF = typename Flavor::FF
 
using Curve = typename Flavor::Curve
 
using Commitment = typename Flavor::Commitment
 
using Transcript = typename Flavor::Transcript
 
using Sumcheck = SumcheckVerifier< Flavor >
 
using VerifierClaim = MultilinearBatchingVerifierClaim< Curve >
 
using Proof = std::conditional_t< Curve::is_stdlib_type, stdlib::Proof< MegaCircuitBuilder >, HonkProof >
 

Public Member Functions

 MultilinearBatchingVerifierInternal (const std::shared_ptr< Transcript > &transcript)
 
std::pair< bool, VerifierClaimverify_proof (const std::vector< VerifierClaim > &claims)
 

Static Public Attributes

static constexpr size_t NUM_CLAIMS = Flavor::NUM_CLAIMS
 
static constexpr bool IsRecursive = Curve::is_stdlib_type
 

Private Member Functions

FF compute_target_sum (const FF &alpha, const std::vector< VerifierClaim > &claims, std::span< const FF > scalars) const
 
VerifierClaim compute_new_claim (const SumcheckOutput< Flavor > &sumcheck_result, const std::vector< VerifierClaim > &claims, std::vector< FF > scalars)
 
bool check_eq_consistency (const SumcheckOutput< Flavor > &sumcheck_result, const std::vector< VerifierClaim > &claims)
 

Private Attributes

std::shared_ptr< Transcripttranscript
 

Detailed Description

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

Internal verifier for multilinear batching sumcheck over a fixed number of claims.

The claims being batched are supplied in memory (the caller produced them via instance_to_accumulator); they are not read from the proof. The batching challenge is drawn from the shared transcript, whose state already commits to those claims via the group's instance sumchecks, so no separate hashing is required. The proof carries only the batching sumcheck. Not called directly: the public MultilinearBatchingVerifier routes to the correctly-instantiated internal verifier based on the runtime claim count.

Definition at line 26 of file multilinear_batching_verifier.hpp.

Member Typedef Documentation

◆ Commitment

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

Definition at line 31 of file multilinear_batching_verifier.hpp.

◆ Curve

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

Definition at line 30 of file multilinear_batching_verifier.hpp.

◆ FF

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

Definition at line 29 of file multilinear_batching_verifier.hpp.

◆ Flavor

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

Definition at line 28 of file multilinear_batching_verifier.hpp.

◆ Proof

◆ Sumcheck

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

Definition at line 33 of file multilinear_batching_verifier.hpp.

◆ Transcript

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

Definition at line 32 of file multilinear_batching_verifier.hpp.

◆ VerifierClaim

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

Definition at line 34 of file multilinear_batching_verifier.hpp.

Constructor & Destructor Documentation

◆ MultilinearBatchingVerifierInternal()

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

Definition at line 18 of file multilinear_batching_verifier.cpp.

Member Function Documentation

◆ check_eq_consistency()

template<typename Flavor_ >
bool bb::MultilinearBatchingVerifierInternal< Flavor_ >::check_eq_consistency ( const SumcheckOutput< Flavor > &  sumcheck_result,
const std::vector< VerifierClaim > &  claims 
)
private

Definition at line 71 of file multilinear_batching_verifier.cpp.

◆ compute_new_claim()

template<typename Flavor_ >
MultilinearBatchingVerifierInternal< Flavor_ >::VerifierClaim bb::MultilinearBatchingVerifierInternal< Flavor_ >::compute_new_claim ( const SumcheckOutput< Flavor > &  sumcheck_result,
const std::vector< VerifierClaim > &  claims,
std::vector< FF scalars 
)
private

Definition at line 40 of file multilinear_batching_verifier.cpp.

◆ compute_target_sum()

template<typename Flavor_ >
MultilinearBatchingVerifierInternal< Flavor_ >::FF bb::MultilinearBatchingVerifierInternal< Flavor_ >::compute_target_sum ( const FF alpha,
const std::vector< VerifierClaim > &  claims,
std::span< const FF scalars 
) const
private

Definition at line 25 of file multilinear_batching_verifier.cpp.

◆ verify_proof()

template<typename Flavor_ >
std::pair< bool, typename MultilinearBatchingVerifierInternal< Flavor_ >::VerifierClaim > bb::MultilinearBatchingVerifierInternal< Flavor_ >::verify_proof ( const std::vector< VerifierClaim > &  claims)

Definition at line 90 of file multilinear_batching_verifier.cpp.

Member Data Documentation

◆ IsRecursive

template<typename Flavor_ >
constexpr bool bb::MultilinearBatchingVerifierInternal< Flavor_ >::IsRecursive = Curve::is_stdlib_type
staticconstexpr

Definition at line 38 of file multilinear_batching_verifier.hpp.

◆ NUM_CLAIMS

template<typename Flavor_ >
constexpr size_t bb::MultilinearBatchingVerifierInternal< Flavor_ >::NUM_CLAIMS = Flavor::NUM_CLAIMS
staticconstexpr

Definition at line 37 of file multilinear_batching_verifier.hpp.

◆ transcript

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

Definition at line 48 of file multilinear_batching_verifier.hpp.


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