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
59
60 PairingPoints merge_pairing_points; // KZG pairing points from Merge
61 PairingPoints translator_pairing_points; // KZG pairing points from Translator
62 IPAClaim ipa_claim; // IPA opening claim from ECCVM (Grumpkin curve)
63 IPAProof ipa_proof; // IPA proof for verifying the claim
64 bool all_checks_passed = false; // Native: includes pairing checks (already performed)
65 // Recursive: excludes pairing (deferred for batching)
66 // Both: excludes IPA verification (always deferred)
67 };
68
85
102 [[nodiscard("Verification result must be accumulated")]] ReductionResult reduce_to_pairing_check_and_ipa_opening();
103
104 private:
105 std::shared_ptr<Transcript> transcript;
109};
110
111// Type aliases for convenience
114
115} // 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
std::conditional_t< IsRecursive, GoblinStdlibProof, bb::GoblinProof > GoblinProof
std::shared_ptr< Transcript > transcript
static constexpr bool IsRecursive
GoblinVerifier_(std::shared_ptr< Transcript > transcript, const GoblinProof &proof, const MergeCommitments &merge_commitments, MergeSettings merge_settings)
Construct a Goblin verifier.
MergeSettings merge_settings
std::conditional_t< IsRecursive, UltraStdlibTranscript, NativeTranscript > Transcript
ReductionResult reduce_to_pairing_check_and_ipa_opening()
Reduce Goblin proof to pairing check and IPA opening claim.
Unified verifier class for the Goblin ECC op queue transcript 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:69
Entry point for Barretenberg command-line interface.
Definition api.hpp:5
std::vector< fr > HonkProof
Definition proof.hpp:15
MergeSettings
The MergeSettings define whether an current subtable will be added at the beginning (PREPEND) or at t...
STL namespace.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
Result of Goblin verification with mode-specific semantics.
MergeVerifier::PairingPoints PairingPoints
std::conditional_t< IsRecursive, stdlib::Proof< UltraCircuitBuilder >, HonkProof > IPAProof