Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
prover.hpp
Go to the documentation of this file.
1// === AUDIT STATUS ===
2// internal: { status: Completed, auditors: [Federico], commit: 0e37cb8}
3// external_1: { status: not started, auditors: [], commit: }
4// external_2: { status: not started, auditors: [], commit: }
5// =====================
6#pragma once
7
12
13namespace bb::avm2 {
14
15class AvmProver {
16 public:
18 using FF = Flavor::FF;
28
29 explicit AvmProver(std::shared_ptr<ProvingKey> input_proving_key,
30 std::shared_ptr<VerificationKey> vk,
32 AvmProver(AvmProver&& prover) = default;
33 virtual ~AvmProver() = default;
34
41 void execute_pcs_rounds();
42
45
46 std::shared_ptr<Transcript> transcript = std::make_shared<Transcript>();
47
48 std::vector<FF> public_inputs;
49
51
52 std::shared_ptr<ProvingKey> proving_key;
53 std::shared_ptr<VerificationKey> vk;
54
55 // Container for spans of all polynomials required by the prover (i.e. all multivariates evaluated by Sumcheck).
57
59
61};
62
63} // namespace bb::avm2
CommitmentKey object over a pairing group 𝔾₁.
Simple verification key class for fixed-size circuits (ECCVM, Translator, AVM).
Definition flavor.hpp:101
A container for the prover polynomials handles.
Definition flavor.hpp:249
AvmFlavorSettings::Polynomial Polynomial
Definition flavor.hpp:44
AvmFlavorSettings::CommitmentKey CommitmentKey
Definition flavor.hpp:49
AvmFlavorSettings::FF FF
Definition flavor.hpp:43
FixedVKAndHash_< PrecomputedEntities< Commitment >, FF, typename constraining::AvmHardCodedVKAndHash > VerificationKey
Verification key of the AVM. It is fixed and reconstructed from precomputed values.
Definition flavor.hpp:226
AvmFlavorSettings::PCS PCS
Definition flavor.hpp:41
AvmFlavorSettings::Curve Curve
Definition flavor.hpp:39
void execute_pcs_rounds()
Run the PCS to prove that the claimed evaluations are correct.
Definition prover.cpp:191
std::shared_ptr< Transcript > transcript
Definition prover.hpp:46
SumcheckOutput< Flavor > sumcheck_output
Definition prover.hpp:58
PCSCommitmentKey commitment_key
Definition prover.hpp:60
std::shared_ptr< VerificationKey > vk
Definition prover.hpp:53
void execute_relation_check_rounds()
Run Sumcheck resulting in u = (u_1,...,u_d) challenges and all evaluations at u being calculated.
Definition prover.cpp:157
void execute_preamble_round()
Add vk hash to transcript.
Definition prover.cpp:55
HonkProof Proof
Definition prover.hpp:27
ProverPolynomials prover_polynomials
Definition prover.hpp:56
AvmProver(AvmProver &&prover)=default
void execute_log_derivative_inverse_commitments_round()
Definition prover.cpp:140
void execute_log_derivative_inverse_round()
Definition prover.cpp:109
bb::RelationParameters< FF > relation_parameters
Definition prover.hpp:50
Flavor::FF FF
Definition prover.hpp:18
std::vector< FF > public_inputs
Definition prover.hpp:48
HonkProof construct_proof()
Definition prover.cpp:266
virtual ~AvmProver()=default
void execute_public_inputs_round()
Add public inputs to transcript.
Definition prover.cpp:69
void execute_wire_commitments_round()
Compute commitments to all of the witness wires (apart from the logderivative inverse wires)
Definition prover.cpp:97
HonkProof export_proof()
Definition prover.cpp:261
std::shared_ptr< ProvingKey > proving_key
Definition prover.hpp:52
std::vector< fr > HonkProof
Definition proof.hpp:15
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...