Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
hypernova_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#pragma once
7
18
19namespace bb {
20
21template <typename Flavor_> class HypernovaFoldingVerifier {
22 public:
23 using Flavor = Flavor_;
24 using FF = Flavor::FF;
33 // Types conditionally assigned based on the Flavor being recursive
44
47
48 std::shared_ptr<Transcript> transcript;
49
50 HypernovaFoldingVerifier(std::shared_ptr<Transcript>& transcript)
52
59 std::pair<bool, Accumulator> instance_to_accumulator(const std::shared_ptr<VerifierInstance>& instance,
60 const Proof& proof);
61
70
71 private:
73 const std::shared_ptr<VerifierInstance>& instance);
74
75 Commitment batch_mul(const std::vector<Commitment>& points, const std::vector<FF>& scalars)
76 {
77 if constexpr (IsRecursiveFlavor<Flavor>) {
78 return Curve::Group::batch_mul(points, scalars);
79 } else {
80 return batch_mul_native(points, scalars);
81 }
82 }
83};
84} // namespace bb
Common transcript class for both parties. Stores the data for the current round, as well as the manif...
static constexpr size_t NUM_SHIFTED_ENTITIES
std::tuple< bool, bool, Accumulator > verify_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.
HypernovaFoldingVerifier(std::shared_ptr< Transcript > &transcript)
std::conditional_t< IsRecursiveFlavor< Flavor >, typename HypernovaRecursiveTypes::Proof, typename HypernovaNativeTypes::Proof > Proof
OinkVerifier< Flavor > OinkVerifier
std::conditional_t< IsRecursiveFlavor< Flavor >, typename HypernovaRecursiveTypes::VerifierInstance, typename HypernovaNativeTypes::VerifierInstance > VerifierInstance
std::pair< bool, Accumulator > instance_to_accumulator(const std::shared_ptr< VerifierInstance > &instance, const Proof &proof)
Turn an instance into an accumulator by executing sumcheck.
SumcheckOutput< Flavor > MegaSumcheckOutput
static constexpr size_t NUM_UNSHIFTED_ENTITIES
std::conditional_t< IsRecursiveFlavor< Flavor >, typename HypernovaRecursiveTypes::MultilinearBatchingVerifier, typename HypernovaNativeTypes::MultilinearBatchingVerifier > MultilinearBatchingVerifier
Accumulator sumcheck_output_to_accumulator(MegaSumcheckOutput &sumcheck_output, const std::shared_ptr< VerifierInstance > &instance)
std::shared_ptr< Transcript > transcript
MultilinearBatchingVerifierClaim< Curve > Accumulator
Commitment batch_mul(const std::vector< Commitment > &points, const std::vector< FF > &scalars)
bb::MultilinearBatchingVerifier< MultilinearBatchingRecursiveFlavor > MultilinearBatchingVerifier
Definition types.hpp:31
stdlib::recursion::honk::RecursiveVerifierInstance_< MegaRecursiveFlavor_< MegaCircuitBuilder > > VerifierInstance
Definition types.hpp:29
stdlib::Proof< MegaCircuitBuilder > Proof
Definition types.hpp:30
Curve::ScalarField FF
static constexpr size_t NUM_SHIFTED_ENTITIES
NativeTranscript Transcript
curve::BN254 Curve
Curve::AffineElement Commitment
static constexpr size_t NUM_UNSHIFTED_ENTITIES
VerifierCommitments_< Commitment, VerificationKey > VerifierCommitments
Implementation of the sumcheck Verifier for statements of the form for multilinear polynomials .
Definition sumcheck.hpp:698
The VerifierInstance encapsulates all the necessary information for a Mega Honk Verifier to verify a ...
Base class templates for structures that contain data parameterized by the fundamental polynomials of...
Entry point for Barretenberg command-line interface.
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...