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: Complete, auditors: [Sergei], commit: }
3// external_1: { status: not started, auditors: [], commit: }
4// external_2: { status: not started, auditors: [], commit: }
5// =====================
6#pragma once
7
15
16namespace bb {
17
22template <typename Flavor_> class HypernovaFoldingVerifier {
23 public:
24 using Flavor = Flavor_;
25 using FF = Flavor::FF;
38
40
43
44 HypernovaFoldingVerifier(std::shared_ptr<Transcript> transcript)
45 : transcript(std::move(transcript)) {};
46
54 const Proof& proof);
55
68
69 private:
70 std::shared_ptr<Transcript> transcript;
71
79 const Proof& proof);
80
86
90 template <size_t N> Commitment batch_mul(const RefArray<Commitment, N>& _points, const std::vector<FF>& scalars);
91};
92} // namespace bb
std::shared_ptr< Napi::ThreadSafeFunction > instance
Common transcript class for both parties. Stores the data for the current round, as well as the manif...
typename Curve::ScalarField FF
VerifierCommitments_< Commitment, VerificationKey > VerifierCommitments
typename G1::affine_element Commitment
curve::Grumpkin Curve
BaseTranscript< Codec, HashFunction > Transcript
HyperNova folding verifier (native + recursive). Verifies folding proofs and maintains accumulators.
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.
SumcheckOutput< Flavor > sumcheck_on_incoming_instance(const std::shared_ptr< VerifierInstance > &instance, const Proof &proof)
Perform sumcheck on the incoming instance.
std::conditional_t< IsRecursiveFlavor< Flavor >, stdlib::Proof< MegaCircuitBuilder >, HonkProof > Proof
std::conditional_t< IsRecursiveFlavor< Flavor >, MultilinearBatchingRecursiveFlavor, MultilinearBatchingFlavor > BatchingFlavor
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.
static constexpr size_t NUM_UNSHIFTED_ENTITIES
Commitment batch_mul(const RefArray< Commitment, N > &_points, const std::vector< FF > &scalars)
Utility to perform batch mul of commitments.
Accumulator sumcheck_output_to_accumulator(MegaSumcheckOutput &sumcheck_output, const std::shared_ptr< VerifierInstance > &instance)
Convert the output of the sumcheck run on the incoming instance into an accumulator.
std::shared_ptr< Transcript > transcript
HypernovaFoldingVerifier(std::shared_ptr< Transcript > transcript)
static constexpr size_t NUM_SHIFTED_ENTITIES
static constexpr size_t NUM_UNSHIFTED_ENTITIES
Multilinear batching verifier. Verifies claim reduction via sumcheck.
Verifier class for all the presumcheck rounds, which are shared between the folding verifier and ultr...
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:719
The VerifierInstance encapsulates all the necessary information for a Honk Verifier to verify a proof...
A simple wrapper around a vector of stdlib field elements representing a proof.
Definition proof.hpp:19
Base class templates for structures that contain data parameterized by the fundamental polynomials of...
Entry point for Barretenberg command-line interface.
Definition api.hpp:5
std::vector< fr > HonkProof
Definition proof.hpp:15
STL namespace.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
Verifier's claim for multilinear batching - contains commitments and evaluation claims.
Contains the evaluations of multilinear polynomials at the challenge point . These are computed by S...