@@ -76,28 +76,27 @@ template <typename Flavor> void OinkProver<Flavor>::commit_to_wires()
7676{
7777 BB_BENCH_NAME (" OinkProver::commit_to_wires" );
7878 auto batch = commitment_key.start_batch ();
79+ auto & tails = prover_instance->masking_tail_data .tails ;
7980
8081 // Commit to the first three wire polynomials; w_4 is deferred until after memory records are added
81- batch.add_to_batch (prover_instance->polynomials .w_l , commitment_labels.w_l );
82- batch.add_to_batch (prover_instance->polynomials .w_r , commitment_labels.w_r );
83- batch.add_to_batch (prover_instance->polynomials .w_o , commitment_labels.w_o );
82+ batch.add_to_batch (prover_instance->polynomials .w_l , commitment_labels.w_l , &tails. w_l );
83+ batch.add_to_batch (prover_instance->polynomials .w_r , commitment_labels.w_r , &tails. w_r );
84+ batch.add_to_batch (prover_instance->polynomials .w_o , commitment_labels.w_o , &tails. w_o );
8485
8586 if constexpr (IsMegaFlavor<Flavor>) {
86- for (auto [polynomial, label] :
87- zip_view (prover_instance->polynomials .get_ecc_op_wires (), commitment_labels.get_ecc_op_wires ())) {
88- batch.add_to_batch (polynomial, label);
87+ for (auto [polynomial, tail, label] : zip_view (prover_instance->polynomials .get_ecc_op_wires (),
88+ tails.get_ecc_op_wires (),
89+ commitment_labels.get_ecc_op_wires ())) {
90+ batch.add_to_batch (polynomial, label, &tail);
8991 }
90- for (auto [polynomial, label] :
91- zip_view (prover_instance->polynomials .get_databus_entities (), commitment_labels.get_databus_entities ())) {
92- batch.add_to_batch (polynomial, label);
92+ for (auto [polynomial, tail, label] : zip_view (prover_instance->polynomials .get_databus_entities (),
93+ tails.get_databus_entities (),
94+ commitment_labels.get_databus_entities ())) {
95+ batch.add_to_batch (polynomial, label, &tail);
9396 }
9497 }
9598
96- // MaskingTailData adjusts commitments for masked polys (tail already registered in prove())
97- auto computed_commitments = batch.commit_and_send_to_verifier (transcript,
98- std::numeric_limits<size_t >::max (),
99- &prover_instance->masking_tail_data ,
100- &prover_instance->polynomials );
99+ auto computed_commitments = batch.commit_and_send_to_verifier (transcript);
101100 prover_instance->commitments .w_l = computed_commitments[0 ];
102101 prover_instance->commitments .w_r = computed_commitments[1 ];
103102 prover_instance->commitments .w_o = computed_commitments[2 ];
@@ -127,13 +126,14 @@ template <typename Flavor> void OinkProver<Flavor>::commit_to_lookup_counts_and_
127126
128127 // Commit to lookup argument polynomials and the finalized (i.e. with memory records) fourth wire polynomial
129128 auto batch = commitment_key.start_batch ();
130- batch.add_to_batch (prover_instance->polynomials .lookup_read_counts , commitment_labels.lookup_read_counts );
131- batch.add_to_batch (prover_instance->polynomials .lookup_read_tags , commitment_labels.lookup_read_tags );
132- batch.add_to_batch (prover_instance->polynomials .w_4 , commitment_labels.w_4 );
133- auto computed_commitments = batch.commit_and_send_to_verifier (transcript,
134- std::numeric_limits<size_t >::max (),
135- &prover_instance->masking_tail_data ,
136- &prover_instance->polynomials );
129+ auto & tails = prover_instance->masking_tail_data .tails ;
130+ batch.add_to_batch (prover_instance->polynomials .lookup_read_counts ,
131+ commitment_labels.lookup_read_counts ,
132+ &tails.lookup_read_counts );
133+ batch.add_to_batch (
134+ prover_instance->polynomials .lookup_read_tags , commitment_labels.lookup_read_tags , &tails.lookup_read_tags );
135+ batch.add_to_batch (prover_instance->polynomials .w_4 , commitment_labels.w_4 , &tails.w_4 );
136+ auto computed_commitments = batch.commit_and_send_to_verifier (transcript);
137137
138138 prover_instance->commitments .lookup_read_counts = computed_commitments[0 ];
139139 prover_instance->commitments .lookup_read_tags = computed_commitments[1 ];
@@ -155,19 +155,19 @@ template <typename Flavor> void OinkProver<Flavor>::commit_to_logderiv_inverses(
155155 compute_logderivative_inverses (*prover_instance);
156156
157157 auto batch = commitment_key.start_batch ();
158- batch.add_to_batch (prover_instance->polynomials .lookup_inverses , commitment_labels.lookup_inverses );
158+ auto & tails = prover_instance->masking_tail_data .tails ;
159+ batch.add_to_batch (
160+ prover_instance->polynomials .lookup_inverses , commitment_labels.lookup_inverses , &tails.lookup_inverses );
159161
160162 // If Mega, commit to the databus inverse polynomials and send
161163 if constexpr (IsMegaFlavor<Flavor>) {
162- for (auto [polynomial, label] :
163- zip_view (prover_instance->polynomials .get_databus_inverses (), commitment_labels.get_databus_inverses ())) {
164- batch.add_to_batch (polynomial, label);
164+ for (auto [polynomial, tail, label] : zip_view (prover_instance->polynomials .get_databus_inverses (),
165+ tails.get_databus_inverses (),
166+ commitment_labels.get_databus_inverses ())) {
167+ batch.add_to_batch (polynomial, label, &tail);
165168 };
166169 }
167- auto computed_commitments = batch.commit_and_send_to_verifier (transcript,
168- std::numeric_limits<size_t >::max (),
169- &prover_instance->masking_tail_data ,
170- &prover_instance->polynomials );
170+ auto computed_commitments = batch.commit_and_send_to_verifier (transcript);
171171
172172 prover_instance->commitments .lookup_inverses = computed_commitments[0 ];
173173 if constexpr (IsMegaFlavor<Flavor>) {
@@ -189,13 +189,9 @@ template <typename Flavor> void OinkProver<Flavor>::commit_to_z_perm()
189189 compute_grand_product_polynomial (*prover_instance);
190190
191191 auto & z_perm = prover_instance->polynomials .z_perm ;
192- // z_perm uses CommitBatch like all other witness polys. MaskingTailData handles masking.
193192 auto batch = commitment_key.start_batch ();
194- batch.add_to_batch (z_perm, commitment_labels.z_perm );
195- auto commitments = batch.commit_and_send_to_verifier (transcript,
196- std::numeric_limits<size_t >::max (),
197- &prover_instance->masking_tail_data ,
198- &prover_instance->polynomials );
193+ batch.add_to_batch (z_perm, commitment_labels.z_perm , &prover_instance->masking_tail_data .tails .z_perm );
194+ auto commitments = batch.commit_and_send_to_verifier (transcript);
199195 prover_instance->commitments .z_perm = commitments[0 ];
200196}
201197
0 commit comments