Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
goblin_verifier.hpp
Go to the documentation of this file.
1// === AUDIT STATUS ===
2// internal: { status: Complete, auditors: [Sergei], commit: }
3// external_1: { status: not started, auditors: [], commit: }
4// external_2: { status: not started, auditors: [], commit: }
5// =====================
6#pragma once
17
18namespace bb {
19
33template <typename Curve> class GoblinVerifier_ {
34 public:
35 static constexpr bool IsRecursive = Curve::is_stdlib_type;
36
37 // Verifier types
42
43 // Proof and commitment types
46
47 // Transcript type
49
56
59 PairingPoints merge_pairing_points; // KZG pairing points from Merge
60 PairingPoints translator_pairing_points; // KZG pairing points from Translator
61 DeferredTripleIpaOpening triple_ipa_opening; // Compact TripleIPA verifier input and proof from ECCVM
62 bool all_checks_passed = false; // Native: includes pairing checks (already performed)
63 // Recursive: excludes pairing (deferred for batching)
64 };
65
72 GoblinVerifier_(std::shared_ptr<Transcript> transcript,
73 const GoblinProof& proof,
75 : transcript(std::move(transcript))
76 , proof(proof)
78 {}
79
96 [[nodiscard("Verification result must be accumulated")]] ReductionResult
98
99 private:
100 std::shared_ptr<Transcript> transcript;
103};
104
105// Type aliases for convenience
108
109} // namespace bb
Unified ECCVM verifier class for both native and recursive verification.
Unified Goblin verifier for both native and recursive verification.
typename MergeVerifier::InputCommitments MergeCommitments
MergeCommitments merge_commitments
GoblinVerifier_(std::shared_ptr< Transcript > transcript, const GoblinProof &proof, const MergeCommitments &merge_commitments)
Construct a Goblin verifier.
std::conditional_t< IsRecursive, GoblinStdlibProof, bb::GoblinProof > GoblinProof
ReductionResult reduce_to_pairing_check_and_triple_ipa_opening()
Reduce Goblin proof to pairing checks and a TripleIPA claim.
std::shared_ptr< Transcript > transcript
static constexpr bool IsRecursive
std::conditional_t< IsRecursive, UltraStdlibTranscript, NativeTranscript > Transcript
typename ECCVMVerifier::DeferredTripleIpaOpening DeferredTripleIpaOpening
Result of Goblin verification with mode-specific semantics.
Verifier for the single-step Goblin ECC op queue merge protocol.
std::conditional_t< Curve::is_stdlib_type, stdlib::recursion::PairingPoints< Curve >, bb::PairingPoints< Curve > > PairingPoints
Translator verifier class that verifies the proof of the Translator circuit.
static constexpr bool is_stdlib_type
Definition grumpkin.hpp:67
Entry point for Barretenberg command-line interface.
Definition api.hpp:5
STL namespace.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
MergeVerifier::PairingPoints PairingPoints
DeferredTripleIpaOpening triple_ipa_opening