Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
eccvm_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
20// We won't compile this class with Standard, but we will like want to compile it (at least for testing)
21// with a flavor that uses the curve Grumpkin, or a flavor that does/does not have zk, etc.
23 public:
25 using FF = Flavor::FF;
26 using BF = Flavor::BF;
39
41 const std::shared_ptr<Transcript>& transcript,
42 const std::shared_ptr<Transcript>& ipa_transcript = std::make_shared<Transcript>());
43
51
56 const std::string& label,
58 const std::vector<std::pair<size_t, size_t>>& active_ranges = {});
59
60 std::shared_ptr<Transcript> transcript;
61 std::shared_ptr<Transcript> ipa_transcript;
62
64
65 // Final ShplonkProver consumes an array consisting of Translation Opening Claims and a
66 // `multivariate_to_univariate_opening_claim`
69
71
72 std::vector<FF> public_inputs;
73
75
76 std::shared_ptr<ProvingKey> key;
77
80
83
85};
86
87} // namespace bb
Common transcript class for both parties. Stores the data for the current round, as well as the manif...
CommitmentKey object over a pairing group 𝔾₁.
A container for commitment labels.
The proving key is responsible for storing the polynomials used by the prover.
typename Curve::ScalarField FF
ECCVMCircuitBuilder CircuitBuilder
typename G1::affine_element Commitment
typename Curve::BaseField BF
bb::Polynomial< FF > Polynomial
static constexpr size_t NUM_TRANSLATION_OPENING_CLAIMS
bb::CommitmentKey< Curve > CommitmentKey
NativeTranscript Transcript
IPA< Curve > PCS
ECCVMProof construct_proof()
BB_PROFILE void execute_transcript_consistency_univariate_opening_round()
Flavor::Commitment Commitment
std::vector< FF > public_inputs
SumcheckOutput< Flavor > sumcheck_output
BB_PROFILE void execute_log_derivative_commitments_round()
Compute sorted witness-table accumulator.
size_t unmasked_witness_size
std::shared_ptr< Transcript > ipa_transcript
std::shared_ptr< Transcript > transcript
ECCVMProof export_proof()
static constexpr size_t NUM_OPENING_CLAIMS
CommitmentLabels commitment_labels
TranslationEvaluations translation_evaluations
std::shared_ptr< ProvingKey > key
void commit_to_witness_polynomial(Polynomial &polynomial, const std::string &label, CommitmentKey::CommitType commit_type=CommitmentKey::CommitType::Default, const std::vector< std::pair< size_t, size_t > > &active_ranges={})
Utility to mask and commit to a witness polynomial and send the commitment to verifier.
BB_PROFILE void execute_preamble_round()
Fiat-Shamir the VK.
BB_PROFILE void execute_wire_commitments_round()
Compute commitments to the first three wires.
std::array< OpeningClaim, NUM_OPENING_CLAIMS > opening_claims
BB_PROFILE void execute_grand_product_computation_round()
Compute permutation and lookup grand product polynomials and commitments.
BB_PROFILE void execute_relation_check_rounds()
Run Sumcheck resulting in u = (u_1,...,u_d) challenges and all evaluations at u being calculated.
BB_PROFILE void execute_pcs_rounds()
Produce a univariate opening claim for the sumcheck multivariate evalutions and a batched univariate ...
void compute_translation_opening_claims()
To link the ECCVM Transcript wires op, Px, Py, z1, and z2 to the accumulator computed by the translat...
bb::RelationParameters< FF > relation_parameters
IPA (inner product argument) commitment scheme class.
Definition ipa.hpp:95
Polynomial p and an opening pair (r,v) such that p(r) = v.
Definition claim.hpp:34
A Curve-agnostic ZK protocol to prove inner products of small vectors.
#define BB_PROFILE
AluTraceBuilder builder
Definition alu.test.cpp:123
Entry point for Barretenberg command-line interface.
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.