Barretenberg
The ZK-SNARK library at the core of Aztec
|
Test suite for recursive verification of Goblin Merge proofs. More...
Static Public Member Functions | |
static void | SetUpTestSuite () |
static void | tamper_with_proof (MergeProof &merge_proof, const TamperProofMode tampering_mode) |
static void | prove_and_verify_merge (const std::shared_ptr< ECCOpQueue > &op_queue, const MergeSettings settings=MergeSettings::PREPEND, const TamperProofMode tampering_mode=TamperProofMode::None, const bool expected=true) |
static void | test_degree_check_failure () |
Test failure when degree(l) > shift_size (as read from the proof) | |
static void | test_merge_failure () |
Test failure when m \neq l + X^k r. | |
static void | test_eval_failure () |
Test failure g_j(kappa) = kappa^{k-1} * l_j(1/kappa) | |
static void | test_recursive_merge_verification () |
Test recursive merge verification for the ops generated by several sample circuit, both prepended and appended. | |
Private Types | |
enum class | TamperProofMode { None , Shift , MCommitment , LEval } |
using | RecursiveMergeVerifier = MergeRecursiveVerifier_< RecursiveBuilder > |
using | RecursiveTableCommitments = MergeRecursiveVerifier_< RecursiveBuilder >::TableCommitments |
using | RecursiveMergeCommitments = MergeRecursiveVerifier_< RecursiveBuilder >::InputCommitments |
using | InnerFlavor = MegaFlavor |
using | InnerDeciderProvingKey = DeciderProvingKey_< InnerFlavor > |
using | InnerBuilder = typename InnerFlavor::CircuitBuilder |
using | Commitment = InnerFlavor::Commitment |
using | FF = InnerFlavor::FF |
using | VerifierCommitmentKey = bb::VerifierCommitmentKey< curve::BN254 > |
using | MergeProof = MergeProver::MergeProof |
using | TableCommitments = MergeVerifier::TableCommitments |
using | MergeCommitments = MergeVerifier::InputCommitments |
Test suite for recursive verification of Goblin Merge proofs.
The recursive verification circuit is arithmetized using Goblin-style Ultra arithmetization (MegaCircuitBuilder).
Builder |
Definition at line 21 of file merge_verifier.test.cpp.
|
private |
Definition at line 34 of file merge_verifier.test.cpp.
|
private |
Definition at line 35 of file merge_verifier.test.cpp.
|
private |
Definition at line 31 of file merge_verifier.test.cpp.
|
private |
Definition at line 30 of file merge_verifier.test.cpp.
|
private |
Definition at line 29 of file merge_verifier.test.cpp.
|
private |
Definition at line 39 of file merge_verifier.test.cpp.
|
private |
Definition at line 37 of file merge_verifier.test.cpp.
|
private |
Definition at line 26 of file merge_verifier.test.cpp.
|
private |
Definition at line 24 of file merge_verifier.test.cpp.
|
private |
Definition at line 25 of file merge_verifier.test.cpp.
|
private |
Definition at line 38 of file merge_verifier.test.cpp.
|
private |
Definition at line 36 of file merge_verifier.test.cpp.
|
strongprivate |
Enumerator | |
---|---|
None | |
Shift | |
MCommitment | |
LEval |
Definition at line 41 of file merge_verifier.test.cpp.
|
inlinestatic |
Definition at line 79 of file merge_verifier.test.cpp.
|
inlinestatic |
Definition at line 44 of file merge_verifier.test.cpp.
|
inlinestatic |
Definition at line 46 of file merge_verifier.test.cpp.
|
inlinestatic |
Test failure when degree(l) > shift_size (as read from the proof)
Definition at line 137 of file merge_verifier.test.cpp.
|
inlinestatic |
Test failure g_j(kappa) = kappa^{k-1} * l_j(1/kappa)
Definition at line 161 of file merge_verifier.test.cpp.
|
inlinestatic |
Test failure when m \neq l + X^k r.
Definition at line 149 of file merge_verifier.test.cpp.
|
inlinestatic |
Test recursive merge verification for the ops generated by several sample circuit, both prepended and appended.
We construct and verify an Ultra Honk proof of the recursive merge verifier circuit to check its correctness rather than calling check_circuit since this functionality is incomplete for the Goblin arithmetization
Definition at line 177 of file merge_verifier.test.cpp.