|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
Multilinear batching verifier. Verifies claim reduction via sumcheck. More...
#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, VerifierClaim > | verify_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. | |
| bool | check_eq_consistency (const SumcheckOutput< Flavor > &sumcheck_result, const std::vector< FF > &accumulator_challenges, const std::vector< InstanceFF > &instance_challenges) |
| Verify that the prover used the correct eq polynomials. | |
Private Attributes | |
| std::shared_ptr< Transcript > | transcript |
| std::shared_ptr< VerifierClaim > | accumulator_claim |
| std::shared_ptr< VerifierClaim > | instance_claim |
Multilinear batching verifier. Verifies claim reduction via sumcheck.
See: chonk/README.md#batching-claims-into-accumulator
Definition at line 25 of file multilinear_batching_verifier.hpp.
| using bb::MultilinearBatchingVerifier< Flavor_ >::Commitment = typename Flavor::Commitment |
Definition at line 32 of file multilinear_batching_verifier.hpp.
| using bb::MultilinearBatchingVerifier< Flavor_ >::Curve = typename Flavor::Curve |
Definition at line 29 of file multilinear_batching_verifier.hpp.
| using bb::MultilinearBatchingVerifier< Flavor_ >::FF = typename Flavor::FF |
Definition at line 28 of file multilinear_batching_verifier.hpp.
| using bb::MultilinearBatchingVerifier< Flavor_ >::Flavor = Flavor_ |
Definition at line 27 of file multilinear_batching_verifier.hpp.
| using bb::MultilinearBatchingVerifier< Flavor_ >::InstanceCommitments = InstanceFlavor::VerifierCommitments |
Definition at line 40 of file multilinear_batching_verifier.hpp.
| using bb::MultilinearBatchingVerifier< Flavor_ >::InstanceFF = InstanceFlavor::FF |
Definition at line 41 of file multilinear_batching_verifier.hpp.
| using bb::MultilinearBatchingVerifier< Flavor_ >::InstanceFlavor = std::conditional_t<std::is_same_v<Flavor, MultilinearBatchingFlavor>, MegaFlavor, MegaRecursiveFlavor_<MegaCircuitBuilder> > |
Definition at line 37 of file multilinear_batching_verifier.hpp.
| using bb::MultilinearBatchingVerifier< Flavor_ >::Proof = std::vector<FF> |
Definition at line 35 of file multilinear_batching_verifier.hpp.
| using bb::MultilinearBatchingVerifier< Flavor_ >::Sumcheck = SumcheckVerifier<Flavor> |
Definition at line 33 of file multilinear_batching_verifier.hpp.
| using bb::MultilinearBatchingVerifier< Flavor_ >::Transcript = typename Flavor::Transcript |
Definition at line 30 of file multilinear_batching_verifier.hpp.
| using bb::MultilinearBatchingVerifier< Flavor_ >::VerifierClaim = MultilinearBatchingVerifierClaim<Curve> |
Definition at line 34 of file multilinear_batching_verifier.hpp.
|
explicit |
Definition at line 17 of file multilinear_batching_verifier.cpp.
|
private |
Utility to perform batch mul of commitments.
Definition at line 54 of file multilinear_batching_verifier.cpp.
|
private |
Verify that the prover used the correct eq polynomials.
The batching relation uses eq(r_acc, u) and eq(r_inst, u) to "select" the correct evaluation point. The prover provides these as evaluations of witness polynomials, but the verifier can compute them directly from the known challenges. This check ensures consistency.
Definition at line 166 of file multilinear_batching_verifier.cpp.
|
private |
Utility to compute the new claim after the batching sumcheck.
Definition at line 75 of file multilinear_batching_verifier.cpp.
|
private |
Utility to compute the new target sum for the batching sumcheck.
Definition at line 22 of file multilinear_batching_verifier.cpp.
| 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.
|
private |
Definition at line 54 of file multilinear_batching_verifier.hpp.
|
private |
Definition at line 55 of file multilinear_batching_verifier.hpp.
|
staticconstexpr |
Definition at line 43 of file multilinear_batching_verifier.hpp.
|
staticconstexpr |
Definition at line 42 of file multilinear_batching_verifier.hpp.
|
private |
Definition at line 53 of file multilinear_batching_verifier.hpp.