Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
ChonkTests Class Reference
Inheritance diagram for ChonkTests:
KernelIOTamperingTests

Public Types

using AccumulateHook = std::function< void(Chonk &, size_t)>
 Hook fired after each accumulate() inside run_ivc.
 

Static Public Member Functions

static void tamper_with_proof (HonkProof &proof, size_t public_inputs_offset)
 Tamper with a proof.
 
static std::pair< ChonkProof, std::shared_ptr< MegaZKFlavor::VKAndHash > > run_ivc (size_t num_app_circuits, TestSettings settings={}, const AccumulateHook &post_hook=nullptr, bool check_circuit_sizes=false)
 
static std::pair< ChonkProof, std::shared_ptr< MegaZKFlavor::VKAndHash > > run_ivc (std::vector< bool > leading_is_kernel_flags, TestSettings settings={}, const AccumulateHook &post_hook=nullptr, bool check_circuit_sizes=false)
 
static std::pair< ChonkProof, std::shared_ptr< MegaZKFlavor::VKAndHash > > accumulate_and_prove_ivc (size_t num_app_circuits, TestSettings settings={}, bool check_circuit_sizes=false)
 
static bool verify_chonk (const ChonkProof &proof, const std::shared_ptr< MegaZKFlavor::VKAndHash > &vk_and_hash)
 
static void test_app_io_tampering ()
 Helper function to test tampering with AppIO pairing inputs.
 
static void test_kernel_io_tampering (KernelIOField field_to_tamper)
 Helper function to test tampering with KernelIO fields.
 

Protected Types

using FF = Chonk::FF
 
using Commitment = Chonk::Commitment
 
using Builder = Chonk::ClientCircuit
 
using DeciderProver = Chonk::DeciderProver
 
using CircuitProducer = PrivateFunctionExecutionMockCircuitProducer
 
using ChonkVerifier = ChonkNativeVerifier
 

Static Protected Member Functions

static void SetUpTestSuite ()
 

Static Private Member Functions

static std::pair< ChonkProof, std::shared_ptr< MegaZKFlavor::VKAndHash > > run_ivc_impl (CircuitProducer &circuit_producer, TestSettings settings, const AccumulateHook &post_hook, bool check_circuit_sizes)
 

Detailed Description

Definition at line 43 of file chonk.test.cpp.

Member Typedef Documentation

◆ AccumulateHook

using ChonkTests::AccumulateHook = std::function<void(Chonk&, size_t)>

Hook fired after each accumulate() inside run_ivc.

Definition at line 58 of file chonk.test.cpp.

◆ Builder

Definition at line 49 of file chonk.test.cpp.

◆ ChonkVerifier

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

◆ CircuitProducer

using ChonkTests::CircuitProducer = PrivateFunctionExecutionMockCircuitProducer
protected

Definition at line 51 of file chonk.test.cpp.

◆ Commitment

Definition at line 48 of file chonk.test.cpp.

◆ DeciderProver

Definition at line 50 of file chonk.test.cpp.

◆ FF

using ChonkTests::FF = Chonk::FF
protected

Definition at line 47 of file chonk.test.cpp.

Member Function Documentation

◆ accumulate_and_prove_ivc()

static std::pair< ChonkProof, std::shared_ptr< MegaZKFlavor::VKAndHash > > ChonkTests::accumulate_and_prove_ivc ( size_t  num_app_circuits,
TestSettings  settings = {},
bool  check_circuit_sizes = false 
)
inlinestatic

Definition at line 98 of file chonk.test.cpp.

◆ run_ivc() [1/2]

static std::pair< ChonkProof, std::shared_ptr< MegaZKFlavor::VKAndHash > > ChonkTests::run_ivc ( size_t  num_app_circuits,
TestSettings  settings = {},
const AccumulateHook post_hook = nullptr,
bool  check_circuit_sizes = false 
)
inlinestatic

Definition at line 78 of file chonk.test.cpp.

◆ run_ivc() [2/2]

static std::pair< ChonkProof, std::shared_ptr< MegaZKFlavor::VKAndHash > > ChonkTests::run_ivc ( std::vector< bool >  leading_is_kernel_flags,
TestSettings  settings = {},
const AccumulateHook post_hook = nullptr,
bool  check_circuit_sizes = false 
)
inlinestatic

Definition at line 88 of file chonk.test.cpp.

◆ run_ivc_impl()

static std::pair< ChonkProof, std::shared_ptr< MegaZKFlavor::VKAndHash > > ChonkTests::run_ivc_impl ( CircuitProducer circuit_producer,
TestSettings  settings,
const AccumulateHook post_hook,
bool  check_circuit_sizes 
)
inlinestaticprivate

Definition at line 193 of file chonk.test.cpp.

◆ SetUpTestSuite()

static void ChonkTests::SetUpTestSuite ( )
inlinestaticprotected

Definition at line 45 of file chonk.test.cpp.

◆ tamper_with_proof()

static void ChonkTests::tamper_with_proof ( HonkProof proof,
size_t  public_inputs_offset 
)
inlinestatic

Tamper with a proof.

The first value in the proof after the public inputs is the commitment to the wire w.l (see OinkProver). We modify the commitment by adding Commitment::one().

Definition at line 66 of file chonk.test.cpp.

◆ test_app_io_tampering()

static void ChonkTests::test_app_io_tampering ( )
inlinestatic

Helper function to test tampering with AppIO pairing inputs.

Accumulates circuits, changes the app pairing points (creating valid but different points), and verifies that the final Chonk proof fails verification.

Definition at line 115 of file chonk.test.cpp.

◆ test_kernel_io_tampering()

static void ChonkTests::test_kernel_io_tampering ( KernelIOField  field_to_tamper)
inlinestatic

Helper function to test tampering with KernelIO fields.

Accumulates circuits, tampers with the specified field in the Init Kernel proof, and verifies that the final Chonk proof fails verification.

Definition at line 146 of file chonk.test.cpp.

◆ verify_chonk()

static bool ChonkTests::verify_chonk ( const ChonkProof proof,
const std::shared_ptr< MegaZKFlavor::VKAndHash > &  vk_and_hash 
)
inlinestatic

Definition at line 104 of file chonk.test.cpp.


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