barretenberg
Loading...
Searching...
No Matches
Classes | Public Types | Static Public Attributes | List of all members
proof_system::honk::flavor::ECCVMBase< CycleGroup_T, Curve_T, PCS_T > Class Template Reference

Classes

class  AllValues
 A field element for each entity of the flavor. These entities represent the prover polynomials evaluated at one point. More...
 
class  CommitmentLabels
 A container for commitment labels. More...
 
class  PartiallyEvaluatedMultivariates
 A container for storing the partially evaluated multivariates produced by sumcheck. More...
 
class  ProverPolynomials
 A container for the prover polynomials. More...
 
class  ProvingKey
 The proving key is responsible for storing the polynomials used by the prover. More...
 
class  Transcript
 Derived class that defines proof structure for ECCVM proofs, as well as supporting functions. More...
 
class  VerifierCommitments
 

Public Types

using CycleGroup = CycleGroup_T
 
using Curve = Curve_T
 
using G1 = typename Curve::Group
 
using PCS = PCS_T
 
using FF = typename G1::subgroup_field
 
using Polynomial = barretenberg::Polynomial< FF >
 
using PolynomialHandle = std::span< FF >
 
using GroupElement = typename G1::element
 
using Commitment = typename G1::affine_element
 
using CommitmentHandle = typename G1::affine_element
 
using CommitmentKey = pcs::CommitmentKey< Curve >
 
using VerifierCommitmentKey = pcs::VerifierCommitmentKey< Curve >
 
using GrandProductRelations = std::tuple< sumcheck::ECCVMSetRelation< FF > >
 
using Relations = std::tuple< sumcheck::ECCVMTranscriptRelation< FF >, sumcheck::ECCVMPointTableRelation< FF >, sumcheck::ECCVMWnafRelation< FF >, sumcheck::ECCVMMSMRelation< FF >, sumcheck::ECCVMSetRelation< FF >, sumcheck::ECCVMLookupRelation< FF > >
 
using LookupRelation = sumcheck::ECCVMLookupRelation< FF >
 
using SumcheckTupleOfTuplesOfUnivariates = decltype(create_sumcheck_tuple_of_tuples_of_univariates< Relations >())
 
using TupleOfArraysOfValues = decltype(create_tuple_of_arrays_of_values< Relations >())
 
using VerificationKey = VerificationKey_< PrecomputedEntities< Commitment > >
 The verification key is responsible for storing the the commitments to the precomputed (non-witnessk) polynomials used by the verifier.
 
using FoldedPolynomials = AllEntities< std::vector< FF > >
 A container for polynomials produced after the first round of sumcheck.
 
using RowPolynomials = AllEntities< FF >
 A container for polynomials produced after the first round of sumcheck.
 
template<size_t LENGTH>
using ProverUnivariates = AllEntities< barretenberg::Univariate< FF, LENGTH > >
 A container for univariates used during sumcheck.
 
using ExtendedEdges = ProverUnivariates< MAX_PARTIAL_RELATION_LENGTH >
 A container for univariates produced during the hot loop in sumcheck.
 

Static Public Attributes

static constexpr size_t NUM_WIRES = 74
 
static constexpr size_t NUM_ALL_ENTITIES = 105
 
static constexpr size_t NUM_PRECOMPUTED_ENTITIES = 3
 
static constexpr size_t NUM_WITNESS_ENTITIES = 76
 
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 size_t NUM_RELATIONS = std::tuple_size<Relations>::value
 

Member Typedef Documentation

◆ FoldedPolynomials

template<typename CycleGroup_T , typename Curve_T , typename PCS_T >
using proof_system::honk::flavor::ECCVMBase< CycleGroup_T, Curve_T, PCS_T >::FoldedPolynomials = AllEntities<std::vector<FF> >

A container for polynomials produced after the first round of sumcheck.

Todo:
TODO(#394) Use polynomial classes for guaranteed memory alignment.

◆ RowPolynomials

template<typename CycleGroup_T , typename Curve_T , typename PCS_T >
using proof_system::honk::flavor::ECCVMBase< CycleGroup_T, Curve_T, PCS_T >::RowPolynomials = AllEntities<FF>

A container for polynomials produced after the first round of sumcheck.

Todo:
TODO(#394) Use polynomial classes for guaranteed memory alignment.

◆ VerificationKey

template<typename CycleGroup_T , typename Curve_T , typename PCS_T >
using proof_system::honk::flavor::ECCVMBase< CycleGroup_T, Curve_T, PCS_T >::VerificationKey = VerificationKey_<PrecomputedEntities<Commitment> >

The verification key is responsible for storing the the commitments to the precomputed (non-witnessk) polynomials used by the verifier.

Note
Note the discrepancy with what sort of data is stored here vs in the proving key. We may want to resolve that, and split out separate PrecomputedPolynomials/Commitments data for clarity but also for portability of our circuits.

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