Barretenberg
The ZK-SNARK library at the core of Aztec
|
#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< VerificationKey > | key |
BF | vk_hash |
Builder * | builder |
std::shared_ptr< Transcript > | transcript |
TranslationEvaluations_< FF > | translation_evaluations |
std::array< OpeningClaim< Curve >, NUM_OPENING_CLAIMS > | opening_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 > |
Definition at line 13 of file eccvm_recursive_verifier.hpp.
|
private |
Definition at line 16 of file eccvm_recursive_verifier.hpp.
|
private |
Definition at line 23 of file eccvm_recursive_verifier.hpp.
|
private |
Definition at line 18 of file eccvm_recursive_verifier.hpp.
|
private |
Definition at line 19 of file eccvm_recursive_verifier.hpp.
|
private |
Definition at line 17 of file eccvm_recursive_verifier.hpp.
|
private |
Definition at line 15 of file eccvm_recursive_verifier.hpp.
|
private |
Definition at line 14 of file eccvm_recursive_verifier.hpp.
|
private |
Definition at line 29 of file eccvm_recursive_verifier.hpp.
Definition at line 21 of file eccvm_recursive_verifier.hpp.
|
private |
Definition at line 24 of file eccvm_recursive_verifier.hpp.
|
private |
Definition at line 28 of file eccvm_recursive_verifier.hpp.
|
private |
Definition at line 27 of file eccvm_recursive_verifier.hpp.
|
private |
Definition at line 25 of file eccvm_recursive_verifier.hpp.
|
private |
Definition at line 20 of file eccvm_recursive_verifier.hpp.
Definition at line 22 of file eccvm_recursive_verifier.hpp.
Definition at line 26 of file eccvm_recursive_verifier.hpp.
|
explicit |
Definition at line 15 of file eccvm_recursive_verifier.cpp.
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.
translation_commitments | Commitments to op , Px , Py , z1 , and z2 |
opening_claims
. Definition at line 169 of file eccvm_recursive_verifier.cpp.
ECCVMRecursiveVerifier::IpaClaimAndProof bb::ECCVMRecursiveVerifier::verify_proof | ( | const ECCVMProof & | proof | ) |
Creates a circuit that executes the ECCVM verifier algorithm up to IPA verification.
Flavor |
proof | Native ECCVM proof |
Definition at line 34 of file eccvm_recursive_verifier.cpp.
ECCVMRecursiveVerifier::IpaClaimAndProof bb::ECCVMRecursiveVerifier::verify_proof | ( | const StdlibProof & | proof | ) |
Creates a circuit that executes the ECCVM verifier algorithm up to IPA verification.
Flavor |
proof | Stdlib ECCVM proof |
Definition at line 46 of file eccvm_recursive_verifier.cpp.
FF bb::ECCVMRecursiveVerifier::batching_challenge_v |
Definition at line 67 of file eccvm_recursive_verifier.hpp.
Builder* bb::ECCVMRecursiveVerifier::builder |
Definition at line 55 of file eccvm_recursive_verifier.hpp.
FF bb::ECCVMRecursiveVerifier::evaluation_challenge_x |
Definition at line 66 of file eccvm_recursive_verifier.hpp.
std::shared_ptr<VerificationKey> bb::ECCVMRecursiveVerifier::key |
Definition at line 52 of file eccvm_recursive_verifier.hpp.
|
staticconstexpr |
Definition at line 61 of file eccvm_recursive_verifier.hpp.
std::array<OpeningClaim<Curve>, NUM_OPENING_CLAIMS> bb::ECCVMRecursiveVerifier::opening_claims |
Definition at line 62 of file eccvm_recursive_verifier.hpp.
std::shared_ptr<Transcript> bb::ECCVMRecursiveVerifier::transcript |
Definition at line 56 of file eccvm_recursive_verifier.hpp.
TranslationEvaluations_<FF> bb::ECCVMRecursiveVerifier::translation_evaluations |
Definition at line 57 of file eccvm_recursive_verifier.hpp.
FF bb::ECCVMRecursiveVerifier::translation_masking_term_eval |
Definition at line 63 of file eccvm_recursive_verifier.hpp.
BF bb::ECCVMRecursiveVerifier::vk_hash |
Definition at line 53 of file eccvm_recursive_verifier.hpp.