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

#include <eccvm_recursive_verifier.hpp>

Classes

struct  StdlibProof
 

Public Member Functions

 ECCVMRecursiveVerifier (Builder *builder, const std::shared_ptr< NativeVerificationKey > &native_verifier_key, const std::shared_ptr< Transcript > &transcript)
 
IpaClaimAndProof verify_proof (const ECCVMProof &proof)
 Creates a circuit that executes the ECCVM verifier algorithm up to IPA verification.
 
IpaClaimAndProof verify_proof (const StdlibProof &proof)
 Creates a circuit that executes the ECCVM verifier algorithm up to IPA verification.
 
void compute_translation_opening_claims (const std::vector< Commitment > &translation_commitments)
 To link the ECCVM Transcript wires op, Px, Py, z1, and z2 to the accumulator computed by the translator, we verify their evaluations as univariates. For efficiency reasons, we batch these evaluations.
 

Public Attributes

std::shared_ptr< VerificationKeykey
 
BF vk_hash
 
Builderbuilder
 
std::shared_ptr< Transcripttranscript
 
TranslationEvaluations_< FFtranslation_evaluations
 
std::array< OpeningClaim< Curve >, NUM_OPENING_CLAIMSopening_claims
 
FF translation_masking_term_eval
 
FF evaluation_challenge_x
 
FF batching_challenge_v
 

Static Public Attributes

static constexpr size_t NUM_OPENING_CLAIMS = ECCVMFlavor::NUM_TRANSLATION_OPENING_CLAIMS + 1
 

Private Types

using Flavor = ECCVMRecursiveFlavor
 
using FF = Flavor::FF
 
using BF = Flavor::BF
 
using Curve = Flavor::Curve
 
using Commitment = Flavor::Commitment
 
using CommitmentLabels = Flavor::CommitmentLabels
 
using VerificationKey = Flavor::VerificationKey
 
using NativeVerificationKey = Flavor::NativeVerificationKey
 
using VerifierCommitmentKey = Flavor::VerifierCommitmentKey
 
using Builder = Flavor::CircuitBuilder
 
using PCS = Flavor::PCS
 
using Transcript = bb::BaseTranscript< bb::stdlib::recursion::honk::StdlibTranscriptParams< Builder > >
 
using VerifierCommitments = Flavor::VerifierCommitments
 
using StdlibPreIpaProof = bb::stdlib::Proof< Builder >
 
using StdlibIpaProof = bb::stdlib::Proof< Builder >
 
using IpaClaimAndProof = std::pair< OpeningClaim< Curve >, StdlibIpaProof >
 

Detailed Description

Definition at line 13 of file eccvm_recursive_verifier.hpp.

Member Typedef Documentation

◆ BF

Definition at line 16 of file eccvm_recursive_verifier.hpp.

◆ Builder

◆ Commitment

◆ CommitmentLabels

◆ Curve

◆ FF

Definition at line 15 of file eccvm_recursive_verifier.hpp.

◆ Flavor

◆ IpaClaimAndProof

◆ NativeVerificationKey

◆ PCS

Definition at line 24 of file eccvm_recursive_verifier.hpp.

◆ StdlibIpaProof

◆ StdlibPreIpaProof

◆ Transcript

◆ VerificationKey

◆ VerifierCommitmentKey

◆ VerifierCommitments

Constructor & Destructor Documentation

◆ ECCVMRecursiveVerifier()

bb::ECCVMRecursiveVerifier::ECCVMRecursiveVerifier ( Builder builder,
const std::shared_ptr< NativeVerificationKey > &  native_verifier_key,
const std::shared_ptr< Transcript > &  transcript 
)
explicit

Definition at line 15 of file eccvm_recursive_verifier.cpp.

Member Function Documentation

◆ compute_translation_opening_claims()

void bb::ECCVMRecursiveVerifier::compute_translation_opening_claims ( const std::vector< Commitment > &  translation_commitments)

To link the ECCVM Transcript wires op, Px, Py, z1, and z2 to the accumulator computed by the translator, we verify their evaluations as univariates. For efficiency reasons, we batch these evaluations.

For details, see the docs of ECCVMProver::compute_translation_opening_claims() method.

Parameters
translation_commitmentsCommitments to op, Px, Py, z1, and z2
Returns
Populate opening_claims.

Definition at line 169 of file eccvm_recursive_verifier.cpp.

◆ verify_proof() [1/2]

ECCVMRecursiveVerifier::IpaClaimAndProof bb::ECCVMRecursiveVerifier::verify_proof ( const ECCVMProof proof)

Creates a circuit that executes the ECCVM verifier algorithm up to IPA verification.

Template Parameters
Flavor
Parameters
proofNative ECCVM proof

Definition at line 34 of file eccvm_recursive_verifier.cpp.

◆ verify_proof() [2/2]

ECCVMRecursiveVerifier::IpaClaimAndProof bb::ECCVMRecursiveVerifier::verify_proof ( const StdlibProof proof)

Creates a circuit that executes the ECCVM verifier algorithm up to IPA verification.

Template Parameters
Flavor
Parameters
proofStdlib ECCVM proof

Definition at line 46 of file eccvm_recursive_verifier.cpp.

Member Data Documentation

◆ batching_challenge_v

FF bb::ECCVMRecursiveVerifier::batching_challenge_v

Definition at line 67 of file eccvm_recursive_verifier.hpp.

◆ builder

Builder* bb::ECCVMRecursiveVerifier::builder

Definition at line 55 of file eccvm_recursive_verifier.hpp.

◆ evaluation_challenge_x

FF bb::ECCVMRecursiveVerifier::evaluation_challenge_x

Definition at line 66 of file eccvm_recursive_verifier.hpp.

◆ key

std::shared_ptr<VerificationKey> bb::ECCVMRecursiveVerifier::key

Definition at line 52 of file eccvm_recursive_verifier.hpp.

◆ NUM_OPENING_CLAIMS

constexpr size_t bb::ECCVMRecursiveVerifier::NUM_OPENING_CLAIMS = ECCVMFlavor::NUM_TRANSLATION_OPENING_CLAIMS + 1
staticconstexpr

Definition at line 61 of file eccvm_recursive_verifier.hpp.

◆ opening_claims

std::array<OpeningClaim<Curve>, NUM_OPENING_CLAIMS> bb::ECCVMRecursiveVerifier::opening_claims

Definition at line 62 of file eccvm_recursive_verifier.hpp.

◆ transcript

std::shared_ptr<Transcript> bb::ECCVMRecursiveVerifier::transcript

Definition at line 56 of file eccvm_recursive_verifier.hpp.

◆ translation_evaluations

TranslationEvaluations_<FF> bb::ECCVMRecursiveVerifier::translation_evaluations

Definition at line 57 of file eccvm_recursive_verifier.hpp.

◆ translation_masking_term_eval

FF bb::ECCVMRecursiveVerifier::translation_masking_term_eval

Definition at line 63 of file eccvm_recursive_verifier.hpp.

◆ vk_hash

BF bb::ECCVMRecursiveVerifier::vk_hash

Definition at line 53 of file eccvm_recursive_verifier.hpp.


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