Skip to content

Commit 9da1666

Browse files
authored
prover: mix components' logup sums into the hasher (nexus-xyz#503)
* update prover1 * update prover2
1 parent 998e5fc commit 9da1666

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

prover/src/machine.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -249,16 +249,17 @@ impl<C: MachineChip + Sync> Machine<C> {
249249
let mut tree_builder = commitment_scheme.tree_builder();
250250
let _interaction_trace_location = tree_builder.extend_evals(interaction_trace);
251251
// Handle extensions for the interaction trace
252-
let mut all_claimed_sum = vec![claimed_sum];
252+
let mut all_claimed_sums = vec![claimed_sum];
253253
for (ext, extension_trace) in extensions_iter.clone().zip(extension_traces) {
254254
let (interaction_trace, claimed_sum) = ext.generate_interaction_trace(
255255
extension_trace,
256256
&prover_side_note,
257257
&lookup_elements,
258258
);
259-
all_claimed_sum.push(claimed_sum);
259+
all_claimed_sums.push(claimed_sum);
260260
tree_builder.extend_evals(interaction_trace);
261261
}
262+
prover_channel.mix_felts(&all_claimed_sums);
262263
tree_builder.commit(prover_channel);
263264

264265
let tree_span_provider = &mut TraceLocationAllocator::default();
@@ -268,7 +269,7 @@ impl<C: MachineChip + Sync> Machine<C> {
268269
claimed_sum,
269270
);
270271
let ext_components: Vec<Box<dyn ComponentProver<SimdBackend>>> = extensions_iter
271-
.zip(all_claimed_sum.get(1..).unwrap_or_default())
272+
.zip(all_claimed_sums.get(1..).unwrap_or_default())
272273
.zip(all_log_sizes.get(1..).unwrap_or_default())
273274
.map(|((ext, claimed_sum), log_size)| {
274275
ext.to_component_prover(
@@ -290,7 +291,7 @@ impl<C: MachineChip + Sync> Machine<C> {
290291

291292
Ok(Proof {
292293
stark_proof: proof,
293-
claimed_sum: all_claimed_sum,
294+
claimed_sum: all_claimed_sums,
294295
log_size: all_log_sizes,
295296
})
296297
}
@@ -473,6 +474,7 @@ impl<C: MachineChip + Sync> Machine<C> {
473474
let mut components_ref: Vec<&dyn Component> = ext_components.iter().map(|c| &**c).collect();
474475
components_ref.insert(0, &main_component);
475476

477+
verifier_channel.mix_felts(&claimed_sum);
476478
commitment_scheme.commit(
477479
proof.commitments[INTERACTION_TRACE_IDX],
478480
&log_sizes[INTERACTION_TRACE_IDX],

prover2/machine/src/prove.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ pub fn prove(trace: &impl Trace, view: &View) -> Result<Proof, ProvingError> {
101101
claimed_sum
102102
})
103103
.collect();
104+
prover_channel.mix_felts(&claimed_sums);
104105
tree_builder.commit(prover_channel);
105106

106107
let tree_span_provider = &mut TraceLocationAllocator::default();

prover2/machine/src/verify.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,14 +82,15 @@ pub fn verify(proof: Proof, view: &View) -> Result<(), VerificationError> {
8282
let tree_span_provider = &mut TraceLocationAllocator::default();
8383
let verifier_components: Vec<Box<dyn Component>> = components
8484
.iter()
85-
.zip(claimed_sums)
85+
.zip(&claimed_sums)
8686
.zip(claimed_log_sizes)
8787
.map(|((comp, claimed_sum), log_size)| {
88-
comp.to_component(tree_span_provider, &lookup_elements, log_size, claimed_sum)
88+
comp.to_component(tree_span_provider, &lookup_elements, log_size, *claimed_sum)
8989
})
9090
.collect();
9191
let components_ref: Vec<&dyn Component> = verifier_components.iter().map(|c| &**c).collect();
9292

93+
verifier_channel.mix_felts(&claimed_sums);
9394
commitment_scheme.commit(
9495
proof.commitments[INTERACTION_TRACE_IDX],
9596
&log_sizes[INTERACTION_TRACE_IDX],

0 commit comments

Comments
 (0)