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

Classes

class  BoomerangGoblinRecursiveVerifierTests
 
class  BoomerangProtogalaxyRecursiveTests
 
class  BoomerangRecursiveVerifierTest
 Test suite for recursive verification of Honk proofs for both Ultra and Mega arithmetisation. More...
 
class  ClientIVCRecursionTests
 
class  ClientIVCRecursiveVerifier
 
class  DeciderRecursiveVerifier_
 
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  GoblinRecursiveVerifier
 
struct  GoblinRecursiveVerifierOutput
 
class  GoblinRecursiveVerifierTests
 
class  HidingKernelIO
 Manages the data that is propagated on the public inputs of a hiding kernel circuit. More...
 
struct  IpaAccumulator
 
class  KernelIO
 Manages the data that is propagated on the public inputs of a kernel circuit. More...
 
class  ProtogalaxyRecursiveTests
 
class  ProtogalaxyRecursiveVerifier_
 
class  RecursiveVerifierInstance_
 The stdlib counterpart of VerifierInstance, used in recursive folding verification. More...
 
class  RecursiveVerifierTest
 Test suite for recursive verification of Honk proofs for both Ultra and Mega arithmetisation. More...
 
class  RollupIO
 The data that is propagated on the public inputs of a rollup circuit. More...
 
class  SpecialPublicInputsTests
 
class  UltraRecursiveVerifier_
 
struct  UltraRecursiveVerifierOutput
 

Typedefs

using Flavors = testing::Types< UltraRecursiveFlavor_< UltraCircuitBuilder > >
 
using AppIO = DefaultIO< MegaCircuitBuilder >
 The data that is propagated on the public inputs of an application/function circuit.
 
using Builder = UltraCircuitBuilder
 
using UltraFlavor = UltraFlavor
 
using FF = fr
 
using NativeTranscript = NativeTranscript
 
using StdlibTranscript = UltraStdlibTranscript
 
using StdlibProof = stdlib::Proof< Builder >
 

Functions

 TEST_F (BoomerangGoblinRecursiveVerifierTests, graph_description_basic)
 Construct and check a goblin recursive verification circuit.
 
 TEST_F (BoomerangProtogalaxyRecursiveTests, RecursiveFoldingTestOneVerifier)
 
 TEST_F (BoomerangProtogalaxyRecursiveTests, RecursiveFoldingTestTwoVerifiers)
 
 TEST_F (BoomerangProtogalaxyRecursiveTests, FullProtogalaxyRecursiveTest)
 
 TYPED_TEST_SUITE (BoomerangRecursiveVerifierTest, Flavors)
 
 HEAVY_TYPED_TEST (BoomerangRecursiveVerifierTest, SingleRecursiveVerification)
 
 TEST_F (ClientIVCRecursionTests, NativeVerification)
 Ensure the ClientIVC proof used herein can be natively verified.
 
 TEST_F (ClientIVCRecursionTests, Basic)
 Construct and Check a recursive ClientIVC 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, ECCVMFailure)
 Ensure failure of the goblin recursive verification circuit for a bad ECCVM proof.
 
 TEST_F (GoblinRecursiveVerifierTests, TranslatorFailure)
 Ensure failure of the goblin recursive verification circuit for a bad Translator proof.
 
 TEST_F (GoblinRecursiveVerifierTests, TranslationEvaluationsFailure)
 Ensure failure of the goblin recursive verification circuit for bad translation evaluations.
 
 TEST_F (GoblinRecursiveVerifierTests, TranslatorMergeConsistencyFailure)
 Ensure failure of the goblin recursive verification circuit for bad translation evaluations.
 
 TYPED_TEST_SUITE (RecursiveVerifierTest, Flavors)
 
 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)
 
 TEST_F (ProtogalaxyRecursiveTests, ValidFolding)
 
 TEST_F (ProtogalaxyRecursiveTests, WiresIncomingAccumulator)
 
 TEST_F (ProtogalaxyRecursiveTests, AlphasIncomingAccumulator)
 
 TEST_F (ProtogalaxyRecursiveTests, GateChallengesIncomingAccumulator)
 
 TEST_F (ProtogalaxyRecursiveTests, RelationParametersIncomingAccumulator)
 
 TEST_F (ProtogalaxyRecursiveTests, TargetSumIncomingAccumulator)
 
 TEST_F (ProtogalaxyRecursiveTests, WiresIncomingInstance)
 
 TEST_F (ProtogalaxyRecursiveTests, WiresFoldedAccumulator)
 
 TEST_F (ProtogalaxyRecursiveTests, AlphasFoldedAccumulator)
 
 TEST_F (ProtogalaxyRecursiveTests, GateChallengesFoldedAccumulator)
 
 TEST_F (ProtogalaxyRecursiveTests, RelationParametersFoldedAccumulator)
 
 TEST_F (ProtogalaxyRecursiveTests, TargetSumFoldedAccumulator)
 
 TEST_F (ProtogalaxyRecursiveTests, PerturbatorCoefficient)
 
 TEST_F (ProtogalaxyRecursiveTests, CombinerQuotientCoefficient)
 
 TEST_F (ProtogalaxyRecursiveTests, FixedCircuitSize)
 
template<typename Builder >
std::array< typename bn254< Builder >::Group, Builder::NUM_WIRESempty_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)
 
template<class Curve , size_t LENGTH>
auto generate_mock_proof_data (auto prover_transcript)
 Create some mock data; add it to the provided prover transcript in various mock rounds.
 
template<class Curve , size_t LENGTH>
void perform_mock_verifier_transcript_operations (auto transcript)
 Perform series of verifier transcript operations.
 
 TEST (RecursiveHonkTranscript, InterfacesMatch)
 Test basic transcript functionality and check circuit.
 
 TEST (RecursiveHonkTranscript, ReturnValuesMatch)
 Check that native and stdlib verifier transcript functions produce equivalent outputs.
 
 TEST (RecursiveTranscript, InfinityConsistencyGrumpkin)
 Ensure that when encountering an infinity commitment results stay consistent in the recursive and native case for Grumpkin and the native and stdlib transcripts produce the same challenge.
 
 TEST (RecursiveTranscript, InfinityConsistencyBN254)
 Ensure that when encountering an infinity commitment results stay consistent in the recursive and native case for BN254 and the native and stdlib transcripts produce the same challenge.
 

Typedef Documentation

◆ AppIO

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

Definition at line 191 of file special_public_inputs.hpp.

◆ Builder

◆ FF

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

◆ Flavors

◆ NativeTranscript

◆ StdlibProof

◆ StdlibTranscript

◆ UltraFlavor

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 36 of file special_public_inputs.hpp.

◆ generate_mock_proof_data()

template<class Curve , size_t LENGTH>
auto bb::stdlib::recursion::honk::generate_mock_proof_data ( auto  prover_transcript)

Create some mock data; add it to the provided prover transcript in various mock rounds.

Parameters
prover_transcript
Returns
auto proof_data

Definition at line 24 of file stdlib_transcript.test.cpp.

◆ HEAVY_TYPED_TEST() [1/6]

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

◆ HEAVY_TYPED_TEST() [2/6]

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

Definition at line 416 of file ultra_recursive_verifier.test.cpp.

◆ HEAVY_TYPED_TEST() [3/6]

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

Definition at line 401 of file ultra_recursive_verifier.test.cpp.

◆ HEAVY_TYPED_TEST() [4/6]

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

Definition at line 406 of file ultra_recursive_verifier.test.cpp.

◆ HEAVY_TYPED_TEST() [5/6]

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

Definition at line 411 of file ultra_recursive_verifier.test.cpp.

◆ HEAVY_TYPED_TEST() [6/6]

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

Definition at line 429 of file ultra_recursive_verifier.test.cpp.

◆ perform_mock_verifier_transcript_operations()

template<class Curve , size_t LENGTH>
void bb::stdlib::recursion::honk::perform_mock_verifier_transcript_operations ( auto  transcript)

Perform series of verifier transcript operations.

Operations are designed to correspond to those performed by a prover transcript from which the verifier transcript was initialized.

Parameters
transcriptEither a native or stdlib verifier transcript
Template Parameters
Flavor
LENGTHLength of Univariate to be serialized

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

◆ TEST() [1/4]

bb::stdlib::recursion::honk::TEST ( RecursiveHonkTranscript  ,
InterfacesMatch   
)

Test basic transcript functionality and check circuit.

Implicitly ensures stdlib interface is identical to native

Definition at line 91 of file stdlib_transcript.test.cpp.

◆ TEST() [2/4]

bb::stdlib::recursion::honk::TEST ( RecursiveHonkTranscript  ,
ReturnValuesMatch   
)

Check that native and stdlib verifier transcript functions produce equivalent outputs.

Definition at line 129 of file stdlib_transcript.test.cpp.

◆ TEST() [3/4]

bb::stdlib::recursion::honk::TEST ( RecursiveTranscript  ,
InfinityConsistencyBN254   
)

Ensure that when encountering an infinity commitment results stay consistent in the recursive and native case for BN254 and the native and stdlib transcripts produce the same challenge.

Todo:
(https://github.com/AztecProtocol/barretenberg/issues/1064) Add more transcript tests for both curves

Definition at line 231 of file stdlib_transcript.test.cpp.

◆ TEST() [4/4]

bb::stdlib::recursion::honk::TEST ( RecursiveTranscript  ,
InfinityConsistencyGrumpkin   
)

Ensure that when encountering an infinity commitment results stay consistent in the recursive and native case for Grumpkin and the native and stdlib transcripts produce the same challenge.

Todo:
(https://github.com/AztecProtocol/barretenberg/issues/1064) Add more transcript tests for both curves

Definition at line 192 of file stdlib_transcript.test.cpp.

◆ TEST_F() [1/32]

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() [2/32]

bb::stdlib::recursion::honk::TEST_F ( BoomerangProtogalaxyRecursiveTests  ,
FullProtogalaxyRecursiveTest   
)

Definition at line 263 of file graph_description_protogalaxy.test.cpp.

◆ TEST_F() [3/32]

bb::stdlib::recursion::honk::TEST_F ( BoomerangProtogalaxyRecursiveTests  ,
RecursiveFoldingTestOneVerifier   
)

Definition at line 253 of file graph_description_protogalaxy.test.cpp.

◆ TEST_F() [4/32]

bb::stdlib::recursion::honk::TEST_F ( BoomerangProtogalaxyRecursiveTests  ,
RecursiveFoldingTestTwoVerifiers   
)

Definition at line 258 of file graph_description_protogalaxy.test.cpp.

◆ TEST_F() [5/32]

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

Construct and Check a recursive ClientIVC verification circuit.

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

◆ TEST_F() [6/32]

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

Ensure the ClientIVC proof used herein can be natively verified.

Definition at line 54 of file client_ivc_recursive_verifier.test.cpp.

◆ TEST_F() [7/32]

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

Construct and check a goblin recursive verification circuit.

Definition at line 139 of file goblin_recursive_verifier.test.cpp.

◆ TEST_F() [8/32]

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

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

Definition at line 208 of file goblin_recursive_verifier.test.cpp.

◆ TEST_F() [9/32]

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

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

◆ TEST_F() [10/32]

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

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

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

◆ TEST_F() [11/32]

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

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

Definition at line 298 of file goblin_recursive_verifier.test.cpp.

◆ TEST_F() [12/32]

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

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

Definition at line 245 of file goblin_recursive_verifier.test.cpp.

◆ TEST_F() [13/32]

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

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

Definition at line 322 of file goblin_recursive_verifier.test.cpp.

◆ TEST_F() [14/32]

bb::stdlib::recursion::honk::TEST_F ( ProtogalaxyRecursiveTests  ,
AlphasFoldedAccumulator   
)

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

◆ TEST_F() [15/32]

bb::stdlib::recursion::honk::TEST_F ( ProtogalaxyRecursiveTests  ,
AlphasIncomingAccumulator   
)

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

◆ TEST_F() [16/32]

bb::stdlib::recursion::honk::TEST_F ( ProtogalaxyRecursiveTests  ,
CombinerQuotientCoefficient   
)

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

◆ TEST_F() [17/32]

bb::stdlib::recursion::honk::TEST_F ( ProtogalaxyRecursiveTests  ,
FixedCircuitSize   
)

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

◆ TEST_F() [18/32]

bb::stdlib::recursion::honk::TEST_F ( ProtogalaxyRecursiveTests  ,
GateChallengesFoldedAccumulator   
)

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

◆ TEST_F() [19/32]

bb::stdlib::recursion::honk::TEST_F ( ProtogalaxyRecursiveTests  ,
GateChallengesIncomingAccumulator   
)

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

◆ TEST_F() [20/32]

bb::stdlib::recursion::honk::TEST_F ( ProtogalaxyRecursiveTests  ,
PerturbatorCoefficient   
)

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

◆ TEST_F() [21/32]

bb::stdlib::recursion::honk::TEST_F ( ProtogalaxyRecursiveTests  ,
RelationParametersFoldedAccumulator   
)

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

◆ TEST_F() [22/32]

bb::stdlib::recursion::honk::TEST_F ( ProtogalaxyRecursiveTests  ,
RelationParametersIncomingAccumulator   
)

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

◆ TEST_F() [23/32]

bb::stdlib::recursion::honk::TEST_F ( ProtogalaxyRecursiveTests  ,
TargetSumFoldedAccumulator   
)

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

◆ TEST_F() [24/32]

bb::stdlib::recursion::honk::TEST_F ( ProtogalaxyRecursiveTests  ,
TargetSumIncomingAccumulator   
)

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

◆ TEST_F() [25/32]

bb::stdlib::recursion::honk::TEST_F ( ProtogalaxyRecursiveTests  ,
ValidFolding   
)

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

◆ TEST_F() [26/32]

bb::stdlib::recursion::honk::TEST_F ( ProtogalaxyRecursiveTests  ,
WiresFoldedAccumulator   
)

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

◆ TEST_F() [27/32]

bb::stdlib::recursion::honk::TEST_F ( ProtogalaxyRecursiveTests  ,
WiresIncomingAccumulator   
)

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

◆ TEST_F() [28/32]

bb::stdlib::recursion::honk::TEST_F ( ProtogalaxyRecursiveTests  ,
WiresIncomingInstance   
)

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

◆ TEST_F() [29/32]

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

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

◆ TEST_F() [30/32]

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

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

◆ TEST_F() [31/32]

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

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

◆ TEST_F() [32/32]

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

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

◆ TYPED_TEST_SUITE() [1/2]

bb::stdlib::recursion::honk::TYPED_TEST_SUITE ( BoomerangRecursiveVerifierTest  ,
Flavors   
)

◆ TYPED_TEST_SUITE() [2/2]

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