#include <eccvm_flavor.hpp>
|
| using | CircuitBuilder = ECCVMCircuitBuilder |
| |
| using | CycleGroup = bb::g1 |
| |
| using | Curve = curve::Grumpkin |
| |
| using | G1 = typename Curve::Group |
| |
| using | FF = typename Curve::ScalarField |
| |
| using | BF = typename Curve::BaseField |
| |
| using | Polynomial = bb::Polynomial< FF > |
| |
| using | GroupElement = typename G1::element |
| |
| using | Commitment = typename G1::affine_element |
| |
| using | CommitmentKey = bb::CommitmentKey< Curve > |
| |
| using | VerifierCommitmentKey = bb::VerifierCommitmentKey< Curve > |
| |
| using | MSM = bb::eccvm::MSM< CycleGroup > |
| |
| using | Codec = FrCodec |
| |
| using | HashFunction = crypto::Poseidon2< crypto::Poseidon2Bn254ScalarFieldParams > |
| |
| using | Transcript = BaseTranscript< Codec, HashFunction > |
| |
| using | Proof = HonkProof |
| |
| using | GrandProductRelations = std::tuple< ECCVMSetRelation< FF > > |
| |
| template<typename FF > |
| using | Relations_ = std::tuple< ECCVMTranscriptRelation< FF >, ECCVMPointTableRelation< FF >, ECCVMWnafRelation< FF >, ECCVMMSMRelation< FF >, ECCVMSetRelation< FF >, ECCVMLookupRelation< FF >, ECCVMBoolsRelation< FF > > |
| |
| using | Relations = Relations_< FF > |
| |
| using | LookupRelation = ECCVMLookupRelation< FF > |
| |
| using | SubrelationSeparators = std::array< FF, NUM_SUBRELATIONS - 1 > |
| |
| template<size_t LENGTH> |
| using | ProverUnivariates = AllEntities< bb::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.
|
| |
| using | VerifierCommitments = VerifierCommitments_< Commitment, VerificationKey > |
| |
|
| template<typename DataType , typename PrecomputedAndWitnessEntitiesSuperset > |
| static auto | get_to_be_shifted (PrecomputedAndWitnessEntitiesSuperset &entities) |
| |
| template<typename ProverPolynomialsOrPartiallyEvaluatedMultivariates , typename EdgeType > |
| static bool | skip_entire_row (const ProverPolynomialsOrPartiallyEvaluatedMultivariates &polynomials, const EdgeType edge_idx) |
| | When evaluating the sumcheck protocol - can we skip evaluation of all relations for a given row? This is purely a prover-side optimization.
|
| |
Definition at line 35 of file eccvm_flavor.hpp.
◆ BF
◆ CircuitBuilder
◆ Codec
◆ Commitment
◆ CommitmentKey
◆ Curve
◆ CycleGroup
◆ ExtendedEdges
A container for univariates produced during the hot loop in sumcheck.
Definition at line 453 of file eccvm_flavor.hpp.
◆ FF
◆ G1
◆ GrandProductRelations
◆ GroupElement
◆ HashFunction
◆ LookupRelation
◆ MSM
◆ Polynomial
◆ Proof
◆ ProverUnivariates
A container for univariates used during sumcheck.
Definition at line 448 of file eccvm_flavor.hpp.
◆ Relations
◆ Relations_
◆ SubrelationSeparators
◆ Transcript
◆ VerifierCommitmentKey
◆ VerifierCommitments
◆ get_to_be_shifted()
template<typename DataType , typename PrecomputedAndWitnessEntitiesSuperset >
| static auto bb::ECCVMFlavor::get_to_be_shifted |
( |
PrecomputedAndWitnessEntitiesSuperset & |
entities | ) |
|
|
inlinestatic |
◆ skip_entire_row()
template<typename ProverPolynomialsOrPartiallyEvaluatedMultivariates , typename EdgeType >
| static bool bb::ECCVMFlavor::skip_entire_row |
( |
const ProverPolynomialsOrPartiallyEvaluatedMultivariates & |
polynomials, |
|
|
const EdgeType |
edge_idx |
|
) |
| |
|
inlinestatic |
When evaluating the sumcheck protocol - can we skip evaluation of all relations for a given row? This is purely a prover-side optimization.
When used in Chonk, the ECCVM has a large fixed size, which is often not fully utilized. If a row is completely empty, the values of z_perm and z_perm_shift will match, we can use this as a proxy to determine if we can skip Sumcheck::compute_univariate_with_row_skipping. In fact, here are several other conditions that need to be checked to see if we can skip the computation of all relations in the row.
Definition at line 1062 of file eccvm_flavor.hpp.
◆ BATCHED_RELATION_PARTIAL_LENGTH
◆ ECCVM_FIXED_SIZE
| constexpr size_t bb::ECCVMFlavor::ECCVM_FIXED_SIZE = 1UL << CONST_ECCVM_LOG_N |
|
staticconstexpr |
◆ HasZK
| constexpr bool bb::ECCVMFlavor::HasZK = true |
|
staticconstexpr |
◆ MAX_PARTIAL_RELATION_LENGTH
◆ NUM_ALL_ENTITIES
| constexpr size_t bb::ECCVMFlavor::NUM_ALL_ENTITIES = 118 |
|
staticconstexpr |
◆ NUM_DERIVED_WITNESS_ENTITIES_NON_SHIFTED
| constexpr size_t bb::ECCVMFlavor::NUM_DERIVED_WITNESS_ENTITIES_NON_SHIFTED = 1 |
|
staticconstexpr |
◆ num_frs_comm
◆ num_frs_fq
◆ NUM_MASKING_POLYNOMIALS
| constexpr size_t bb::ECCVMFlavor::NUM_MASKING_POLYNOMIALS = 1 |
|
staticconstexpr |
◆ NUM_PRECOMPUTED_ENTITIES
| constexpr size_t bb::ECCVMFlavor::NUM_PRECOMPUTED_ENTITIES = 4 |
|
staticconstexpr |
◆ NUM_RELATIONS
◆ NUM_SHIFTED_ENTITIES
| constexpr size_t bb::ECCVMFlavor::NUM_SHIFTED_ENTITIES = 26 |
|
staticconstexpr |
◆ NUM_SUBRELATIONS
◆ NUM_TRANSLATION_OPENING_CLAIMS
| constexpr size_t bb::ECCVMFlavor::NUM_TRANSLATION_OPENING_CLAIMS = NUM_SMALL_IPA_EVALUATIONS + 1 |
|
staticconstexpr |
◆ NUM_WIRES
| constexpr size_t bb::ECCVMFlavor::NUM_WIRES = 85 |
|
staticconstexpr |
◆ NUM_WITNESS_ENTITIES
| constexpr size_t bb::ECCVMFlavor::NUM_WITNESS_ENTITIES = 87 |
|
staticconstexpr |
◆ PROOF_LENGTH_WITHOUT_PUB_INPUTS
| constexpr size_t bb::ECCVMFlavor::PROOF_LENGTH_WITHOUT_PUB_INPUTS |
|
staticconstexpr |
◆ REPEATED_COMMITMENTS
Initial value:=
static constexpr size_t NUM_WITNESS_ENTITIES
static constexpr size_t NUM_SHIFTED_ENTITIES
static constexpr size_t NUM_PRECOMPUTED_ENTITIES
static constexpr size_t NUM_DERIVED_WITNESS_ENTITIES_NON_SHIFTED
Definition at line 88 of file eccvm_flavor.hpp.
◆ USE_PADDING
| constexpr bool bb::ECCVMFlavor::USE_PADDING = false |
|
staticconstexpr |
◆ USE_SHORT_MONOMIALS
| constexpr bool bb::ECCVMFlavor::USE_SHORT_MONOMIALS = false |
|
staticconstexpr |
The documentation for this class was generated from the following file: