@@ -199,24 +199,6 @@ class MegaFlavor {
199199 auto get_to_be_shifted () { return RefArray{ z_perm }; };
200200 };
201201
202- /* *
203- * @brief ZK-specific entities (only used when HasZK = true)
204- * @details Contains the Gemini masking polynomial used for zero-knowledge
205- */
206- template <typename DataType, bool HasZK_ = false > class MaskingEntities {
207- public:
208- // When ZK is disabled, this class is empty
209- auto get_all () { return RefArray<DataType, 0 >{}; }
210- auto get_all () const { return RefArray<const DataType, 0 >{}; }
211- static auto get_labels () { return std::vector<std::string>{}; }
212- };
213-
214- // Specialization for when ZK is enabled
215- template <typename DataType> class MaskingEntities <DataType, true > {
216- public:
217- DEFINE_FLAVOR_MEMBERS (DataType, gemini_masking_poly)
218- };
219-
220202 /* *
221203 * @brief Container for all witness polynomials used/constructed by the prover.
222204 * @details Shifts are not included here since they do not occupy their own memory.
@@ -324,24 +306,19 @@ class MegaFlavor {
324306 * @details Used to build containers for: the prover's polynomial during sumcheck; the sumcheck's folded
325307 * polynomials; the univariates constructed during sumcheck; the evaluations produced by sumcheck.
326308 *
327- * Symbolically we have: AllEntities = MaskingEntities + PrecomputedEntities + WitnessEntities + ShiftedEntities.
309+ * Symbolically we have: AllEntities = PrecomputedEntities + WitnessEntities + ShiftedEntities.
310+ * Note: Mega has no MaskingEntities — ZK masking is provided by the Translator in Chonk.
328311 */
329- template <typename DataType, bool HasZK_ = HasZK>
330- class AllEntities_ : public MaskingEntities <DataType, HasZK_>,
331- public PrecomputedEntities<DataType>,
312+ template <typename DataType>
313+ class AllEntities_ : public PrecomputedEntities <DataType>,
332314 public WitnessEntities_<DataType>,
333315 public ShiftedEntities<DataType> {
334316 public:
335- DEFINE_COMPOUND_GET_ALL (MaskingEntities<DataType, HasZK_>,
336- PrecomputedEntities<DataType>,
337- WitnessEntities_<DataType>,
338- ShiftedEntities<DataType>)
317+ DEFINE_COMPOUND_GET_ALL (PrecomputedEntities<DataType>, WitnessEntities_<DataType>, ShiftedEntities<DataType>)
339318
340319 auto get_unshifted ()
341320 {
342- return concatenate (MaskingEntities<DataType, HasZK_>::get_all (),
343- PrecomputedEntities<DataType>::get_all (),
344- WitnessEntities_<DataType>::get_all ());
321+ return concatenate (PrecomputedEntities<DataType>::get_all (), WitnessEntities_<DataType>::get_all ());
345322 };
346323 auto get_precomputed () { return PrecomputedEntities<DataType>::get_all (); }
347324 auto get_witness () { return WitnessEntities_<DataType>::get_all (); };
@@ -350,8 +327,7 @@ class MegaFlavor {
350327 auto get_shifted () const { return ShiftedEntities<DataType>::get_all (); };
351328 };
352329
353- // Default AllEntities alias (no ZK)
354- template <typename DataType> using AllEntities = AllEntities_<DataType, HasZK>;
330+ template <typename DataType> using AllEntities = AllEntities_<DataType>;
355331
356332 // Derive entity counts from the actual struct definitions
357333 static constexpr size_t NUM_PRECOMPUTED_ENTITIES = PrecomputedEntities<FF>::_members_size;
@@ -375,21 +351,12 @@ class MegaFlavor {
375351 * @brief A field element for each entity of the flavor. These entities represent the prover polynomials evaluated
376352 * at one point.
377353 */
378- template <bool HasZK_ = HasZK> class AllValues_ : public AllEntities_ <FF, HasZK_> {
379- public:
380- using Base = AllEntities_<FF, HasZK_>;
381- using Base::Base;
382- };
383-
384- using AllValues = AllValues_<HasZK>;
354+ using AllValues = AllEntities_<FF>;
385355
386356 /* *
387357 * @brief A container for the prover polynomials handles.
388358 */
389- template <bool HasZK_ = HasZK>
390- using ProverPolynomials_ = ProverPolynomialsBase<AllEntities_<Polynomial, HasZK_>, AllValues_<HasZK_>, Polynomial>;
391-
392- using ProverPolynomials = ProverPolynomials_<HasZK>;
359+ using ProverPolynomials = ProverPolynomialsBase<AllEntities_<Polynomial>, AllValues, Polynomial>;
393360
394361 using PrecomputedData = PrecomputedData_<Polynomial, NUM_PRECOMPUTED_ENTITIES>;
395362
@@ -404,11 +371,8 @@ class MegaFlavor {
404371 /* *
405372 * @brief A container for storing the partially evaluated multivariates produced by sumcheck.
406373 */
407- template <bool HasZK_ = HasZK>
408- using PartiallyEvaluatedMultivariates_ =
409- PartiallyEvaluatedMultivariatesBase<AllEntities_<Polynomial, HasZK_>, ProverPolynomials_<HasZK_>, Polynomial>;
410-
411- using PartiallyEvaluatedMultivariates = PartiallyEvaluatedMultivariates_<HasZK>;
374+ using PartiallyEvaluatedMultivariates =
375+ PartiallyEvaluatedMultivariatesBase<AllEntities_<Polynomial>, ProverPolynomials, Polynomial>;
412376
413377 /* *
414378 * @brief A container for univariates used in sumcheck.
@@ -497,8 +461,8 @@ class MegaFlavor {
497461 /* *
498462 * Note: Made generic for use in MegaRecursive.
499463 **/
500- template <typename Commitment, typename VerificationKey, bool HasZK_ = HasZK >
501- class VerifierCommitments_ : public AllEntities_ <Commitment, HasZK_ > {
464+ template <typename Commitment, typename VerificationKey>
465+ class VerifierCommitments_ : public AllEntities_ <Commitment> {
502466 public:
503467 VerifierCommitments_ (const std::shared_ptr<VerificationKey>& verification_key,
504468 const std::optional<WitnessEntities<Commitment>>& witness_commitments = std::nullopt )
@@ -525,7 +489,7 @@ class MegaFlavor {
525489 }
526490 };
527491 // Specialize for Mega (general case used in MegaRecursive).
528- using VerifierCommitments = VerifierCommitments_<Commitment, VerificationKey, HasZK >;
492+ using VerifierCommitments = VerifierCommitments_<Commitment, VerificationKey>;
529493};
530494
531495} // namespace bb
0 commit comments