Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
ultra_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
17
18namespace bb {
19
20template <IsUltraOrMegaHonk Flavor_> class UltraProver_ {
21 public:
22 using Flavor = Flavor_;
23 using FF = typename Flavor::FF;
27 using Curve = typename Flavor::Curve;
31 using PCS = typename Flavor::PCS;
36 using Proof = typename Transcript::Proof;
38
40 std::shared_ptr<HonkVK> honk_vk;
41
42 std::shared_ptr<Transcript> transcript;
43
45
47
49
51
52 UltraProver_(const std::shared_ptr<ProverInstance>&, const std::shared_ptr<HonkVK>&, const CommitmentKey&);
53
55 const std::shared_ptr<HonkVK>&,
56 const std::shared_ptr<Transcript>& transcript = std::make_shared<Transcript>());
57
58 explicit UltraProver_(Builder&,
59 const std::shared_ptr<HonkVK>&,
60 const std::shared_ptr<Transcript>& transcript = std::make_shared<Transcript>());
61
62 explicit UltraProver_(Builder&&, const std::shared_ptr<HonkVK>&);
63
66
68
71 Proof prove() { return construct_proof(); };
72
74};
75
79#ifdef STARKNET_GARAGA_FLAVORS
80using UltraStarknetProver = UltraProver_<UltraStarknetFlavor>;
81using UltraStarknetZKProver = UltraProver_<UltraStarknetZKFlavor>;
82#endif
86
87} // namespace bb
std::vector< DataType > Proof
A container for commitment labels.
A container for the prover polynomials.
The verification key is responsible for storing the commitments to the precomputed (non-witnessk) pol...
typename Curve::ScalarField FF
ECCVMCircuitBuilder CircuitBuilder
typename G1::affine_element Commitment
bb::Polynomial< FF > Polynomial
curve::Grumpkin Curve
bb::CommitmentKey< Curve > CommitmentKey
NativeTranscript Transcript
IPA< Curve > PCS
A ProverInstance is normally constructed from a finalized circuit and it contains all the information...
A Curve-agnostic ZK protocol to prove inner products of small vectors.
Polynomial quotient_W
bb::RelationParameters< FF > relation_parameters
CommitmentKey commitment_key
std::shared_ptr< HonkVK > honk_vk
typename Flavor::Polynomial Polynomial
BB_PROFILE void generate_gate_challenges()
BB_PROFILE void execute_pcs()
Produce a univariate opening claim for the sumcheck multivariate evalutions and a batched univariate ...
SumcheckOutput< Flavor > sumcheck_output
typename Flavor::PCS PCS
std::shared_ptr< Transcript > transcript
typename Transcript::Proof Proof
typename Flavor::Commitment Commitment
typename Flavor::CommitmentLabels CommitmentLabels
std::shared_ptr< ProverInstance > prover_instance
BB_PROFILE void execute_sumcheck_iop()
Run Sumcheck to establish that ∑_i pow(\vec{β*})f_i(ω) = 0. This results in u = (u_1,...
typename Flavor::CommitmentKey CommitmentKey
typename Flavor::FF FF
typename Flavor::Transcript Transcript
typename Flavor::ProverPolynomials ProverPolynomials
typename Flavor::Curve Curve
typename Flavor::CircuitBuilder Builder
typename Flavor::VerificationKey HonkVK
#define BB_PROFILE
Entry point for Barretenberg command-line interface.
Definition api.hpp:5
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
Container for parameters used by the grand product (permutation, lookup) Honk relations.
Contains the evaluations of multilinear polynomials at the challenge point . These are computed by S...
This structure is created to contain various polynomials and constants required by ZK Sumcheck.