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:

Classes

struct  RecursiveFoldingData
 

Public Types

enum class  AccumulatorTamperingMode : uint8_t {
  None , Wires , Alphas , GateChallenges ,
  RelationParameters , TargetSum
}
 
enum class  InstanceTamperingMode : uint8_t { None , Wires }
 
enum class  ProofTamperingMode : uint8_t { None , Perturbator , CombinerQuotient }
 
using RecursiveFlavor = MegaRecursiveFlavor_< MegaCircuitBuilder >
 
using RecursiveBuilder = RecursiveFlavor::CircuitBuilder
 
using RecursiveVerifierInstance = RecursiveVerifierInstance_< RecursiveFlavor >
 
using RecursiveVerificationKey = RecursiveVerifierInstance::VerificationKey
 
using RecursiveVKAndHash = RecursiveVerifierInstance::VKAndHash
 
using RecursiveFoldingVerifier = ProtogalaxyRecursiveVerifier_< RecursiveVerifierInstance >
 
using RecursiveFF = RecursiveFlavor::FF
 
using RecursiveCommitment = RecursiveFlavor::Commitment
 
using NativeFlavor = RecursiveFlavor::NativeFlavor
 
using ProtogalaxyTestUtils = ProtogalaxyTestUtilities< NativeFlavor >
 
using NativeProverInstance = ProtogalaxyTestUtils::ProverInstance
 
using NativeVerifierInstance = ProtogalaxyTestUtils::VerifierInstance
 
using NativeProverInstances = ProtogalaxyTestUtils::ProverInstances
 
using NativeVerifierInstances = ProtogalaxyTestUtils::VerifierInstances
 
using NativeVerificationKey = ProtogalaxyTestUtils::VerificationKey
 
using TupleOfKeys = ProtogalaxyTestUtils::TupleOfKeys
 
using NativeBuilder = ProtogalaxyTestUtils::Builder
 
using NativeFoldingData = ProtogalaxyTestUtils::FoldingData
 
using NativeFoldingProver = ProtogalaxyTestUtils::FoldingProver
 
using NativeFoldingVerifier = ProtogalaxyTestUtils::FoldingVerifier
 
using NativeCurve = bn254< NativeBuilder >
 
using Commitment = NativeFlavor::Commitment
 
using NativeFF = NativeFlavor::FF
 
using CommitmentKey = NativeFlavor::CommitmentKey
 

Static Public Member Functions

static void SetUpTestSuite ()
 
static void create_function_circuit (NativeBuilder &builder, const size_t &log_num_gates=9, const size_t &log_num_gates_with_public_inputs=9)
 Create a non-trivial arbitrary inner circuit, the proof of which will be recursively verified.
 
static RecursiveFoldingData create_recursive_folding_data (RecursiveBuilder &builder, const NativeVerifierInstances &verifier_instances)
 Create a recursive verifier instances from native ones.
 
static std::pair< std::shared_ptr< NativeVerifierInstance >, std::shared_ptr< RecursiveFoldingVerifier::Transcript > > create_folding_circuit (RecursiveBuilder &builder, const NativeVerifierInstances &verifier_instances, const HonkProof &folding_proof)
 Create the circuit that verifies the folding proof. Return folded verifier accumulator and the verifier transcript.
 
static void tamper_with_accumulator (const NativeFoldingData &accumulator, const AccumulatorTamperingMode &mode, bool expected)
 Tamper with an accumulator by changing one of its values: wires, alphas, gate challenge, relation parameters, or target sum. Update both the prover and verifier side.
 
static void tamper_with_folding_proof (HonkProof &folding_proof, const ProofTamperingMode &mode)
 Tamper with folding proof by changing either the first coefficient of the perturbator, or the first coefficient of the combiner quotient.
 
static void tamper_with_instance (const NativeFoldingData &instance, const InstanceTamperingMode &mode)
 Tamper with an instance by changing its wire values.
 

Static Public Attributes

static constexpr size_t INDEX_FIRST_PERTURBATOR_COEFF = 624
 
static constexpr size_t INDEX_FIRST_COMBINER_QUOTIENT_COEFF = 644
 

Detailed Description

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

Member Typedef Documentation

◆ Commitment

◆ CommitmentKey

◆ NativeBuilder

◆ NativeCurve

◆ NativeFF

◆ NativeFlavor

◆ NativeFoldingData

◆ NativeFoldingProver

◆ NativeFoldingVerifier

◆ NativeProverInstance

◆ NativeProverInstances

◆ NativeVerificationKey

◆ NativeVerifierInstance

◆ NativeVerifierInstances

◆ ProtogalaxyTestUtils

◆ RecursiveBuilder

◆ RecursiveCommitment

◆ RecursiveFF

◆ RecursiveFlavor

◆ RecursiveFoldingVerifier

◆ RecursiveVerificationKey

◆ RecursiveVerifierInstance

◆ RecursiveVKAndHash

◆ TupleOfKeys

Member Enumeration Documentation

◆ AccumulatorTamperingMode

Enumerator
None 
Wires 
Alphas 
GateChallenges 
RelationParameters 
TargetSum 

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

◆ InstanceTamperingMode

Enumerator
None 
Wires 

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

◆ ProofTamperingMode

Enumerator
None 
Perturbator 
CombinerQuotient 

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

Member Function Documentation

◆ create_folding_circuit()

static std::pair< std::shared_ptr< NativeVerifierInstance >, std::shared_ptr< RecursiveFoldingVerifier::Transcript > > bb::stdlib::recursion::honk::ProtogalaxyRecursiveTests::create_folding_circuit ( RecursiveBuilder builder,
const NativeVerifierInstances verifier_instances,
const HonkProof folding_proof 
)
inlinestatic

Create the circuit that verifies the folding proof. Return folded verifier accumulator and the verifier transcript.

Note
We return a shared pointer to the folded verifier accumulator to be consistent with the rest of the code.

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

◆ create_function_circuit()

static void bb::stdlib::recursion::honk::ProtogalaxyRecursiveTests::create_function_circuit ( NativeBuilder builder,
const size_t &  log_num_gates = 9,
const size_t &  log_num_gates_with_public_inputs = 9 
)
inlinestatic

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

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

◆ create_recursive_folding_data()

static RecursiveFoldingData bb::stdlib::recursion::honk::ProtogalaxyRecursiveTests::create_recursive_folding_data ( RecursiveBuilder builder,
const NativeVerifierInstances verifier_instances 
)
inlinestatic

Create a recursive verifier instances from native ones.

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

◆ SetUpTestSuite()

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

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

◆ tamper_with_accumulator()

static void bb::stdlib::recursion::honk::ProtogalaxyRecursiveTests::tamper_with_accumulator ( const NativeFoldingData accumulator,
const AccumulatorTamperingMode mode,
bool  expected 
)
inlinestatic

Tamper with an accumulator by changing one of its values: wires, alphas, gate challenge, relation parameters, or target sum. Update both the prover and verifier side.

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

◆ tamper_with_folding_proof()

static void bb::stdlib::recursion::honk::ProtogalaxyRecursiveTests::tamper_with_folding_proof ( HonkProof folding_proof,
const ProofTamperingMode mode 
)
inlinestatic

Tamper with folding proof by changing either the first coefficient of the perturbator, or the first coefficient of the combiner quotient.

Parameters
folding_proof
mode

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

◆ tamper_with_instance()

static void bb::stdlib::recursion::honk::ProtogalaxyRecursiveTests::tamper_with_instance ( const NativeFoldingData instance,
const InstanceTamperingMode mode 
)
inlinestatic

Tamper with an instance by changing its wire values.

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

Member Data Documentation

◆ INDEX_FIRST_COMBINER_QUOTIENT_COEFF

constexpr size_t bb::stdlib::recursion::honk::ProtogalaxyRecursiveTests::INDEX_FIRST_COMBINER_QUOTIENT_COEFF = 644
staticconstexpr

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

◆ INDEX_FIRST_PERTURBATOR_COEFF

constexpr size_t bb::stdlib::recursion::honk::ProtogalaxyRecursiveTests::INDEX_FIRST_PERTURBATOR_COEFF = 624
staticconstexpr

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


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