Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
hypernova_prover.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
12
13namespace bb {
14
16 public:
18 using FF = Flavor::FF;
29
30 std::shared_ptr<Transcript> transcript;
31
32 HypernovaFoldingProver(std::shared_ptr<Transcript>& transcript)
34
41 Accumulator instance_to_accumulator(const std::shared_ptr<ProverInstance>& instance);
42
51 const std::shared_ptr<ProverInstance>& instance);
52
58 HonkProof export_proof() { return transcript->export_proof(); };
59
60 private:
62 const std::shared_ptr<ProverInstance>& instance,
63 const std::shared_ptr<VerificationKey>& honk_vk);
64
71 template <size_t N>
72 static Polynomial batch_polynomials(RefArray<Polynomial, N> polynomials_to_batch,
73 const size_t& full_batched_size,
74 const std::array<FF, N>& challenges);
75};
76
77} // namespace bb
Common transcript class for both parties. Stores the data for the current round, as well as the manif...
MultilinearBatchingProverClaim Accumulator
std::pair< HonkProof, Accumulator > fold(const Accumulator &accumulator, const std::shared_ptr< ProverInstance > &instance)
Fold an instance into an accumulator. Folding happens in place.
std::shared_ptr< Transcript > transcript
HonkProof export_proof()
Export the proof contained in the transcript.
Accumulator sumcheck_output_to_accumulator(MegaSumcheckOutput &sumcheck_output, const std::shared_ptr< ProverInstance > &instance, const std::shared_ptr< VerificationKey > &honk_vk)
HypernovaFoldingProver(std::shared_ptr< Transcript > &transcript)
Accumulator instance_to_accumulator(const std::shared_ptr< ProverInstance > &instance)
Turn an instance into an accumulator by running Sumcheck.
static Polynomial batch_polynomials(RefArray< Polynomial, N > polynomials_to_batch, const size_t &full_batched_size, const std::array< FF, N > &challenges)
Batch prover polynomials. Batching happens in place into the first polynomial in the RefArray supplie...
SumcheckOutput< Flavor > MegaSumcheckOutput
The verification key is responsible for storing the commitments to the precomputed (non-witness) poly...
Curve::ScalarField FF
NativeTranscript Transcript
Curve::AffineElement Commitment
VerifierCommitments_< Commitment, VerificationKey > VerifierCommitments
Class for all the oink rounds, which are shared between the folding prover and ultra prover.
A ProverInstance is normally constructed from a finalized circuit and it contains all the information...
A template class for a reference array. Behaves as if std::array<T&, N> was possible.
Definition ref_array.hpp:22
The implementation of the sumcheck Prover for statements of the form for multilinear polynomials .
Definition sumcheck.hpp:126
Entry point for Barretenberg command-line interface.
std::vector< fr > HonkProof
Definition proof.hpp:15
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...