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;
40
41 explicit ECCVMProver(CircuitBuilder& builder, const std::shared_ptr<Transcript>& transcript);
42
50
54 void commit_to_witness_polynomial(Polynomial& polynomial, const std::string& label);
55
56 std::shared_ptr<Transcript> transcript;
57
59
60 // The batch opening claim to be verified via IPA
62
63 // Final ShplonkProver consumes an array consisting of Translation Opening Claims and a
64 // `multivariate_to_univariate_opening_claim`
67
69
70 std::vector<FF> public_inputs;
71
73
74 std::shared_ptr<ProvingKey> key;
75
78
81
83};
84
85} // 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
OpeningClaim batch_opening_claim
void commit_to_witness_polynomial(Polynomial &polynomial, const std::string &label)
Utility to mask and commit to a witness polynomial and send the commitment to verifier.
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 > transcript
static constexpr size_t NUM_OPENING_CLAIMS
std::pair< Proof, OpeningClaim > construct_proof()
CommitmentLabels commitment_labels
TranslationEvaluations translation_evaluations
std::shared_ptr< ProvingKey > key
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:93
A Curve-agnostic ZK protocol to prove inner products of small vectors.
#define BB_PROFILE
AluTraceBuilder builder
Definition alu.test.cpp:124
Entry point for Barretenberg command-line interface.
Definition api.hpp:5
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...
This structure is created to contain various polynomials and constants required by ZK Sumcheck.