Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::stdlib::recursion::honk::ProtogalaxyRecursiveTests Class Reference
Inheritance diagram for bb::stdlib::recursion::honk::ProtogalaxyRecursiveTests:

Public Types

using RecursiveFlavor = MegaRecursiveFlavor_< MegaCircuitBuilder >
 
using InnerFlavor = RecursiveFlavor::NativeFlavor
 
using InnerProver = UltraProver_< InnerFlavor >
 
using InnerVerifier = UltraVerifier_< InnerFlavor >
 
using InnerBuilder = InnerFlavor::CircuitBuilder
 
using InnerDeciderProvingKey = DeciderProvingKey_< InnerFlavor >
 
using InnerDeciderVerificationKey = ::bb::DeciderVerificationKey_< InnerFlavor >
 
using InnerVerificationKey = InnerFlavor::VerificationKey
 
using InnerCurve = bn254< InnerBuilder >
 
using Commitment = InnerFlavor::Commitment
 
using FF = InnerFlavor::FF
 
using OuterBuilder = RecursiveFlavor::CircuitBuilder
 
using OuterFlavor = MegaFlavor
 
using OuterProver = UltraProver_< OuterFlavor >
 
using OuterVerifier = UltraVerifier_< OuterFlavor >
 
using OuterDeciderProvingKey = DeciderProvingKey_< OuterFlavor >
 
using RecursiveDeciderVerificationKeys = ::bb::stdlib::recursion::honk::RecursiveDeciderVerificationKeys_< RecursiveFlavor, 2 >
 
using RecursiveDeciderVerificationKey = RecursiveDeciderVerificationKeys::DeciderVK
 
using RecursiveVerificationKey = RecursiveDeciderVerificationKeys::VerificationKey
 
using RecursiveVKAndHash = RecursiveDeciderVerificationKeys::VKAndHash
 
using FoldingRecursiveVerifier = ProtogalaxyRecursiveVerifier_< RecursiveDeciderVerificationKeys >
 
using DeciderRecursiveVerifier = DeciderRecursiveVerifier_< RecursiveFlavor >
 
using InnerDeciderProver = DeciderProver_< InnerFlavor >
 
using InnerDeciderVerifier = DeciderVerifier_< InnerFlavor >
 
using InnerDeciderVerificationKeys = DeciderVerificationKeys_< InnerFlavor, 2 >
 
using InnerFoldingVerifier = ProtogalaxyVerifier_< InnerDeciderVerificationKeys >
 
using InnerFoldingProver = ProtogalaxyProver_< InnerFlavor >
 

Static Public Member Functions

static void SetUpTestSuite ()
 
static void create_function_circuit (InnerBuilder &builder, size_t log_num_gates=10)
 Create a non-trivial arbitrary inner circuit, the proof of which will be recursively verified.
 
static std::tuple< std::shared_ptr< InnerDeciderProvingKey >, std::shared_ptr< InnerDeciderVerificationKey > > fold_and_verify_native ()
 
static void test_circuit ()
 Create inner circuit and call check_circuit on it.
 
static void test_new_evaluate ()
 Ensure that evaluating the perturbator in the recursive folding verifier returns the same result as evaluating in Polynomial class.
 
static void test_recursive_folding (const size_t num_verifiers=1)
 Tests that a valid recursive fold works as expected.
 
static void test_full_protogalaxy_recursive ()
 Perform two rounds of folding valid circuits and then recursive verify the final decider proof, make sure the verifer circuits pass check_circuit(). Ensure that the algorithm of the recursive and native verifiers are identical by checking the manifests.
 
static void test_tampered_decider_proof ()
 
static void test_tampered_accumulator ()
 
static void test_constant_pg_verifier_circuit ()
 

Detailed Description

Definition at line 17 of file protogalaxy_recursive_verifier.test.cpp.

Member Typedef Documentation

◆ Commitment

◆ DeciderRecursiveVerifier

◆ FF

◆ FoldingRecursiveVerifier

◆ InnerBuilder

◆ InnerCurve

◆ InnerDeciderProver

◆ InnerDeciderProvingKey

◆ InnerDeciderVerificationKey

◆ InnerDeciderVerificationKeys

◆ InnerDeciderVerifier

◆ InnerFlavor

◆ InnerFoldingProver

◆ InnerFoldingVerifier

◆ InnerProver

◆ InnerVerificationKey

◆ InnerVerifier

◆ OuterBuilder

◆ OuterDeciderProvingKey

◆ OuterFlavor

◆ OuterProver

◆ OuterVerifier

◆ RecursiveDeciderVerificationKey

◆ RecursiveDeciderVerificationKeys

◆ RecursiveFlavor

◆ RecursiveVerificationKey

◆ RecursiveVKAndHash

Member Function Documentation

◆ create_function_circuit()

static void bb::stdlib::recursion::honk::ProtogalaxyRecursiveTests::create_function_circuit ( InnerBuilder builder,
size_t  log_num_gates = 10 
)
inlinestatic

Create a non-trivial arbitrary inner circuit, the proof of which will be recursively verified.

Parameters
builder
public_inputs
log_num_gates

TODO(https://github.com/AztecProtocol/barretenberg/issues/744): make testing utility with functionality shared amongst test files

Definition at line 63 of file protogalaxy_recursive_verifier.test.cpp.

◆ fold_and_verify_native()

static std::tuple< std::shared_ptr< InnerDeciderProvingKey >, std::shared_ptr< InnerDeciderVerificationKey > > bb::stdlib::recursion::honk::ProtogalaxyRecursiveTests::fold_and_verify_native ( )
inlinestatic

Definition at line 114 of file protogalaxy_recursive_verifier.test.cpp.

◆ SetUpTestSuite()

static void bb::stdlib::recursion::honk::ProtogalaxyRecursiveTests::SetUpTestSuite ( )
inlinestatic

Definition at line 52 of file protogalaxy_recursive_verifier.test.cpp.

◆ test_circuit()

static void bb::stdlib::recursion::honk::ProtogalaxyRecursiveTests::test_circuit ( )
inlinestatic

Create inner circuit and call check_circuit on it.

Definition at line 142 of file protogalaxy_recursive_verifier.test.cpp.

◆ test_constant_pg_verifier_circuit()

static void bb::stdlib::recursion::honk::ProtogalaxyRecursiveTests::test_constant_pg_verifier_circuit ( )
inlinestatic

Definition at line 443 of file protogalaxy_recursive_verifier.test.cpp.

◆ test_full_protogalaxy_recursive()

static void bb::stdlib::recursion::honk::ProtogalaxyRecursiveTests::test_full_protogalaxy_recursive ( )
inlinestatic

Perform two rounds of folding valid circuits and then recursive verify the final decider proof, make sure the verifer circuits pass check_circuit(). Ensure that the algorithm of the recursive and native verifiers are identical by checking the manifests.

Definition at line 281 of file protogalaxy_recursive_verifier.test.cpp.

◆ test_new_evaluate()

static void bb::stdlib::recursion::honk::ProtogalaxyRecursiveTests::test_new_evaluate ( )
inlinestatic

Ensure that evaluating the perturbator in the recursive folding verifier returns the same result as evaluating in Polynomial class.

Definition at line 157 of file protogalaxy_recursive_verifier.test.cpp.

◆ test_recursive_folding()

static void bb::stdlib::recursion::honk::ProtogalaxyRecursiveTests::test_recursive_folding ( const size_t  num_verifiers = 1)
inlinestatic

Tests that a valid recursive fold works as expected.

Definition at line 183 of file protogalaxy_recursive_verifier.test.cpp.

◆ test_tampered_accumulator()

static void bb::stdlib::recursion::honk::ProtogalaxyRecursiveTests::test_tampered_accumulator ( )
inlinestatic

Definition at line 402 of file protogalaxy_recursive_verifier.test.cpp.

◆ test_tampered_decider_proof()

static void bb::stdlib::recursion::honk::ProtogalaxyRecursiveTests::test_tampered_decider_proof ( )
inlinestatic

Definition at line 379 of file protogalaxy_recursive_verifier.test.cpp.


The documentation for this class was generated from the following file: