Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
multilinear_batching_verifier.hpp
Go to the documentation of this file.
1// === AUDIT STATUS ===
2// internal: { status: not started, auditors: [], date: YYYY-MM-DD }
3// external_1: { status: not started, auditors: [], date: YYYY-MM-DD }
4// external_2: { status: not started, auditors: [], date: YYYY-MM-DD }
5// =====================
6
7#pragma once
17
18#include <vector>
19
20namespace bb {
21
22template <typename Flavor_> class MultilinearBatchingVerifier {
23 public:
24 using Flavor = Flavor_;
25 using FF = typename Flavor::FF;
26 using Curve = typename Flavor::Curve;
28
32 using Proof = std::vector<FF>;
33
37 using InstanceCommitments = InstanceFlavor::VerifierCommitments;
38 using InstanceFF = InstanceFlavor::FF;
41
42 explicit MultilinearBatchingVerifier(const std::shared_ptr<Transcript>& transcript);
43
45 InstanceCommitments& verifier_commitments,
46 std::vector<InstanceFF>& unshifted_challenges,
47 std::vector<InstanceFF>& shifted_challenges);
48
49 private:
50 std::shared_ptr<Transcript> transcript;
53
57 FF compute_new_target_sum(const FF& alpha,
58 SumcheckOutput<InstanceFlavor>& instance_sumcheck,
59 const std::vector<InstanceFF>& unshifted_challenges,
60 const std::vector<InstanceFF>& shifted_challenges,
61 const FF& accumulator_non_shifted_evaluation,
62 const FF& accumulator_shifted_evaluation) const;
63
67 template <size_t N>
68 Commitment batch_mul(RefArray<Commitment, N> instance_commitments,
69 const Commitment& accumulator_commitment,
70 std::vector<FF>& scalars,
71 const FF& batching_challenge);
72
77 InstanceCommitments& verifier_commitments,
78 std::vector<InstanceFF>& unshifted_challenges,
79 std::vector<InstanceFF>& shifted_challenges,
80 const Commitment& non_shifted_accumulator_commitment,
81 const Commitment& shifted_accumulator_commitment,
82 const FF& batching_challenge);
83};
84
85} // namespace bb
typename Curve::ScalarField FF
typename G1::affine_element Commitment
curve::Grumpkin Curve
NativeTranscript Transcript
static constexpr size_t NUM_SHIFTED_ENTITIES
static constexpr size_t NUM_UNSHIFTED_ENTITIES
The recursive counterpart to the "native" Mega flavor.
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.
std::shared_ptr< VerifierClaim > accumulator_claim
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.
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.
std::conditional_t< std::is_same_v< Flavor, MultilinearBatchingFlavor >, MegaFlavor, MegaRecursiveFlavor_< MegaCircuitBuilder > > InstanceFlavor
InstanceFlavor::VerifierCommitments InstanceCommitments
std::pair< bool, VerifierClaim > verify_proof(SumcheckOutput< InstanceFlavor > &instance_sumcheck, InstanceCommitments &verifier_commitments, std::vector< InstanceFF > &unshifted_challenges, std::vector< InstanceFF > &shifted_challenges)
std::shared_ptr< VerifierClaim > instance_claim
A template class for a reference array. Behaves as if std::array<T&, N> was possible.
Definition ref_array.hpp:22
Implementation of the sumcheck Verifier for statements of the form for multilinear polynomials .
Definition sumcheck.hpp:786
Entry point for Barretenberg command-line interface.
Definition api.hpp:5
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
Contains the evaluations of multilinear polynomials at the challenge point . These are computed by S...