#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 37 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 455 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 771 of file eccvm_flavor.hpp.
◆ Polynomial
◆ Proof
◆ ProverUnivariates
A container for univariates used during sumcheck.
Definition at line 450 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 800 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 988 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
| constexpr size_t bb::ECCVMFlavor::PROOF_LENGTH |
|
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 90 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: