#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 | PartiallyEvaluatedMultivariates = PartiallyEvaluatedMultivariatesBase< AllEntities< Polynomial >, ProverPolynomials, Polynomial > |
| | A container for storing the partially evaluated multivariates produced by sumcheck.
|
| |
| using | VerificationKey = FixedVKAndHash_< PrecomputedEntities< Commitment >, BF, ECCVMHardcodedVKAndHash > |
| | The verification key stores commitments to the precomputed polynomials used by the verifier.
|
| |
| 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 36 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 454 of file eccvm_flavor.hpp.
◆ FF
◆ G1
◆ GrandProductRelations
◆ GroupElement
◆ HashFunction
◆ LookupRelation
◆ MSM
◆ PartiallyEvaluatedMultivariates
A container for storing the partially evaluated multivariates produced by sumcheck.
Definition at line 769 of file eccvm_flavor.hpp.
◆ Polynomial
◆ Proof
◆ ProverUnivariates
A container for univariates used during sumcheck.
Definition at line 449 of file eccvm_flavor.hpp.
◆ Relations
◆ Relations_
◆ SubrelationSeparators
◆ Transcript
◆ VerificationKey
The verification key stores commitments to the precomputed polynomials used by the verifier.
ECCVM has a fixed circuit size, so the VK is hardcoded in recursive verifiers.
Definition at line 798 of file eccvm_flavor.hpp.
◆ 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 986 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 89 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: