49 using Point = Flavor::Curve::AffineElement;
198 [[nodiscard(
"Pairing points should be accumulated")]]
std::
202 const StdlibVerifierInputs& verifier_inputs,
239 const std::shared_ptr<Transcript>& verifier_transcript);
247 const StdlibVerifierInputs& verifier_inputs,
Common transcript class for both parties. Stores the data for the current round, as well as the manif...
The IVC scheme used by the aztec client for private function execution.
ProverAccumulator prover_accumulator
Goblin & get_goblin() override
void instantiate_stdlib_verification_queue(ClientCircuit &circuit, const std::vector< std::shared_ptr< RecursiveVKAndHash > > &input_keys={})
Instantiate a stdlib verification queue for use in the kernel completion logic.
std::shared_ptr< MegaZKFlavor::VKAndHash > get_hiding_kernel_vk_and_hash() const
Get the hiding kernel verification key and hash for Chonk verification.
void complete_kernel_circuit_logic(ClientCircuit &circuit)
Append logic to complete a kernel circuit.
VerifierAccumulator native_verifier_accum
void accumulate_and_fold(ClientCircuit &circuit, const std::shared_ptr< MegaVerificationKey > &precomputed_vk, QUEUE_TYPE queue_type, std::shared_ptr< ProverInstance > prover_instance)
Perform HyperNova folding for a circuit and produce the corresponding merge proof.
RecursiveFlavor::WitnessCommitments WitnessCommitments
void accumulate_hiding_kernel(ClientCircuit &circuit, const std::shared_ptr< MegaVerificationKey > &precomputed_vk)
Build the hiding kernel's ZK proving key and verification key (proving is deferred to prove()).
void update_native_verifier_accumulator(const VerifierInputs &queue_entry, const std::shared_ptr< Transcript > &verifier_transcript)
Update native verifier accumulator. Useful for debugging.
static void hide_op_queue_content_in_hiding(ClientCircuit &circuit)
Adds two random non-ops to the hiding kernel for zero-knowledge.
std::array< RecursiveFlavor::Commitment, ClientCircuit::NUM_WIRES > TableCommitments
std::shared_ptr< Transcript > transcript
size_t num_circuits_accumulated
Flavor::Commitment Commitment
void debug_incoming_circuit(ClientCircuit &circuit, const std::shared_ptr< ProverInstance > &prover_instance, const std::shared_ptr< MegaVerificationKey > &precomputed_vk)
Flavor::Curve::AffineElement Point
FF native_verifier_accum_hash
size_t get_num_circuits() const
QUEUE_TYPE
Proof type determining recursive verification logic in kernel circuits.
bool has_last_app_been_accumulated
QUEUE_TYPE get_queue_type() const
Get queue type for the proof of a circuit about to be accumulated based on num circuits accumulated s...
std::deque< StdlibVerifierInputs > StdlibVerificationQueue
ChonkProof prove()
Construct Chonk proof using the batched MegaZK + Translator protocol.
RecursiveFlavor::FF StdlibFF
PublicInputsResult process_public_inputs_and_consistency_checks(const StdlibVerifierInputs &verifier_inputs, std::vector< StdlibFF > &public_inputs, WitnessCommitments &witness_commitments, const std::optional< StdlibFF > &prev_accum_hash)
Process public inputs from a verified circuit and perform databus consistency checks.
VerifierAccumulator recursive_verifier_native_accum
bool is_previous_circuit_a_kernel
RecursiveFlavor::Commitment RecursiveCommitment
std::tuple< std::optional< RecursiveVerifierAccumulator >, std::vector< PairingPoints >, StdlibFF > recursive_verification_and_consistency_checks(ClientCircuit &circuit, const StdlibVerifierInputs &verifier_inputs, const std::optional< RecursiveVerifierAccumulator > &input_verifier_accumulator, const std::optional< StdlibFF > &running_hash, const std::shared_ptr< RecursiveTranscript > &accumulation_recursive_transcript)
Orchestrate recursive verification, databus consistency checks, and merge verification for a single c...
std::shared_ptr< HidingKernelProverInstance > hiding_prover_inst
void accumulate(ClientCircuit &circuit, const std::shared_ptr< MegaVerificationKey > &precomputed_vk) override
Perform prover work for accumulation (e.g. HN folding, merge proving)
MegaCircuitBuilder ClientCircuit
FoldingResult verify_folding(ClientCircuit &circuit, const StdlibVerifierInputs &verifier_inputs, const std::shared_ptr< RecursiveVerifierInstance > &verifier_instance, const std::shared_ptr< RecursiveTranscript > &accumulation_recursive_transcript) const
Perform recursive folding verification for a single circuit in the IVC.
const Goblin & get_goblin() const override
std::deque< VerifierInputs > VerificationQueue
VerificationQueue verification_queue
std::shared_ptr< MegaZKVerificationKey > hiding_vk
std::shared_ptr< Transcript > prover_accumulation_transcript
StdlibVerificationQueue stdlib_verification_queue
FixedVKAndHash_< PrecomputedEntities< Commitment >, BF, ECCVMHardcodedVKAndHash > VerificationKey
The verification key stores commitments to the precomputed polynomials used by the verifier.
Simple verification key class for fixed-size circuits (ECCVM, Translator, AVM).
HyperNova decider prover. Produces final opening proof for the accumulated claim.
HyperNova decider verifier (native + recursive). Verifies final opening proof.
HyperNova folding prover. Folds circuit instances into accumulators, deferring PCS verification.
MultilinearBatchingProverClaim Accumulator
HyperNova folding verifier (native + recursive). Verifies folding proofs and maintains accumulators.
MultilinearBatchingVerifierClaim< Curve > Accumulator
Base class interface for IVC schemes.
Container for all witness polynomials used/constructed by the prover.
ProverPolynomialsBase< AllEntities_< Polynomial >, AllValues, Polynomial > ProverPolynomials
A container for the prover polynomials handles.
Curve::AffineElement Commitment
NativeVerificationKey_< PrecomputedEntities< Commitment >, Codec, HashFunction, CommitmentKey > VerificationKey
The verification key stores commitments to the precomputed (non-witness) polynomials used by the veri...
The recursive counterpart to the "native" Mega flavor.
StdlibTranscript< CircuitBuilder > Transcript
typename Curve::Element Commitment
StdlibVerificationKey_< CircuitBuilder, NativeFlavor::PrecomputedEntities< Commitment >, NativeFlavor::VerificationKey > VerificationKey
typename Curve::ScalarField FF
VKAndHash_< FF, VerificationKey > VKAndHash
MegaFlavor::WitnessEntities< Commitment > WitnessCommitments
A container for the witness commitments.
Base Native verification key class.
Contains all the information required by a Honk prover to create a proof, constructed from a finalize...
A container for polynomials handles used by the prover.
Base Stdlib verification key class.
FixedVKAndHash_< VKEntities< Commitment >, FF, TranslatorHardcodedVKAndHash > VerificationKey
The verification key stores commitments to the precomputed polynomials used by the verifier.
Wrapper holding a verification key and its precomputed hash.
The VerifierInstance encapsulates all the necessary information for a Honk Verifier to verify a proof...
Manages the data that is propagated on the public inputs of an application/function circuit.
Manages the data that is propagated on the public inputs of a hiding kernel circuit.
Manages the data that is propagated on the public inputs of a kernel circuit.
KernelIO_< MAX_APPS_PER_KERNEL > KernelIO
DefaultIO< MegaCircuitBuilder > AppIO
The data that is propagated on the public inputs of an application/function circuit.
Entry point for Barretenberg command-line interface.
std::vector< fr > HonkProof
ChonkProof_< false > ChonkProof
BaseTranscript< FrCodec, bb::crypto::Poseidon2< bb::crypto::Poseidon2Bn254ScalarFieldParams > > NativeTranscript
MegaCircuitBuilder_< field< Bn254FrParams > > MegaCircuitBuilder
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
std::vector< PairingPoints > pairing_points
std::optional< RecursiveVerifierAccumulator > output_accumulator
Prover's claim for multilinear batching - contains polynomials and their evaluation claims.
Verifier's claim for multilinear batching - contains commitments and evaluation claims.