|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
Unified ECCVM verifier class for both native and recursive verification. More...
#include <eccvm_verifier.hpp>
Public Types | |
| using | FF = Flavor::FF |
| using | BF = Flavor::BF |
| using | Curve = Flavor::Curve |
| using | Commitment = Flavor::Commitment |
| using | CommitmentLabels = Flavor::CommitmentLabels |
| using | Transcript = Flavor::Transcript |
| using | VerificationKey = Flavor::VerificationKey |
| using | VerifierCommitments = Flavor::VerifierCommitments |
| using | VerifierCommitmentKey = Flavor::VerifierCommitmentKey |
| using | Proof = Flavor::Proof |
| using | PCS = Flavor::PCS |
| using | TranslatorInputData = TranslatorInputData_< FF > |
| using | Builder = std::conditional_t< IsRecursive, typename Flavor::CircuitBuilder, void > |
Public Member Functions | |
| ECCVMVerifier_ (const std::shared_ptr< Transcript > &transcript, const Proof &proof) | |
| OpeningClaim< Curve > | verify_proof () |
| Verifies an ECCVM Honk proof for given program settings. | |
| 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. | |
| void | compute_accumulated_result () |
| TranslatorInputData | get_translator_input_data () const |
| Get the data required by the TranslatorVerifier. | |
Public Attributes | |
| std::shared_ptr< VerificationKey > | key |
| Proof | proof |
| BF | vk_hash |
| std::conditional_t< IsRecursive, Builder *, void * > | builder = nullptr |
| std::array< OpeningClaim< Curve >, NUM_OPENING_CLAIMS > | opening_claims |
| bool | sumcheck_verified = false |
| bool | consistency_checked = false |
| std::shared_ptr< Transcript > | transcript |
| TranslationEvaluations_< FF > | translation_evaluations |
| bool | translation_masking_consistency_checked = false |
Static Public Attributes | |
| static constexpr bool | IsRecursive = Curve::is_stdlib_type |
| static constexpr size_t | NUM_OPENING_CLAIMS = ECCVMFlavor::NUM_TRANSLATION_OPENING_CLAIMS + 1 |
Private Attributes | |
| FF | evaluation_challenge_x |
| FF | batching_challenge_v |
| FF | translation_masking_term_eval |
| FF | accumulated_result |
Unified ECCVM verifier class for both native and recursive verification.
| Flavor | Either ECCVMFlavor (native) or ECCVMRecursiveFlavor (recursive) |
Definition at line 19 of file eccvm_verifier.hpp.
| using bb::ECCVMVerifier_< Flavor >::BF = Flavor::BF |
Definition at line 22 of file eccvm_verifier.hpp.
| using bb::ECCVMVerifier_< Flavor >::Builder = std::conditional_t<IsRecursive, typename Flavor::CircuitBuilder, void> |
Definition at line 35 of file eccvm_verifier.hpp.
| using bb::ECCVMVerifier_< Flavor >::Commitment = Flavor::Commitment |
Definition at line 24 of file eccvm_verifier.hpp.
| using bb::ECCVMVerifier_< Flavor >::CommitmentLabels = Flavor::CommitmentLabels |
Definition at line 25 of file eccvm_verifier.hpp.
| using bb::ECCVMVerifier_< Flavor >::Curve = Flavor::Curve |
Definition at line 23 of file eccvm_verifier.hpp.
| using bb::ECCVMVerifier_< Flavor >::FF = Flavor::FF |
Definition at line 21 of file eccvm_verifier.hpp.
| using bb::ECCVMVerifier_< Flavor >::PCS = Flavor::PCS |
Definition at line 31 of file eccvm_verifier.hpp.
| using bb::ECCVMVerifier_< Flavor >::Proof = Flavor::Proof |
Definition at line 30 of file eccvm_verifier.hpp.
| using bb::ECCVMVerifier_< Flavor >::Transcript = Flavor::Transcript |
Definition at line 26 of file eccvm_verifier.hpp.
| using bb::ECCVMVerifier_< Flavor >::TranslatorInputData = TranslatorInputData_<FF> |
Definition at line 32 of file eccvm_verifier.hpp.
| using bb::ECCVMVerifier_< Flavor >::VerificationKey = Flavor::VerificationKey |
Definition at line 27 of file eccvm_verifier.hpp.
| using bb::ECCVMVerifier_< Flavor >::VerifierCommitmentKey = Flavor::VerifierCommitmentKey |
Definition at line 29 of file eccvm_verifier.hpp.
| using bb::ECCVMVerifier_< Flavor >::VerifierCommitments = Flavor::VerifierCommitments |
Definition at line 28 of file eccvm_verifier.hpp.
|
inline |
Definition at line 39 of file eccvm_verifier.hpp.
| void bb::ECCVMVerifier_< Flavor >::compute_accumulated_result | ( | ) |
Definition at line 245 of file eccvm_verifier.cpp.
| void bb::ECCVMVerifier_< Flavor >::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 148 of file eccvm_verifier.cpp.
|
inline |
Get the data required by the TranslatorVerifier.
Definition at line 67 of file eccvm_verifier.hpp.
| OpeningClaim< typename Flavor::Curve > bb::ECCVMVerifier_< Flavor >::verify_proof | ( | ) |
Verifies an ECCVM Honk proof for given program settings.
Works for both native verification and recursive (in-circuit) verification.
Definition at line 19 of file eccvm_verifier.cpp.
|
private |
Definition at line 100 of file eccvm_verifier.hpp.
|
private |
Definition at line 96 of file eccvm_verifier.hpp.
| std::conditional_t<IsRecursive, Builder*, void*> bb::ECCVMVerifier_< Flavor >::builder = nullptr |
Definition at line 78 of file eccvm_verifier.hpp.
| bool bb::ECCVMVerifier_< Flavor >::consistency_checked = false |
Definition at line 87 of file eccvm_verifier.hpp.
|
private |
Definition at line 95 of file eccvm_verifier.hpp.
|
staticconstexpr |
Definition at line 34 of file eccvm_verifier.hpp.
| std::shared_ptr<VerificationKey> bb::ECCVMVerifier_< Flavor >::key |
Definition at line 72 of file eccvm_verifier.hpp.
|
staticconstexpr |
Definition at line 82 of file eccvm_verifier.hpp.
| std::array<OpeningClaim<Curve>, NUM_OPENING_CLAIMS> bb::ECCVMVerifier_< Flavor >::opening_claims |
Definition at line 83 of file eccvm_verifier.hpp.
| Proof bb::ECCVMVerifier_< Flavor >::proof |
Definition at line 73 of file eccvm_verifier.hpp.
| bool bb::ECCVMVerifier_< Flavor >::sumcheck_verified = false |
Definition at line 86 of file eccvm_verifier.hpp.
| std::shared_ptr<Transcript> bb::ECCVMVerifier_< Flavor >::transcript |
Definition at line 88 of file eccvm_verifier.hpp.
| TranslationEvaluations_<FF> bb::ECCVMVerifier_< Flavor >::translation_evaluations |
Definition at line 89 of file eccvm_verifier.hpp.
| bool bb::ECCVMVerifier_< Flavor >::translation_masking_consistency_checked = false |
Definition at line 91 of file eccvm_verifier.hpp.
|
private |
Definition at line 98 of file eccvm_verifier.hpp.
| BF bb::ECCVMVerifier_< Flavor >::vk_hash |
Definition at line 75 of file eccvm_verifier.hpp.