Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::GoblinAvmRecursiveVerifier Class Reference

GoblinAvm verifier. More...

#include <goblin_avm_verifier.hpp>

Classes

struct  ReductionResult
 Result of GoblinAvm verification. More...
 

Public Types

using Curve = stdlib::bn254< UltraCircuitBuilder >
 
using Transcript = UltraStdlibTranscript
 
using ECCVMVerifier = ECCVMVerifier_< ECCVMRecursiveFlavor >
 
using TranslatorVerifier = TranslatorVerifier_< TranslatorRecursiveFlavor >
 
using GoblinProof = GoblinAvmStdlibProof
 
using Commitment = Curve::AffineElement
 
using TableCommitments = std::array< Commitment, UltraCircuitBuilder::NUM_WIRES >
 

Public Member Functions

 GoblinAvmRecursiveVerifier (std::shared_ptr< Transcript > transcript, const GoblinProof &proof, const TableCommitments &table_commitments)
 Construct a GoblinAvm verifier.
 
ReductionResult reduce_to_pairing_check_and_ipa_opening ()
 Reduce Goblin proof to pairing check and IPA opening claim.
 

Private Attributes

std::shared_ptr< Transcripttranscript
 
GoblinProof proof
 
TableCommitments table_commitments
 

Detailed Description

GoblinAvm verifier.

Orchestrates verification of the two Goblin sub-protocols (as the AVM only doesn't have a merge protocol):

  1. ECCVM verification - Proves correct execution of elliptic curve operations
  2. Translator verification - Proves consistency between BN254 ↔ Grumpkin field element representations

This verifier does NOT perform final verification - it returns reduction results for deferred verification.

Definition at line 30 of file goblin_avm_verifier.hpp.

Member Typedef Documentation

◆ Commitment

◆ Curve

◆ ECCVMVerifier

◆ GoblinProof

◆ TableCommitments

◆ Transcript

◆ TranslatorVerifier

Constructor & Destructor Documentation

◆ GoblinAvmRecursiveVerifier()

bb::GoblinAvmRecursiveVerifier::GoblinAvmRecursiveVerifier ( std::shared_ptr< Transcript transcript,
const GoblinProof proof,
const TableCommitments table_commitments 
)
inline

Construct a GoblinAvm verifier.

Parameters
transcriptShared transcript for Fiat-Shamir
proofThe complete GoblinAvm proof containing ECCVM, IPA, and Translator proofs
table_commitmentsThe commitments to the full table of ECC ops

Definition at line 62 of file goblin_avm_verifier.hpp.

Member Function Documentation

◆ reduce_to_pairing_check_and_ipa_opening()

GoblinAvmRecursiveVerifier::ReductionResult bb::GoblinAvmRecursiveVerifier::reduce_to_pairing_check_and_ipa_opening ( )

Reduce Goblin proof to pairing check and IPA opening claim.

Reduce GoblinAvm proof to pairing check and IPA opening claim.

Orchestrates two sub-verifiers in sequence: ECCVM → Translator

  • ECCVM: reduces to IPA opening claim (Grumpkin curve)
  • Translator: reduces to KZG pairing check
Warning
Caller must verify translator_pairing_points with a pairing check, and ipa_claim using ipa_proof

Processes ECCVM and Translator sub-proofs sequentially.

Definition at line 16 of file goblin_avm_verifier.cpp.

Member Data Documentation

◆ proof

GoblinProof bb::GoblinAvmRecursiveVerifier::proof
private

Definition at line 82 of file goblin_avm_verifier.hpp.

◆ table_commitments

TableCommitments bb::GoblinAvmRecursiveVerifier::table_commitments
private

Definition at line 83 of file goblin_avm_verifier.hpp.

◆ transcript

std::shared_ptr<Transcript> bb::GoblinAvmRecursiveVerifier::transcript
private

Definition at line 81 of file goblin_avm_verifier.hpp.


The documentation for this class was generated from the following files: