Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
merge_recursive_verifier.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
14
16template <typename CircuitBuilder> class MergeRecursiveVerifier_ {
17 public:
19 using FF = typename Curve::ScalarField;
20 using Commitment = typename Curve::Element;
21 using GroupElement = typename Curve::Element;
25
26 CircuitBuilder* builder;
27 std::shared_ptr<Transcript> transcript;
29
30 // Number of columns that jointly constitute the op_queue, should be the same as the number of wires in the
31 // MegaCircuitBuilder
33 using TableCommitments = std::array<Commitment, NUM_WIRES>; // Commitments to the subtables and the merged table
34
45
46 explicit MergeRecursiveVerifier_(CircuitBuilder* builder,
48 const std::shared_ptr<Transcript>& transcript = std::make_shared<Transcript>());
49
50 [[nodiscard("Pairing points should be accumulated")]] std::pair<PairingPoints, TableCommitments> verify_proof(
51 const stdlib::Proof<CircuitBuilder>& proof, const InputCommitments& input_commitments);
52};
53
54} // namespace bb::stdlib::recursion::goblin
Common transcript class for both parties. Stores the data for the current round, as well as the manif...
static constexpr size_t NUM_WIRES
Defines the circuit block types for the Mega arithmetization.
A simple wrapper around a vector of stdlib field elements representing a proof.
Definition proof.hpp:19
std::pair< PairingPoints, TableCommitments > verify_proof(const stdlib::Proof< CircuitBuilder > &proof, const InputCommitments &input_commitments)
Computes inputs to a pairing check that, if verified, establishes proper construction of the aggregat...
MergeSettings
The MergeSettings define whether an current subtable will be added at the beginning (PREPEND) or at t...
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
field_t< CircuitBuilder > ScalarField
Definition bn254.hpp:33
An object storing two EC points that represent the inputs to a pairing check.