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

Public Types

enum class  TamperingMode : uint8_t { None , FoldedAccumulator }
 
using NativeFlavor = bb::MegaKernelFlavor
 
using RecursiveFlavor = bb::MegaKernelRecursiveFlavor
 
using Builder = RecursiveFlavor::CircuitBuilder
 
using NativeFF = NativeFlavor::FF
 
using ProverInstance = ProverInstance_< NativeFlavor >
 
using NativeVerificationKey = NativeFlavor::VerificationKey
 
using NativeVerifierInstance = VerifierInstance_< NativeFlavor >
 
using RecursiveVerifierInstance = VerifierInstance_< RecursiveFlavor >
 
using FoldingProver = bb::HypernovaFoldingProver
 
using ProverAccumulator = FoldingProver::Accumulator
 
using DeciderProver = bb::HypernovaDeciderProver
 
using NativeDeciderVerifier = HypernovaDeciderVerifier< NativeFlavor >
 
using RecursiveDeciderVerifier = HypernovaDeciderVerifier< RecursiveFlavor >
 
using NativeVerifier = HypernovaFoldingNativeVerifier
 
using RecursiveVerifier = HypernovaFoldingRecursiveVerifier
 
using NativeVerifierAccumulator = NativeVerifier::Accumulator
 
using NativeTranscript = NativeVerifier::Transcript
 
using RecursiveTranscript = RecursiveVerifier::Transcript
 

Static Public Member Functions

static TranscriptManifest build_expected_decider_manifest ()
 Build the expected transcript manifest for the HyperNova decider.
 
static std::shared_ptr< ProverInstancegenerate_new_instance (size_t log_num_gates=LOG_NUM_GATES)
 
static std::shared_ptr< RecursiveVerifierInstancecreate_recursive_verifier_instance (Builder *builder, const std::shared_ptr< NativeVerifierInstance > &native_instance)
 
static ProverAccumulator make_previous_accumulator ()
 Build a valid previous accumulator (a single-instance fold) on a separate, discarded transcript.
 
static void test_decider (TamperingMode mode)
 

Static Public Attributes

static constexpr size_t LOG_NUM_GATES = 4
 

Static Protected Member Functions

static void SetUpTestSuite ()
 

Detailed Description

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

Member Typedef Documentation

◆ Builder

◆ DeciderProver

◆ FoldingProver

◆ NativeDeciderVerifier

◆ NativeFF

◆ NativeFlavor

◆ NativeTranscript

◆ NativeVerificationKey

◆ NativeVerifier

◆ NativeVerifierAccumulator

◆ NativeVerifierInstance

◆ ProverAccumulator

◆ ProverInstance

◆ RecursiveDeciderVerifier

◆ RecursiveFlavor

◆ RecursiveTranscript

◆ RecursiveVerifier

◆ RecursiveVerifierInstance

Member Enumeration Documentation

◆ TamperingMode

enum class HypernovaDeciderVerifierTests::TamperingMode : uint8_t
strong
Enumerator
None 
FoldedAccumulator 

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

Member Function Documentation

◆ build_expected_decider_manifest()

static TranscriptManifest HypernovaDeciderVerifierTests::build_expected_decider_manifest ( )
inlinestatic

Build the expected transcript manifest for the HyperNova decider.

Manifest tracking is enabled after folding, so only decider rounds are tracked. Since the last folding round ends with a challenge (claim_merge_challenge), and the decider starts with a challenge (rho), they share a round:

  • Round LAST_FOLDING_ROUND: rho challenge
  • Round LAST_FOLDING_ROUND+1: Gemini FOLD commitments -> Gemini:r challenge
  • Round LAST_FOLDING_ROUND+2: Gemini evaluations -> Shplonk:nu challenge
  • Round LAST_FOLDING_ROUND+3: Shplonk:Q commitment -> Shplonk:z challenge
  • Round LAST_FOLDING_ROUND+4: KZG:W commitment

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

◆ create_recursive_verifier_instance()

static std::shared_ptr< RecursiveVerifierInstance > HypernovaDeciderVerifierTests::create_recursive_verifier_instance ( Builder builder,
const std::shared_ptr< NativeVerifierInstance > &  native_instance 
)
inlinestatic

Definition at line 105 of file hypernova_decider_verifier.test.cpp.

◆ generate_new_instance()

static std::shared_ptr< ProverInstance > HypernovaDeciderVerifierTests::generate_new_instance ( size_t  log_num_gates = LOG_NUM_GATES)
inlinestatic

Definition at line 96 of file hypernova_decider_verifier.test.cpp.

◆ make_previous_accumulator()

static ProverAccumulator HypernovaDeciderVerifierTests::make_previous_accumulator ( )
inlinestatic

Build a valid previous accumulator (a single-instance fold) on a separate, discarded transcript.

Definition at line 151 of file hypernova_decider_verifier.test.cpp.

◆ SetUpTestSuite()

static void HypernovaDeciderVerifierTests::SetUpTestSuite ( )
inlinestaticprotected

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

◆ test_decider()

static void HypernovaDeciderVerifierTests::test_decider ( TamperingMode  mode)
inlinestatic

Definition at line 160 of file hypernova_decider_verifier.test.cpp.

Member Data Documentation

◆ LOG_NUM_GATES

constexpr size_t HypernovaDeciderVerifierTests::LOG_NUM_GATES = 4
staticconstexpr

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


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