Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
batched_honk_translator_prover.hpp
Go to the documentation of this file.
1#pragma once
2
15
16namespace bb {
17
33 public:
48
49 // Translator log circuit size (= JOINT_LOG_N).
51
53 std::shared_ptr<MegaZKVK> mega_zk_vk,
54 std::shared_ptr<Transcript> transcript);
55
58
59 private:
61 std::shared_ptr<MegaZKVK> mega_zk_vk;
63 std::shared_ptr<Transcript> transcript;
64
65 // Translator relation parameters captured during execute_translator_oink()
67
68 // Sumcheck state accumulated during execute_joint_sumcheck_rounds()
70 std::vector<FF> joint_challenge; // (u_0, ..., u_16)
71 MegaZKFlavor::AllValues mega_zk_claimed_evals; // MegaZK circuit evaluations at joint challenge
72 TranslatorFlavor::AllValues trans_claimed_evals; // translator evaluations at joint challenge
74
78 void execute_joint_pcs();
79};
80
81} // namespace bb
Common transcript class for both parties. Stores the data for the current round, as well as the manif...
Prover for the batched MegaZK circuit + translator sumcheck and PCS.
std::shared_ptr< MegaZKProverInstance > mega_zk_inst
std::shared_ptr< TranslatorProvingKey > translator_key
void execute_joint_sumcheck_rounds()
Execute the joint 17-round sumcheck.
bb::RelationParameters< FF > translator_relation_parameters
void execute_joint_pcs()
Execute the joint Shplemini / KZG PCS over both circuits' polynomials.
std::array< FF, MegaZKFlavor::NUM_SUBRELATIONS - 1 > MegaZKSubrelationSeparators
HonkProof prove(std::shared_ptr< TranslatorProvingKey > translator_proving_key)
std::array< FF, TranslatorFlavor::NUM_SUBRELATIONS - 1 > TransSubrelationSeparators
void execute_mega_zk_oink()
Run the MegaZK circuit's Oink phase.
void execute_translator_oink()
Run the translator's Oink phase on the shared transcript.
CommitmentKey object over a pairing group 𝔾₁.
Curve::ScalarField FF
bb::CommitmentKey< Curve > CommitmentKey
static constexpr size_t NUM_SUBRELATIONS
curve::BN254 Curve
NativeVerificationKey_< PrecomputedEntities< Commitment >, Codec, HashFunction, CommitmentKey > VerificationKey
The verification key stores commitments to the precomputed (non-witness) polynomials used by the veri...
MegaFlavor::PartiallyEvaluatedMultivariates_< HasZK > PartiallyEvaluatedMultivariates
Base Native verification key class.
Definition flavor.hpp:135
A container for storing the partially evaluated multivariates produced by sumcheck.
Contains all the information required by a Honk prover to create a proof, constructed from a finalize...
Imlementation of the Sumcheck prover round.
A field element for each entity of the flavor. These entities represent the prover polynomials evalua...
static constexpr size_t CONST_TRANSLATOR_LOG_N
PartiallyEvaluatedMultivariatesBase< AllEntities< Polynomial >, ProverPolynomials, Polynomial > PartiallyEvaluatedMultivariates
A container for storing the partially evaluated multivariates produced by sumcheck.
static constexpr size_t NUM_SUBRELATIONS
A univariate polynomial represented by its values on {0, 1,..., domain_end - 1}.
Entry point for Barretenberg command-line interface.
Definition api.hpp:5
std::vector< fr > HonkProof
Definition proof.hpp:15
BaseTranscript< FrCodec, bb::crypto::Poseidon2< bb::crypto::Poseidon2Bn254ScalarFieldParams > > NativeTranscript
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.