|
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 |
| Result of Goblin verification with mode-specific semantics. More... | |
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 > |
Public Member Functions | |
| GoblinVerifier_ (std::shared_ptr< Transcript > transcript, const GoblinProof &proof, const MergeCommitments &merge_commitments, MergeSettings merge_settings) | |
| Construct a Goblin verifier. | |
| ReductionResult | reduce_to_pairing_check_and_ipa_opening () |
| Reduce Goblin proof to pairing check and IPA opening claim. | |
Static Public Attributes | |
| static constexpr bool | IsRecursive = Curve::is_stdlib_type |
Private Attributes | |
| std::shared_ptr< Transcript > | transcript |
| GoblinProof | proof |
| MergeCommitments | merge_commitments |
| MergeSettings | merge_settings |
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 >::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, IPA, and Translator proofs |
| merge_commitments | The input commitments for the Merge verifier (t and T_prev tables) |
| merge_settings | How the ecc op subtable was merged (PREPEND or APPEND) |
Definition at line 76 of file goblin_verifier.hpp.
| GoblinVerifier_< Curve >::ReductionResult bb::GoblinVerifier_< Curve >::reduce_to_pairing_check_and_ipa_opening | ( | ) |
Reduce Goblin proof to pairing check and IPA opening 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. IPA verification is always deferred.
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 18 of file goblin_verifier.cpp.
|
staticconstexpr |
Definition at line 35 of file goblin_verifier.hpp.
|
private |
Definition at line 107 of file goblin_verifier.hpp.
|
private |
Definition at line 108 of file goblin_verifier.hpp.
|
private |
Definition at line 106 of file goblin_verifier.hpp.
|
private |
Definition at line 105 of file goblin_verifier.hpp.