|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
Unified Goblin verifier for both native and recursive verification. More...
#include <goblin_verifier.hpp>
Classes | |
| struct | ReductionResult |
Public Types | |
| using | MergeVerifier = MergeVerifier_< Curve > |
| using | ECCVMVerifier = ECCVMVerifier_< std::conditional_t< IsRecursive, ECCVMRecursiveFlavor, ECCVMFlavor > > |
| using | TranslatorVerifier = TranslatorVerifier_< std::conditional_t< IsRecursive, TranslatorRecursiveFlavor, TranslatorFlavor > > |
| using | GoblinProof = std::conditional_t< IsRecursive, GoblinStdlibProof, bb::GoblinProof > |
| using | MergeCommitments = typename MergeVerifier::InputCommitments |
| using | Transcript = std::conditional_t< IsRecursive, UltraStdlibTranscript, NativeTranscript > |
| using | DeferredTripleIpaOpening = typename ECCVMVerifier::DeferredTripleIpaOpening |
| Result of Goblin verification with mode-specific semantics. | |
Public Member Functions | |
| GoblinVerifier_ (std::shared_ptr< Transcript > transcript, const GoblinProof &proof, const MergeCommitments &merge_commitments) | |
| Construct a Goblin verifier. | |
| ReductionResult | reduce_to_pairing_check_and_triple_ipa_opening () |
| Reduce Goblin proof to pairing checks and a TripleIPA claim. | |
Static Public Attributes | |
| static constexpr bool | IsRecursive = Curve::is_stdlib_type |
Private Attributes | |
| std::shared_ptr< Transcript > | transcript |
| GoblinProof | proof |
| MergeCommitments | merge_commitments |
Unified Goblin verifier for both native and recursive verification.
Orchestrates verification of the three Goblin sub-protocols:
This verifier does NOT perform final verification - it returns reduction results for deferred verification.
| Curve | The BN254 curve type (either curve::BN254 for native or stdlib::bn254<Builder> for recursive) |
Definition at line 33 of file goblin_verifier.hpp.
| using bb::GoblinVerifier_< Curve >::DeferredTripleIpaOpening = typename ECCVMVerifier::DeferredTripleIpaOpening |
Result of Goblin verification with mode-specific semantics.
Native mode: Pairing checks are performed immediately (fail-fast), TripleIPA verification is deferred. Recursive mode: Pairing and TripleIPA verification are deferred for aggregation.
Definition at line 55 of file goblin_verifier.hpp.
| using bb::GoblinVerifier_< Curve >::ECCVMVerifier = ECCVMVerifier_<std::conditional_t<IsRecursive, ECCVMRecursiveFlavor, ECCVMFlavor> > |
Definition at line 39 of file goblin_verifier.hpp.
| using bb::GoblinVerifier_< Curve >::GoblinProof = std::conditional_t<IsRecursive, GoblinStdlibProof, bb::GoblinProof> |
Definition at line 44 of file goblin_verifier.hpp.
| using bb::GoblinVerifier_< Curve >::MergeCommitments = typename MergeVerifier::InputCommitments |
Definition at line 45 of file goblin_verifier.hpp.
| using bb::GoblinVerifier_< Curve >::MergeVerifier = MergeVerifier_<Curve> |
Definition at line 38 of file goblin_verifier.hpp.
| using bb::GoblinVerifier_< Curve >::Transcript = std::conditional_t<IsRecursive, UltraStdlibTranscript, NativeTranscript> |
Definition at line 48 of file goblin_verifier.hpp.
| using bb::GoblinVerifier_< Curve >::TranslatorVerifier = TranslatorVerifier_<std::conditional_t<IsRecursive, TranslatorRecursiveFlavor, TranslatorFlavor> > |
Definition at line 40 of file goblin_verifier.hpp.
|
inline |
Construct a Goblin verifier.
| transcript | Shared transcript for Fiat-Shamir |
| proof | The complete Goblin proof containing Merge, ECCVM, TripleIPA, and Translator proofs |
| merge_commitments | The input commitments for the Merge verifier (t and T_prev tables) |
Definition at line 72 of file goblin_verifier.hpp.
| GoblinVerifier_< Curve >::ReductionResult bb::GoblinVerifier_< Curve >::reduce_to_pairing_check_and_triple_ipa_opening | ( | ) |
Reduce Goblin proof to pairing checks and a TripleIPA claim.
Orchestrates three sub-verifiers in sequence: Merge → ECCVM → Translator
Pairing points from Merge and Translator are aggregated. In native mode, performs immediate pairing checks for early rejections. TripleIPA verification is always deferred to the caller.
Processes Merge, ECCVM, and Translator sub-proofs sequentially. In native mode, performs immediate pairing checks for early rejections and returns the default ReductionResult on failure.
Definition at line 20 of file goblin_verifier.cpp.
|
staticconstexpr |
Definition at line 35 of file goblin_verifier.hpp.
|
private |
Definition at line 102 of file goblin_verifier.hpp.
|
private |
Definition at line 101 of file goblin_verifier.hpp.
|
private |
Definition at line 100 of file goblin_verifier.hpp.