From 6f771b0d2b27adbc1272e4762ca843c323656984 Mon Sep 17 00:00:00 2001 From: sashass1315 Date: Thu, 16 Oct 2025 22:33:37 +0300 Subject: [PATCH 1/2] Update lib.rs --- verifier/src/lib.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/verifier/src/lib.rs b/verifier/src/lib.rs index f3daa8cb1..29231e8f9 100644 --- a/verifier/src/lib.rs +++ b/verifier/src/lib.rs @@ -167,12 +167,10 @@ where // used to draw random elements needed to construct the next trace segment. The last trace // commitment is used to draw a set of random coefficients which the prover uses to compute // constraint composition polynomial. - const MAIN_TRACE_IDX: usize = 0; - const AUX_TRACE_IDX: usize = 1; - let trace_commitments = channel.read_trace_commitments(); + let (main_trace_commitment, aux_trace_commitment) = channel.read_trace_commitments(); // reseed the coin with the commitment to the main trace segment - public_coin.reseed(trace_commitments[MAIN_TRACE_IDX]); + public_coin.reseed(main_trace_commitment); // process auxiliary trace segments (if any), to build a set of random elements for each segment let aux_trace_rand_elements = if air.trace_info().is_multi_segment() { @@ -180,7 +178,7 @@ where .get_aux_rand_elements(&mut public_coin) .expect("failed to generate the random elements needed to build the auxiliary trace"); - public_coin.reseed(trace_commitments[AUX_TRACE_IDX]); + public_coin.reseed(aux_trace_commitment.expect("missing auxiliary trace commitment")); Some(aux_rand_elements) } else { From 29592c37477f50a5ee2049519e62c24ee8b49ad2 Mon Sep 17 00:00:00 2001 From: sashass1315 Date: Thu, 16 Oct 2025 22:33:48 +0300 Subject: [PATCH 2/2] Update channel.rs --- verifier/src/channel.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/verifier/src/channel.rs b/verifier/src/channel.rs index 1a5899407..6b10af480 100644 --- a/verifier/src/channel.rs +++ b/verifier/src/channel.rs @@ -155,10 +155,16 @@ where /// Returns execution trace commitments sent by the prover. /// - /// For computations requiring multiple trace segment, the returned slice will contain a - /// commitment for each trace segment. - pub fn read_trace_commitments(&self) -> &[H::Digest] { - &self.trace_commitments + /// Returns a tuple containing the main trace commitment and an optional auxiliary trace + /// commitment (present only for multi-segment traces). + pub fn read_trace_commitments(&self) -> (H::Digest, Option) { + let main = self.trace_commitments[0]; + let aux = if self.trace_commitments.len() > 1 { + Some(self.trace_commitments[1]) + } else { + None + }; + (main, aux) } /// Returns constraint evaluation commitment sent by the prover.