|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
Translator verifier class that verifies the proof of the Translator circuit. More...
#include <translator_verifier.hpp>
Classes | |
| struct | ReductionResult |
| Result of reducing translator proof to pairing check. More... | |
Public Types | |
| using | FF = typename Flavor::FF |
| using | BF = typename Flavor::BF |
| using | Curve = typename Flavor::Curve |
| using | Commitment = typename Flavor::Commitment |
| using | VerificationKey = typename Flavor::VerificationKey |
| using | VerifierCommitments = typename Flavor::VerifierCommitments |
| using | CommitmentLabels = typename Flavor::CommitmentLabels |
| using | Transcript = typename Flavor::Transcript |
| using | RelationParams = RelationParameters< FF > |
| using | Builder = std::conditional_t< IsRecursive, typename Flavor::CircuitBuilder, void > |
| using | PairingPoints = std::conditional_t< IsRecursive, stdlib::recursion::PairingPoints< Curve >, bb::PairingPoints< Curve > > |
| using | Proof = std::conditional_t< IsRecursive, stdlib::Proof< Builder >, HonkProof > |
Public Member Functions | |
| TranslatorVerifier_ (std::shared_ptr< Transcript > transcript, const Proof &proof, const BF &evaluation_input_x, const BF &batching_challenge_v, const BF &accumulated_result, const std::array< Commitment, TranslatorFlavor::NUM_OP_QUEUE_WIRES > &op_queue_wire_commitments) | |
| Unified constructor for both native and recursive verification. | |
| ReductionResult | reduce_to_pairing_check () |
| Reduce the translator proof to a pairing check. | |
| std::shared_ptr< VerificationKey > | get_verification_key () const |
| Get the verification key. | |
Static Public Attributes | |
| static constexpr bool | IsRecursive = Curve::is_stdlib_type |
Private Member Functions | |
| void | put_translation_data_in_relation_parameters () |
| Populate relation parameters with translation data from ECCVM verifier. | |
Private Attributes | |
| std::shared_ptr< VerificationKey > | key |
| FF | vk_hash |
| std::shared_ptr< Transcript > | transcript |
| Proof | proof |
| RelationParams | relation_parameters |
| BF | evaluation_input_x |
| BF | batching_challenge_v |
| BF | accumulated_result |
| std::array< Commitment, TranslatorFlavor::NUM_OP_QUEUE_WIRES > | op_queue_wire_commitments |
| std::conditional_t< IsRecursive, Builder *, void * > | builder = nullptr |
Translator verifier class that verifies the proof of the Translator circuit.
| Flavor | Either TranslatorFlavor (native) or TranslatorRecursiveFlavor (recursive) |
Definition at line 23 of file translator_verifier.hpp.
| using bb::TranslatorVerifier_< Flavor >::BF = typename Flavor::BF |
Definition at line 26 of file translator_verifier.hpp.
| using bb::TranslatorVerifier_< Flavor >::Builder = std::conditional_t<IsRecursive, typename Flavor::CircuitBuilder, void> |
Definition at line 36 of file translator_verifier.hpp.
| using bb::TranslatorVerifier_< Flavor >::Commitment = typename Flavor::Commitment |
Definition at line 28 of file translator_verifier.hpp.
| using bb::TranslatorVerifier_< Flavor >::CommitmentLabels = typename Flavor::CommitmentLabels |
Definition at line 31 of file translator_verifier.hpp.
| using bb::TranslatorVerifier_< Flavor >::Curve = typename Flavor::Curve |
Definition at line 27 of file translator_verifier.hpp.
| using bb::TranslatorVerifier_< Flavor >::FF = typename Flavor::FF |
Definition at line 25 of file translator_verifier.hpp.
| using bb::TranslatorVerifier_< Flavor >::PairingPoints = std::conditional_t<IsRecursive, stdlib::recursion::PairingPoints<Curve>, bb::PairingPoints<Curve> > |
Definition at line 39 of file translator_verifier.hpp.
| using bb::TranslatorVerifier_< Flavor >::Proof = std::conditional_t<IsRecursive, stdlib::Proof<Builder>, HonkProof> |
Definition at line 43 of file translator_verifier.hpp.
| using bb::TranslatorVerifier_< Flavor >::RelationParams = RelationParameters<FF> |
Definition at line 33 of file translator_verifier.hpp.
| using bb::TranslatorVerifier_< Flavor >::Transcript = typename Flavor::Transcript |
Definition at line 32 of file translator_verifier.hpp.
| using bb::TranslatorVerifier_< Flavor >::VerificationKey = typename Flavor::VerificationKey |
Definition at line 29 of file translator_verifier.hpp.
| using bb::TranslatorVerifier_< Flavor >::VerifierCommitments = typename Flavor::VerifierCommitments |
Definition at line 30 of file translator_verifier.hpp.
|
inline |
Unified constructor for both native and recursive verification.
For recursive case, extracts builder from proof elements via get_context(). TranslatorFlavor VK is constant, so it's default-constructed.
| transcript | Transcript for proof verification |
| proof | The translator proof |
| evaluation_input_x | Challenge point for polynomial evaluation (from ECCVM) |
| batching_challenge_v | Challenge for batching translation polynomials (from ECCVM) |
| accumulated_result | The accumulated result from ECCVM verifier |
| op_queue_wire_commitments | Commitments to op queue wires from merge protocol |
Definition at line 67 of file translator_verifier.hpp.
|
inline |
Get the verification key.
Definition at line 114 of file translator_verifier.hpp.
|
private |
Populate relation parameters with translation data from ECCVM verifier.
Converts the translation challenges and accumulated result into limbs.
Definition at line 122 of file translator_verifier.cpp.
| TranslatorVerifier_< Flavor >::ReductionResult bb::TranslatorVerifier_< Flavor >::reduce_to_pairing_check | ( | ) |
Reduce the translator proof to a pairing check.
Verify the TranslatorFlavor Honk proof.
Verifies the Translator circuit's internal checks (sumcheck, Libra evaluations consistency) and reduces all polynomial opening claims to a KZG pairing check. This method does NOT perform the final pairing verification - it returns pairing points that must be verified externally.
The Translator proves correct translation between BN254 and Grumpkin curve operations. It bridges the ECCVM (which operates on Grumpkin) with the main circuit constraints (which operate on BN254).
This function verifies the Translator circuit which ensures consistency between the ECCVM transcript and the op queue data. Returns verification result with pairing points and check status.
Definition at line 134 of file translator_verifier.cpp.
|
private |
Definition at line 126 of file translator_verifier.hpp.
|
private |
Definition at line 125 of file translator_verifier.hpp.
|
private |
Definition at line 130 of file translator_verifier.hpp.
|
private |
Definition at line 124 of file translator_verifier.hpp.
|
staticconstexpr |
Definition at line 35 of file translator_verifier.hpp.
|
private |
Definition at line 117 of file translator_verifier.hpp.
|
private |
Definition at line 127 of file translator_verifier.hpp.
|
private |
Definition at line 120 of file translator_verifier.hpp.
|
private |
Definition at line 121 of file translator_verifier.hpp.
|
private |
Definition at line 119 of file translator_verifier.hpp.
|
private |
Definition at line 118 of file translator_verifier.hpp.