|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
#include <eccvm_flavor.hpp>
Classes | |
| class | AllEntities |
| A base class labelling all entities (for instance, all of the polynomials used by the prover during sumcheck) in this Honk variant along with particular subsets of interest. More... | |
| 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... | |
| struct | DerivedWitnessEntities |
| Container for all derived witness polynomials used/constructed by the prover. More... | |
| class | IPATranscript |
| Derived class that defines proof structure for ECCVM IPA proof, as well as supporting functions. More... | |
| class | PartiallyEvaluatedMultivariates |
| A container for storing the partially evaluated multivariates produced by sumcheck. More... | |
| class | PrecomputedEntities |
| A base class labelling precomputed entities and (ordered) subsets of interest. 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 | ShiftedEntities |
| Represents polynomials shifted by 1 or their evaluations, defined relative to WitnessEntities. More... | |
| class | VerificationKey |
| The verification key is responsible for storing the commitments to the precomputed (non-witnessk) polynomials used by the verifier. More... | |
| class | VerifierCommitments_ |
| class | WireNonShiftedEntities |
| class | WireToBeShiftedAccumulatorEntities |
| Containter for transcript accumulators, they stand out as the only to-be-shifted wires that are always populated until the dyadic size of the circuit. More... | |
| class | WireToBeShiftedWithoutAccumulatorsEntities |
| Container for all to-be-shifted witness polynomials excluding the accumulators used/constructed by the prover. More... | |
| class | WitnessEntities |
| Container for all witness polynomials used/constructed by the prover. More... | |
Static Public Member Functions | |
| 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. | |
Static Public Attributes | |
| static constexpr bool | USE_SHORT_MONOMIALS = false |
| static constexpr bool | HasZK = true |
| static constexpr bool | USE_PADDING = false |
| static constexpr size_t | ECCVM_FIXED_SIZE = 1UL << CONST_ECCVM_LOG_N |
| static constexpr size_t | NUM_WIRES = 85 |
| static constexpr size_t | NUM_ALL_ENTITIES = 116 |
| static constexpr size_t | NUM_PRECOMPUTED_ENTITIES = 3 |
| static constexpr size_t | NUM_WITNESS_ENTITIES = 87 |
| static constexpr size_t | NUM_SHIFTED_ENTITIES = 26 |
| static constexpr size_t | NUM_DERIVED_WITNESS_ENTITIES_NON_SHIFTED = 1 |
| static constexpr RepeatedCommitmentsData | REPEATED_COMMITMENTS |
| static constexpr size_t | NUM_SUBRELATIONS = compute_number_of_subrelations<Relations>() |
| 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 + 2 |
| static constexpr size_t | NUM_RELATIONS = std::tuple_size<Relations>::value |
| static constexpr size_t | num_frs_comm = FrCodec::calc_num_fields<Commitment>() |
| static constexpr size_t | num_frs_fq = FrCodec::calc_num_fields<FF>() |
| static constexpr size_t | PROOF_LENGTH_WITHOUT_PUB_INPUTS |
| static constexpr size_t | NUM_TRANSLATION_OPENING_CLAIMS = NUM_SMALL_IPA_EVALUATIONS + 1 |
Definition at line 35 of file eccvm_flavor.hpp.
| using bb::ECCVMFlavor::BF = typename Curve::BaseField |
Definition at line 43 of file eccvm_flavor.hpp.
Definition at line 37 of file eccvm_flavor.hpp.
| using bb::ECCVMFlavor::Commitment = typename G1::affine_element |
Definition at line 46 of file eccvm_flavor.hpp.
Definition at line 47 of file eccvm_flavor.hpp.
Definition at line 39 of file eccvm_flavor.hpp.
| using bb::ECCVMFlavor::CycleGroup = bb::g1 |
Definition at line 38 of file eccvm_flavor.hpp.
A container for univariates produced during the hot loop in sumcheck.
Definition at line 433 of file eccvm_flavor.hpp.
| using bb::ECCVMFlavor::FF = typename Curve::ScalarField |
Definition at line 42 of file eccvm_flavor.hpp.
| using bb::ECCVMFlavor::G1 = typename Curve::Group |
Definition at line 40 of file eccvm_flavor.hpp.
| using bb::ECCVMFlavor::GrandProductRelations = std::tuple<ECCVMSetRelation<FF> > |
Definition at line 87 of file eccvm_flavor.hpp.
| using bb::ECCVMFlavor::GroupElement = typename G1::element |
Definition at line 45 of file eccvm_flavor.hpp.
Definition at line 98 of file eccvm_flavor.hpp.
| using bb::ECCVMFlavor::MSM = bb::eccvm::MSM<CycleGroup> |
Definition at line 49 of file eccvm_flavor.hpp.
| using bb::ECCVMFlavor::PCS = IPA<Curve> |
Definition at line 41 of file eccvm_flavor.hpp.
| using bb::ECCVMFlavor::Polynomial = bb::Polynomial<FF> |
Definition at line 44 of file eccvm_flavor.hpp.
| using bb::ECCVMFlavor::ProverUnivariates = AllEntities<bb::Univariate<FF, LENGTH> > |
A container for univariates used during sumcheck.
Definition at line 428 of file eccvm_flavor.hpp.
| using bb::ECCVMFlavor::Relations = Relations_<FF> |
Definition at line 97 of file eccvm_flavor.hpp.
| using bb::ECCVMFlavor::Relations_ = std::tuple<ECCVMTranscriptRelation<FF>, ECCVMPointTableRelation<FF>, ECCVMWnafRelation<FF>, ECCVMMSMRelation<FF>, ECCVMSetRelation<FF>, ECCVMLookupRelation<FF>, ECCVMBoolsRelation<FF> > |
Definition at line 90 of file eccvm_flavor.hpp.
| using bb::ECCVMFlavor::SubrelationSeparators = std::array<FF, NUM_SUBRELATIONS - 1> |
Definition at line 101 of file eccvm_flavor.hpp.
Definition at line 50 of file eccvm_flavor.hpp.
Definition at line 48 of file eccvm_flavor.hpp.
Definition at line 968 of file eccvm_flavor.hpp.
|
inlinestatic |
Definition at line 359 of file eccvm_flavor.hpp.
|
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 ClientIVC, 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 1032 of file eccvm_flavor.hpp.
|
staticconstexpr |
Definition at line 110 of file eccvm_flavor.hpp.
|
staticconstexpr |
Definition at line 62 of file eccvm_flavor.hpp.
|
staticconstexpr |
Definition at line 56 of file eccvm_flavor.hpp.
|
staticconstexpr |
Definition at line 103 of file eccvm_flavor.hpp.
|
staticconstexpr |
Definition at line 69 of file eccvm_flavor.hpp.
|
staticconstexpr |
Definition at line 78 of file eccvm_flavor.hpp.
|
staticconstexpr |
Definition at line 113 of file eccvm_flavor.hpp.
|
staticconstexpr |
Definition at line 114 of file eccvm_flavor.hpp.
|
staticconstexpr |
Definition at line 72 of file eccvm_flavor.hpp.
|
staticconstexpr |
Definition at line 111 of file eccvm_flavor.hpp.
|
staticconstexpr |
Definition at line 76 of file eccvm_flavor.hpp.
|
staticconstexpr |
Definition at line 100 of file eccvm_flavor.hpp.
|
staticconstexpr |
Definition at line 156 of file eccvm_flavor.hpp.
|
staticconstexpr |
Definition at line 64 of file eccvm_flavor.hpp.
|
staticconstexpr |
Definition at line 74 of file eccvm_flavor.hpp.
|
staticconstexpr |
Definition at line 117 of file eccvm_flavor.hpp.
|
staticconstexpr |
Definition at line 81 of file eccvm_flavor.hpp.
|
staticconstexpr |
Definition at line 58 of file eccvm_flavor.hpp.
|
staticconstexpr |
Definition at line 53 of file eccvm_flavor.hpp.