Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::stdlib::recursion::honk Namespace Reference

Classes

class  AppIOSerde
 Native representation and serde for AppIO public inputs. More...
 
class  BoomerangGoblinAvmRecursiveVerifierTests
 
class  BoomerangGoblinRecursiveVerifierTests
 
class  BoomerangTwoLayerAvmRecursiveVerifierTests
 
class  ChonkRecursionTests
 
class  DefaultIO
 Manages the data that is propagated on the public inputs of an application/function circuit. More...
 
class  GoblinAvmIO
 The data that is propagated on the public inputs of the inner GoblinAvmRecursiveVerifier circuit. More...
 
class  GoblinAvmRecursiveVerifierTests
 
class  GoblinRecursiveVerifierTests
 
class  HidingKernelIO
 Manages the data that is propagated on the public inputs of a hiding kernel circuit. More...
 
class  HidingKernelIOSerde
 Native representation and serde for HidingKernelIO public inputs. More...
 
struct  IpaAccumulator
 
class  KernelIO
 Manages the data that is propagated on the public inputs of a kernel circuit. More...
 
class  KernelIOSerde
 For test purposes only: Native representation and serde for KernelIO public inputs More...
 
class  RecursiveVerifierTest
 Test suite for recursive verification of Honk proofs for both Ultra and Mega arithmetisation. More...
 
struct  RecursiveVerifierTestParams
 
class  RollupIO
 The data that is propagated on the public inputs of a rollup circuit. More...
 
class  SpecialPublicInputsTests
 
struct  UltraRecursiveVerifierOutput
 Output type for recursive ultra verification. More...
 

Typedefs

using TestConfigs = testing::Types< RecursiveVerifierTestParams< MegaRecursiveFlavor_< MegaCircuitBuilder >, DefaultIO< MegaCircuitBuilder > >, RecursiveVerifierTestParams< MegaRecursiveFlavor_< UltraCircuitBuilder >, DefaultIO< UltraCircuitBuilder > >, RecursiveVerifierTestParams< UltraRecursiveFlavor_< UltraCircuitBuilder >, DefaultIO< UltraCircuitBuilder > >, RecursiveVerifierTestParams< UltraRecursiveFlavor_< UltraCircuitBuilder >, RollupIO >, RecursiveVerifierTestParams< UltraRecursiveFlavor_< MegaCircuitBuilder >, DefaultIO< MegaCircuitBuilder > >, RecursiveVerifierTestParams< UltraZKRecursiveFlavor_< UltraCircuitBuilder >, DefaultIO< UltraCircuitBuilder > >, RecursiveVerifierTestParams< UltraZKRecursiveFlavor_< MegaCircuitBuilder >, DefaultIO< MegaCircuitBuilder > >, RecursiveVerifierTestParams< MegaZKRecursiveFlavor_< MegaCircuitBuilder >, DefaultIO< MegaCircuitBuilder > >, RecursiveVerifierTestParams< MegaZKRecursiveFlavor_< UltraCircuitBuilder >, DefaultIO< UltraCircuitBuilder > > >
 
using AppIO = DefaultIO< MegaCircuitBuilder >
 The data that is propagated on the public inputs of an application/function circuit.
 

Functions

 TEST_F (BoomerangGoblinRecursiveVerifierTests, graph_description_basic)
 Construct and check a goblin recursive verification circuit.
 
 TEST_F (BoomerangGoblinAvmRecursiveVerifierTests, graph_description_basic)
 Construct and check a goblin recursive verification circuit.
 
 TEST_F (ChonkRecursionTests, NativeVerification)
 Ensure the Chonk proof used herein can be natively verified.
 
 TEST_F (ChonkRecursionTests, Basic)
 Construct and Check a recursive Chonk verification circuit.
 
 TEST_F (GoblinRecursiveVerifierTests, NativeVerification)
 Ensure the Goblin proof produced by the test method can be natively verified.
 
 TEST_F (GoblinRecursiveVerifierTests, Basic)
 Construct and check a goblin recursive verification circuit.
 
 TEST_F (GoblinRecursiveVerifierTests, IndependentVKHash)
 
 TEST_F (GoblinRecursiveVerifierTests, MergeToTranslatorBindingFailure)
 Tampered merge commitments cause the Translator pairing check to fail.
 
 TEST_F (GoblinRecursiveVerifierTests, ECCVMToTranslatorBindingFailure)
 Tampered ECCVM translation evaluations cause the Translator circuit to fail.
 
 TEST_F (GoblinAvmRecursiveVerifierTests, Basic)
 Construct and check a goblin recursive verification circuit.
 
 TEST_F (GoblinAvmRecursiveVerifierTests, ECCVMFailure)
 Ensure failure of the goblin recursive verification circuit for a bad ECCVM proof.
 
 TEST_F (GoblinAvmRecursiveVerifierTests, TranslatorFailure)
 Ensure failure of the goblin recursive verification circuit for a bad Translator proof.
 
 TEST_F (GoblinAvmRecursiveVerifierTests, TranslationEvaluationsFailure)
 Ensure failure of the goblin recursive verification circuit for bad translation evaluations.
 
 TYPED_TEST_SUITE (RecursiveVerifierTest, TestConfigs)
 
 HEAVY_TYPED_TEST (RecursiveVerifierTest, InnerCircuit)
 
 HEAVY_TYPED_TEST (RecursiveVerifierTest, RecursiveVerificationKey)
 
 HEAVY_TYPED_TEST (RecursiveVerifierTest, SingleRecursiveVerification)
 
 HEAVY_TYPED_TEST (RecursiveVerifierTest, IndependentVKHash)
 
 HEAVY_TYPED_TEST (RecursiveVerifierTest, SingleRecursiveVerificationFailure)
 
 HEAVY_TYPED_TEST (RecursiveVerifierTest, GraphAnalysisOfRecursiveVerifier)
 Test recursive verification circuit with graph analysis for unconstrained variables.
 
template<typename Builder >
std::array< typename bn254< Builder >::Group, Builder::NUM_WIRES > empty_ecc_op_tables (Builder &builder)
 Construct commitments to empty subtables.
 
 TEST_F (SpecialPublicInputsTests, Basic)
 
 TEST_F (SpecialPublicInputsTests, Default)
 
 TEST_F (SpecialPublicInputsTests, RollUpIO)
 
 TEST_F (SpecialPublicInputsTests, HidingKernel)
 
 TEST_F (BoomerangTwoLayerAvmRecursiveVerifierTests, graph_description_basic)
 Construct and check a goblin recursive verification circuit.
 

Typedef Documentation

◆ AppIO

The data that is propagated on the public inputs of an application/function circuit.

Definition at line 210 of file special_public_inputs.hpp.

◆ TestConfigs

Function Documentation

◆ empty_ecc_op_tables()

template<typename Builder >
std::array< typename bn254< Builder >::Group, Builder::NUM_WIRES > bb::stdlib::recursion::honk::empty_ecc_op_tables ( Builder builder)

Construct commitments to empty subtables.

In the first iteration of the Merge, the verifier sets the commitments to the previous full state of the op_queue equal to the commitments to the empty tables. This ensures that prover cannot lie, as the starting point of the merge is fixed.

Parameters
builder
Returns
std::array<typename bn254<Builder>::Group, Builder::NUM_WIRES>

Definition at line 44 of file special_public_inputs.hpp.

◆ HEAVY_TYPED_TEST() [1/6]

bb::stdlib::recursion::honk::HEAVY_TYPED_TEST ( RecursiveVerifierTest  ,
GraphAnalysisOfRecursiveVerifier   
)

Test recursive verification circuit with graph analysis for unconstrained variables.

Uses StaticAnalyzer to verify all circuit variables are properly constrained. Originally a separate test in graph_description_ultra_recursive_verifier.test.cpp, now consolidated into the main recursive verifier test suite.

Definition at line 506 of file honk_recursive_verifier.test.cpp.

◆ HEAVY_TYPED_TEST() [2/6]

bb::stdlib::recursion::honk::HEAVY_TYPED_TEST ( RecursiveVerifierTest  ,
IndependentVKHash   
)

Definition at line 482 of file honk_recursive_verifier.test.cpp.

◆ HEAVY_TYPED_TEST() [3/6]

bb::stdlib::recursion::honk::HEAVY_TYPED_TEST ( RecursiveVerifierTest  ,
InnerCircuit   
)

Definition at line 467 of file honk_recursive_verifier.test.cpp.

◆ HEAVY_TYPED_TEST() [4/6]

bb::stdlib::recursion::honk::HEAVY_TYPED_TEST ( RecursiveVerifierTest  ,
RecursiveVerificationKey   
)

Definition at line 472 of file honk_recursive_verifier.test.cpp.

◆ HEAVY_TYPED_TEST() [5/6]

bb::stdlib::recursion::honk::HEAVY_TYPED_TEST ( RecursiveVerifierTest  ,
SingleRecursiveVerification   
)

Definition at line 477 of file honk_recursive_verifier.test.cpp.

◆ HEAVY_TYPED_TEST() [6/6]

bb::stdlib::recursion::honk::HEAVY_TYPED_TEST ( RecursiveVerifierTest  ,
SingleRecursiveVerificationFailure   
)

Definition at line 495 of file honk_recursive_verifier.test.cpp.

◆ TEST_F() [1/18]

bb::stdlib::recursion::honk::TEST_F ( BoomerangGoblinAvmRecursiveVerifierTests  ,
graph_description_basic   
)

Construct and check a goblin recursive verification circuit.

Definition at line 84 of file graph_description_goblin_avm.test.cpp.

◆ TEST_F() [2/18]

bb::stdlib::recursion::honk::TEST_F ( BoomerangGoblinRecursiveVerifierTests  ,
graph_description_basic   
)

Construct and check a goblin recursive verification circuit.

Definition at line 69 of file graph_description_goblin.test.cpp.

◆ TEST_F() [3/18]

bb::stdlib::recursion::honk::TEST_F ( BoomerangTwoLayerAvmRecursiveVerifierTests  ,
graph_description_basic   
)

Construct and check a goblin recursive verification circuit.

Definition at line 53 of file graph_description_two_layer_avm_recursive_verifier.test.cpp.

◆ TEST_F() [4/18]

bb::stdlib::recursion::honk::TEST_F ( ChonkRecursionTests  ,
Basic   
)

Construct and Check a recursive Chonk verification circuit.

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

◆ TEST_F() [5/18]

bb::stdlib::recursion::honk::TEST_F ( ChonkRecursionTests  ,
NativeVerification   
)

Ensure the Chonk proof used herein can be natively verified.

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

◆ TEST_F() [6/18]

bb::stdlib::recursion::honk::TEST_F ( GoblinAvmRecursiveVerifierTests  ,
Basic   
)

Construct and check a goblin recursive verification circuit.

Definition at line 121 of file goblin_verifier.test.cpp.

◆ TEST_F() [7/18]

bb::stdlib::recursion::honk::TEST_F ( GoblinAvmRecursiveVerifierTests  ,
ECCVMFailure   
)

Ensure failure of the goblin recursive verification circuit for a bad ECCVM proof.

Definition at line 164 of file goblin_verifier.test.cpp.

◆ TEST_F() [8/18]

bb::stdlib::recursion::honk::TEST_F ( GoblinAvmRecursiveVerifierTests  ,
TranslationEvaluationsFailure   
)

Ensure failure of the goblin recursive verification circuit for bad translation evaluations.

Definition at line 249 of file goblin_verifier.test.cpp.

◆ TEST_F() [9/18]

bb::stdlib::recursion::honk::TEST_F ( GoblinAvmRecursiveVerifierTests  ,
TranslatorFailure   
)

Ensure failure of the goblin recursive verification circuit for a bad Translator proof.

Definition at line 200 of file goblin_verifier.test.cpp.

◆ TEST_F() [10/18]

bb::stdlib::recursion::honk::TEST_F ( GoblinRecursiveVerifierTests  ,
Basic   
)

Construct and check a goblin recursive verification circuit.

Definition at line 126 of file goblin_verifier.test.cpp.

◆ TEST_F() [11/18]

bb::stdlib::recursion::honk::TEST_F ( GoblinRecursiveVerifierTests  ,
ECCVMToTranslatorBindingFailure   
)

Tampered ECCVM translation evaluations cause the Translator circuit to fail.

Tests the ECCVM-Translator cross-component connection: translation evaluations (op, Px, Py, z1, z2) from the ECCVM proof become accumulated_result in the Translator verifier. Tampering with these causes the Translator's relation constraints to fail in-circuit.

Definition at line 268 of file goblin_verifier.test.cpp.

◆ TEST_F() [12/18]

bb::stdlib::recursion::honk::TEST_F ( GoblinRecursiveVerifierTests  ,
IndependentVKHash   
)

Definition at line 171 of file goblin_verifier.test.cpp.

◆ TEST_F() [13/18]

bb::stdlib::recursion::honk::TEST_F ( GoblinRecursiveVerifierTests  ,
MergeToTranslatorBindingFailure   
)

Tampered merge commitments cause the Translator pairing check to fail.

Tests the Merge-Translator cross-component connection: merge_commitments flow into the Translator verifier as op queue wire commitments. A mismatch causes the KZG pairing check to fail (not a circuit failure).

Definition at line 222 of file goblin_verifier.test.cpp.

◆ TEST_F() [14/18]

bb::stdlib::recursion::honk::TEST_F ( GoblinRecursiveVerifierTests  ,
NativeVerification   
)

Ensure the Goblin proof produced by the test method can be natively verified.

Definition at line 102 of file goblin_verifier.test.cpp.

◆ TEST_F() [15/18]

bb::stdlib::recursion::honk::TEST_F ( SpecialPublicInputsTests  ,
Basic   
)

Definition at line 13 of file special_public_inputs.test.cpp.

◆ TEST_F() [16/18]

bb::stdlib::recursion::honk::TEST_F ( SpecialPublicInputsTests  ,
Default   
)

Definition at line 89 of file special_public_inputs.test.cpp.

◆ TEST_F() [17/18]

bb::stdlib::recursion::honk::TEST_F ( SpecialPublicInputsTests  ,
HidingKernel   
)

Definition at line 246 of file special_public_inputs.test.cpp.

◆ TEST_F() [18/18]

bb::stdlib::recursion::honk::TEST_F ( SpecialPublicInputsTests  ,
RollUpIO   
)

Definition at line 158 of file special_public_inputs.test.cpp.

◆ TYPED_TEST_SUITE()

bb::stdlib::recursion::honk::TYPED_TEST_SUITE ( RecursiveVerifierTest  ,
TestConfigs   
)