|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
Test suite for standalone recursive verification of translation proofs. More...
Classes | |
| struct | RecursiveVerifierInputs |
Public Types | |
| enum class | TamperType { MODIFY_SUMCHECK_UNIVARIATE , MODIFY_SUMCHECK_EVAL , MODIFY_KZG_WITNESS , MODIFY_LIBRA_EVAL , END } |
| using | RecursiveFlavor = TranslatorRecursiveFlavor |
| using | InnerFlavor = RecursiveFlavor::NativeFlavor |
| using | InnerBuilder = InnerFlavor::CircuitBuilder |
| using | InnerProvingKey = TranslatorProvingKey |
| using | InnerProver = TranslatorProver |
| using | InnerVerifier = TranslatorVerifier |
| using | InnerG1 = InnerFlavor::Commitment |
| using | InnerFF = InnerFlavor::FF |
| using | InnerBF = InnerFlavor::BF |
| using | RecursiveVerifier = TranslatorRecursiveVerifier |
| using | OuterBuilder = RecursiveFlavor::CircuitBuilder |
| using | OuterFlavor = std::conditional_t< IsMegaBuilder< OuterBuilder >, MegaFlavor, UltraFlavor > |
| using | OuterProver = UltraProver_< OuterFlavor > |
| using | OuterVerifier = UltraVerifier_< OuterFlavor, bb::DefaultIO > |
| using | OuterProverInstance = ProverInstance_< OuterFlavor > |
| using | TranslatorBF = TranslatorRecursiveFlavor::BF |
| using | Transcript = InnerFlavor::Transcript |
Static Public Member Functions | |
| static void | SetUpTestSuite () |
| static void | add_random_ops (std::shared_ptr< bb::ECCOpQueue > &op_queue, size_t count) |
| static void | add_mixed_ops (std::shared_ptr< bb::ECCOpQueue > &op_queue, size_t count=100) |
| static InnerBuilder | generate_test_circuit (const InnerBF &batching_challenge_v, const InnerBF &evaluation_challenge_x, const size_t circuit_size_parameter=500) |
| static std::array< InnerFlavor::Commitment, InnerFlavor::NUM_OP_QUEUE_WIRES > | create_native_op_queue_commitments (const std::shared_ptr< TranslatorProvingKey > &proving_key) |
| static std::array< RecursiveFlavor::Commitment, InnerFlavor::NUM_OP_QUEUE_WIRES > | create_stdlib_op_queue_commitments (OuterBuilder *builder, const std::array< InnerFlavor::Commitment, InnerFlavor::NUM_OP_QUEUE_WIRES > &native_comms) |
| static RecursiveVerifierInputs | create_recursive_verifier_inputs (OuterBuilder *builder, const InnerProver &prover, const InnerBF &evaluation_challenge_x, const InnerBF &batching_challenge_v) |
| static std::tuple< OuterBuilder, std::shared_ptr< OuterFlavor::VerificationKey > > | create_recursive_verifier_circuit (size_t circuit_size_parameter=500) |
| static void | test_recursive_verification () |
| static void | test_structured_proof_round_trip () |
| Verify that StructuredProof<TranslatorFlavor> can round-trip serialize/deserialize a proof. | |
| static void | tamper_translator_proof (InnerProver &prover, typename InnerFlavor::Transcript::Proof &proof, TamperType tamper_type) |
| static void | test_recursive_verification_fails () |
| static void | test_independent_vk_hash () |
| static void | test_static_analysis () |
| Static analysis (boomerang detection) of the translator recursive verifier circuit. | |
Test suite for standalone recursive verification of translation proofs.
Inner* types describe the type of circuits (and everything else required to generate a proof) that we aim to recursively verify. Outer* describes the arithmetisation of the recursive verifier circuit and the types required to ensure the recursive verifier circuit is correct (i.e. by producing a proof and verifying it).
Definition at line 21 of file translator_recursive_verifier.test.cpp.
Definition at line 31 of file translator_recursive_verifier.test.cpp.
Definition at line 25 of file translator_recursive_verifier.test.cpp.
Definition at line 30 of file translator_recursive_verifier.test.cpp.
Definition at line 24 of file translator_recursive_verifier.test.cpp.
Definition at line 29 of file translator_recursive_verifier.test.cpp.
Definition at line 27 of file translator_recursive_verifier.test.cpp.
Definition at line 26 of file translator_recursive_verifier.test.cpp.
Definition at line 28 of file translator_recursive_verifier.test.cpp.
Definition at line 35 of file translator_recursive_verifier.test.cpp.
| using bb::TranslatorRecursiveTests::OuterFlavor = std::conditional_t<IsMegaBuilder<OuterBuilder>, MegaFlavor, UltraFlavor> |
Definition at line 36 of file translator_recursive_verifier.test.cpp.
Definition at line 37 of file translator_recursive_verifier.test.cpp.
Definition at line 39 of file translator_recursive_verifier.test.cpp.
Definition at line 38 of file translator_recursive_verifier.test.cpp.
Definition at line 23 of file translator_recursive_verifier.test.cpp.
Definition at line 33 of file translator_recursive_verifier.test.cpp.
Definition at line 43 of file translator_recursive_verifier.test.cpp.
Definition at line 41 of file translator_recursive_verifier.test.cpp.
|
strong |
| Enumerator | |
|---|---|
| MODIFY_SUMCHECK_UNIVARIATE | |
| MODIFY_SUMCHECK_EVAL | |
| MODIFY_KZG_WITNESS | |
| MODIFY_LIBRA_EVAL | |
| END | |
Definition at line 270 of file translator_recursive_verifier.test.cpp.
|
inlinestatic |
Definition at line 56 of file translator_recursive_verifier.test.cpp.
|
inlinestatic |
Definition at line 48 of file translator_recursive_verifier.test.cpp.
|
inlinestatic |
Definition at line 88 of file translator_recursive_verifier.test.cpp.
|
inlinestatic |
Definition at line 154 of file translator_recursive_verifier.test.cpp.
|
inlinestatic |
Definition at line 128 of file translator_recursive_verifier.test.cpp.
|
inlinestatic |
Definition at line 104 of file translator_recursive_verifier.test.cpp.
|
inlinestatic |
Definition at line 69 of file translator_recursive_verifier.test.cpp.
|
inlinestatic |
Definition at line 45 of file translator_recursive_verifier.test.cpp.
|
inlinestatic |
Definition at line 278 of file translator_recursive_verifier.test.cpp.
|
inlinestatic |
Definition at line 362 of file translator_recursive_verifier.test.cpp.
|
inlinestatic |
Definition at line 223 of file translator_recursive_verifier.test.cpp.
|
inlinestatic |
Definition at line 313 of file translator_recursive_verifier.test.cpp.
|
inlinestatic |
Static analysis (boomerang detection) of the translator recursive verifier circuit.
Builds the recursive verifier circuit and checks that no variable appears in only one gate, which would indicate an unconstrained witness (potential soundness issue).
Definition at line 376 of file translator_recursive_verifier.test.cpp.
|
inlinestatic |
Verify that StructuredProof<TranslatorFlavor> can round-trip serialize/deserialize a proof.
Validates the field layout matches the actual Translator proof structure. This is the foundation for targeted proof tampering in SingleRecursiveVerificationFailure.
Definition at line 247 of file translator_recursive_verifier.test.cpp.