Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
hypernova_decider_prover.cpp
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
8
9namespace bb {
11{
12 vinfo("HypernovaFoldingDecider: prove PCS...");
13
14 size_t dyadic_size = accumulator.dyadic_size;
15 size_t actual_data_size =
17 CommitmentKey ck(actual_data_size);
18
19 // Open the commitments with Shplemini
20 PolynomialBatcher polynomial_batcher(dyadic_size, actual_data_size);
21 polynomial_batcher.set_unshifted(RefVector(accumulator.non_shifted_polynomial));
22 polynomial_batcher.set_to_be_shifted_by_one(RefVector(accumulator.shifted_polynomial));
23
24 OpeningClaim prover_opening_claim;
25 prover_opening_claim =
26 ShpleminiProver::prove(dyadic_size, polynomial_batcher, accumulator.challenge, ck, transcript);
27
28 vinfo("HypernovaFoldingDecider: executed multivariate-to-univariate reduction");
29
30 Flavor::PCS::compute_opening_proof(ck, prover_opening_claim, transcript);
31 vinfo("HypernovaFoldingDecider: computed PCS opening proof");
32
33 return transcript->export_proof();
34};
35} // namespace bb
CommitmentKey object over a pairing group 𝔾₁.
Class responsible for computation of the batched multilinear polynomials required by the Gemini proto...
Definition gemini.hpp:125
void set_to_be_shifted_by_one(RefVector< Polynomial > polynomials)
Definition gemini.hpp:149
void set_unshifted(RefVector< Polynomial > polynomials)
Definition gemini.hpp:148
HonkProof construct_proof(Accumulator &accumulator)
std::shared_ptr< Transcript > transcript
size_t end_index() const
Polynomial p and an opening pair (r,v) such that p(r) = v.
Definition claim.hpp:36
A template class for a reference vector. Behaves as if std::vector<T&> was possible.
static OpeningClaim prove(size_t circuit_size, PolynomialBatcher &polynomial_batcher, std::span< FF > multilinear_challenge, const CommitmentKey< Curve > &commitment_key, const std::shared_ptr< Transcript > &transcript, const std::array< Polynomial, NUM_SMALL_IPA_EVALUATIONS > &libra_polynomials={}, const std::vector< Polynomial > &sumcheck_round_univariates={}, const std::vector< std::array< FF, 3 > > &sumcheck_round_evaluations={})
Definition shplemini.hpp:36
#define vinfo(...)
Definition log.hpp:94
Entry point for Barretenberg command-line interface.
Definition api.hpp:5
std::vector< fr > HonkProof
Definition proof.hpp:15
CommitmentKey< Curve > ck
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
Prover's claim for multilinear batching - contains polynomials and their evaluation claims.