|
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. | |
| VerifierCommitments | receive_pre_sumcheck () |
| Load translator proof and run the pre-sumcheck (Oink-like) phase on the shared transcript. | |
| 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. | |
Public Attributes | |
| RelationParams | relation_parameters |
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 |
| 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 119 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 123 of file translator_verifier.cpp.
| TranslatorVerifier_< Flavor >::VerifierCommitments bb::TranslatorVerifier_< Flavor >::receive_pre_sumcheck | ( | ) |
Load translator proof and run the pre-sumcheck (Oink-like) phase on the shared transcript.
Verify the TranslatorFlavor Honk proof.
Hashes the VK, sets relation parameters from ECCVM inputs, and receives wire/z_perm commitments and beta/gamma challenges. After this call, relation_parameters is populated.
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.
Load translator proof and run the pre-sumcheck (Oink-like) phase.
Hashes the VK, populates relation parameters from ECCVM inputs, and receives all wire commitments and beta/gamma challenges from the transcript. This phase corresponds to what OinkProver/OinkVerifier do for the hiding kernel: it is the pre-sumcheck setup that binds all committed data to the shared Fiat-Shamir transcript before the joint sumcheck.
Definition at line 142 of file translator_verifier.cpp.
| TranslatorVerifier_< Flavor >::ReductionResult bb::TranslatorVerifier_< Flavor >::reduce_to_pairing_check | ( | ) |
Reduce the translator proof to a pairing check.
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).
Definition at line 191 of file translator_verifier.cpp.
|
private |
Definition at line 133 of file translator_verifier.hpp.
|
private |
Definition at line 132 of file translator_verifier.hpp.
|
private |
Definition at line 137 of file translator_verifier.hpp.
|
private |
Definition at line 131 of file translator_verifier.hpp.
|
staticconstexpr |
Definition at line 35 of file translator_verifier.hpp.
|
private |
Definition at line 125 of file translator_verifier.hpp.
|
private |
Definition at line 134 of file translator_verifier.hpp.
|
private |
Definition at line 128 of file translator_verifier.hpp.
| RelationParams bb::TranslatorVerifier_< Flavor >::relation_parameters |
Definition at line 122 of file translator_verifier.hpp.
|
private |
Definition at line 127 of file translator_verifier.hpp.
|
private |
Definition at line 126 of file translator_verifier.hpp.