Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::MegaZKRecursiveFlavor_< BuilderType > Class Template Reference

The recursive counterpart to the "native" MegaZKFlavor. More...

#include <mega_zk_recursive_flavor.hpp>

Inheritance diagram for bb::MegaZKRecursiveFlavor_< BuilderType >:
bb::MegaRecursiveFlavor_< BuilderType >

Classes

class  AllValues
 

Public Types

using NativeFlavor = MegaZKFlavor
 
using Commitment = typename MegaRecursiveFlavor_< BuilderType >::Commitment
 
using VerificationKey = typename MegaRecursiveFlavor_< BuilderType >::VerificationKey
 
using FF = typename MegaRecursiveFlavor_< BuilderType >::FF
 
using VerifierCommitments = MegaFlavor::VerifierCommitments_< Commitment, VerificationKey, HasZK >
 
- Public Types inherited from bb::MegaRecursiveFlavor_< BuilderType >
using CircuitBuilder = BuilderType
 
using Curve = stdlib::bn254< CircuitBuilder >
 
using PCS = KZG< Curve >
 
using GroupElement = typename Curve::Element
 
using FF = typename Curve::ScalarField
 
using Commitment = typename Curve::Element
 
using NativeFlavor = MegaFlavor
 
using Transcript = StdlibTranscript< CircuitBuilder >
 
using VerifierCommitmentKey = bb::VerifierCommitmentKey< NativeFlavor::Curve >
 
using Relations = MegaFlavor::Relations_< FF >
 
using SubrelationSeparator = FF
 
using WitnessCommitments = MegaFlavor::WitnessEntities< Commitment >
 A container for the witness commitments.
 
using CommitmentLabels = MegaFlavor::CommitmentLabels
 
using VerifierCommitments = MegaFlavor::VerifierCommitments_< Commitment, VerificationKey >
 
using VKAndHash = VKAndHash_< FF, VerificationKey >
 

Static Public Attributes

static constexpr bool HasZK = true
 
static constexpr size_t NUM_MASKING_POLYNOMIALS = 1
 
static constexpr size_t VIRTUAL_LOG_N = MegaZKFlavor::VIRTUAL_LOG_N
 
static constexpr size_t NUM_ALL_ENTITIES
 
static constexpr size_t BATCHED_RELATION_PARTIAL_LENGTH = NativeFlavor::BATCHED_RELATION_PARTIAL_LENGTH
 
- Static Public Attributes inherited from bb::MegaRecursiveFlavor_< BuilderType >
static constexpr size_t VIRTUAL_LOG_N = MegaFlavor::VIRTUAL_LOG_N
 
static constexpr bool USE_SHORT_MONOMIALS = MegaFlavor::USE_SHORT_MONOMIALS
 
static constexpr bool HasZK = false
 
static constexpr bool USE_PADDING = MegaFlavor::USE_PADDING
 
static constexpr size_t NUM_WIRES = MegaFlavor::NUM_WIRES
 
static constexpr size_t NUM_ALL_ENTITIES = MegaFlavor::NUM_ALL_ENTITIES
 
static constexpr size_t NUM_PRECOMPUTED_ENTITIES = MegaFlavor::NUM_PRECOMPUTED_ENTITIES
 
static constexpr size_t NUM_WITNESS_ENTITIES = MegaFlavor::NUM_WITNESS_ENTITIES
 
static constexpr size_t MAX_PARTIAL_RELATION_LENGTH = compute_max_partial_relation_length<Relations>()
 
static constexpr size_t BATCHED_RELATION_PARTIAL_LENGTH = MAX_PARTIAL_RELATION_LENGTH + 1
 
static constexpr RepeatedCommitmentsData REPEATED_COMMITMENTS = MegaFlavor::REPEATED_COMMITMENTS
 
static constexpr size_t NUM_RELATIONS = std::tuple_size_v<Relations>
 
static constexpr size_t NUM_SUBRELATIONS = MegaFlavor::NUM_SUBRELATIONS
 

Detailed Description

template<typename BuilderType>
class bb::MegaZKRecursiveFlavor_< BuilderType >

The recursive counterpart to the "native" MegaZKFlavor.

This flavor can be used to instantiate a recursive Mega Honk verifier for a proof created using the MegaZKFlavor. It is similar in structure to its native counterpart with two main differences: 1) the curve types are stdlib types (e.g. field_t instead of field) and 2) it does not specify any Prover related types (e.g. Polynomial, ExtendedEdges, etc.) since we do not emulate prover computation in circuits, i.e. it only makes sense to instantiate a Verifier with this flavor.

Note
Unlike conventional flavors, "recursive" flavors are templated by a builder (much like native vs stdlib types). This is because the flavor itself determines the details of the underlying verifier algorithm (i.e. the set of relations), while the Builder determines the arithmetization of that algorithm into a circuit.
Template Parameters
BuilderTypeDetermines the arithmetization of the verifier circuit defined based on this flavor.

Definition at line 38 of file mega_zk_recursive_flavor.hpp.

Member Typedef Documentation

◆ Commitment

template<typename BuilderType >
using bb::MegaZKRecursiveFlavor_< BuilderType >::Commitment = typename MegaRecursiveFlavor_<BuilderType>::Commitment

Definition at line 41 of file mega_zk_recursive_flavor.hpp.

◆ FF

template<typename BuilderType >
using bb::MegaZKRecursiveFlavor_< BuilderType >::FF = typename MegaRecursiveFlavor_<BuilderType>::FF

Definition at line 43 of file mega_zk_recursive_flavor.hpp.

◆ NativeFlavor

template<typename BuilderType >
using bb::MegaZKRecursiveFlavor_< BuilderType >::NativeFlavor = MegaZKFlavor

Definition at line 40 of file mega_zk_recursive_flavor.hpp.

◆ VerificationKey

template<typename BuilderType >
using bb::MegaZKRecursiveFlavor_< BuilderType >::VerificationKey = typename MegaRecursiveFlavor_<BuilderType>::VerificationKey

Definition at line 42 of file mega_zk_recursive_flavor.hpp.

◆ VerifierCommitments

template<typename BuilderType >
using bb::MegaZKRecursiveFlavor_< BuilderType >::VerifierCommitments = MegaFlavor::VerifierCommitments_<Commitment, VerificationKey, HasZK>

Definition at line 68 of file mega_zk_recursive_flavor.hpp.

Member Data Documentation

◆ BATCHED_RELATION_PARTIAL_LENGTH

template<typename BuilderType >
constexpr size_t bb::MegaZKRecursiveFlavor_< BuilderType >::BATCHED_RELATION_PARTIAL_LENGTH = NativeFlavor::BATCHED_RELATION_PARTIAL_LENGTH
staticconstexpr

Definition at line 59 of file mega_zk_recursive_flavor.hpp.

◆ HasZK

template<typename BuilderType >
constexpr bool bb::MegaZKRecursiveFlavor_< BuilderType >::HasZK = true
staticconstexpr

Definition at line 45 of file mega_zk_recursive_flavor.hpp.

◆ NUM_ALL_ENTITIES

template<typename BuilderType >
constexpr size_t bb::MegaZKRecursiveFlavor_< BuilderType >::NUM_ALL_ENTITIES
staticconstexpr

◆ NUM_MASKING_POLYNOMIALS

template<typename BuilderType >
constexpr size_t bb::MegaZKRecursiveFlavor_< BuilderType >::NUM_MASKING_POLYNOMIALS = 1
staticconstexpr

Definition at line 48 of file mega_zk_recursive_flavor.hpp.

◆ VIRTUAL_LOG_N

template<typename BuilderType >
constexpr size_t bb::MegaZKRecursiveFlavor_< BuilderType >::VIRTUAL_LOG_N = MegaZKFlavor::VIRTUAL_LOG_N
staticconstexpr

Definition at line 50 of file mega_zk_recursive_flavor.hpp.


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