Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
ultra_zk_flavor.hpp
Go to the documentation of this file.
1// === AUDIT STATUS ===
2// internal: { status: Completed, auditors: [Sergei], commit: }
3// external_1: { status: not started, auditors: [], commit: }
4// external_2: { status: not started, auditors: [], commit: }
5// =====================
6
7#pragma once
8
11
12namespace bb {
13
23class UltraZKFlavor : public UltraFlavor {
24 public:
25 // This flavor runs with ZK Sumcheck
26 static constexpr bool HasZK = true;
27
28 // The number of entities added for ZK (gemini_masking_poly)
29 static constexpr size_t NUM_MASKING_POLYNOMIALS = 1;
30
31 // Determine the number of evaluations of Prover and Libra Polynomials that the Prover sends to the Verifier in
32 // the rounds of ZK Sumcheck.
35 "LIBRA_UNIVARIATES_LENGTH must be equal to UltraZKFlavor::BATCHED_RELATION_PARTIAL_LENGTH");
36
37 // Override AllEntities to use ZK version (includes gemini_masking_poly via MaskingEntities)
38 template <typename DataType> using AllEntities = UltraFlavor::AllEntities_<DataType, HasZK>;
39
40 // NUM_WITNESS_ENTITIES includes gemini_masking_poly
42 // NUM_ALL_ENTITIES includes gemini_masking_poly
44 // NUM_UNSHIFTED_ENTITIES includes gemini_masking_poly
46
47 // Size of the final PCS MSM for ZK = non-ZK size + NUM_LIBRA_COMMITMENTS (3)
48 static constexpr size_t FINAL_PCS_MSM_SIZE(size_t log_n = CONST_PROOF_SIZE_LOG_N)
49 {
50 return NUM_UNSHIFTED_ENTITIES + log_n + 2 + NUM_LIBRA_COMMITMENTS;
51 }
52
57
58 // Override ProverUnivariates and ExtendedEdges to include gemini_masking_poly
61};
62} // namespace bb
A container for storing the partially evaluated multivariates produced by sumcheck.
A container for polynomials handles used by the prover.
A base class labelling all entities (for instance, all of the polynomials used by the prover during s...
A field element for each entity of the flavor. These entities represent the prover polynomials evalua...
A container encapsulating all the commitments that the verifier receives (to precomputed polynomials ...
static constexpr size_t BATCHED_RELATION_PARTIAL_LENGTH
static constexpr size_t NUM_ALL_ENTITIES
static constexpr size_t NUM_UNSHIFTED_ENTITIES
static constexpr size_t NUM_WITNESS_ENTITIES
Child class of UltraFlavor that runs with ZK Sumcheck.
static constexpr bool HasZK
static constexpr size_t NUM_UNSHIFTED_ENTITIES
static constexpr size_t FINAL_PCS_MSM_SIZE(size_t log_n=CONST_PROOF_SIZE_LOG_N)
static constexpr size_t NUM_WITNESS_ENTITIES
static constexpr size_t BATCHED_RELATION_PARTIAL_LENGTH
static constexpr size_t NUM_ALL_ENTITIES
static constexpr size_t NUM_MASKING_POLYNOMIALS
static constexpr uint32_t LIBRA_UNIVARIATES_LENGTH
Definition bn254.hpp:44
Entry point for Barretenberg command-line interface.
Definition api.hpp:5