From 213b1b6e78a428d27bd4858246ff606b72b20829 Mon Sep 17 00:00:00 2001 From: zkmod <148928866+zkmod@users.noreply.github.com> Date: Sat, 8 Jun 2024 00:51:13 +0800 Subject: [PATCH] fix small segment --- examples/zkmips.rs | 6 +++--- src/all_stark.rs | 2 ++ src/fixed_recursive_verifier.rs | 6 +++--- src/witness/traces.rs | 16 ++++++++-------- 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/examples/zkmips.rs b/examples/zkmips.rs index 8ec8e294..13e5dec1 100644 --- a/examples/zkmips.rs +++ b/examples/zkmips.rs @@ -33,9 +33,9 @@ use zkm::verifier::verify_proof; const DEGREE_BITS_RANGE: [[std::ops::Range; 6]; 5] = [ [10..21, 10..15, 10..18, 8..15, 10..21, 15..23], - [10..21, 12..22, 13..21, 8..21, 10..21, 13..23], - [10..21, 12..22, 13..21, 8..21, 10..21, 13..23], - [10..21, 12..22, 13..21, 8..21, 10..21, 13..23], + [10..21, 12..22, 13..21, 8..21, 6..21, 13..23], + [10..21, 12..22, 12..21, 8..21, 10..21, 13..23], + [10..21, 12..22, 13..21, 8..21, 8..21, 13..23], [10..21, 12..22, 13..21, 8..21, 10..21, 13..23], ]; diff --git a/src/all_stark.rs b/src/all_stark.rs index de8114cb..99b7d655 100644 --- a/src/all_stark.rs +++ b/src/all_stark.rs @@ -71,6 +71,8 @@ pub enum Table { pub(crate) const NUM_TABLES: usize = Table::Memory as usize + 1; pub(crate) const NUM_PUBLIC_INPUT_USERDATA: usize = 32; +pub(crate) const MIN_TRACE_LEN: usize = 1 << 6; + impl Table { pub(crate) fn all() -> [Self; NUM_TABLES] { [ diff --git a/src/fixed_recursive_verifier.rs b/src/fixed_recursive_verifier.rs index 5c03cb09..471f5d93 100644 --- a/src/fixed_recursive_verifier.rs +++ b/src/fixed_recursive_verifier.rs @@ -372,14 +372,14 @@ where &all_stark.cross_table_lookups, stark_config, ); - let keccak = RecursiveCircuitsForTable::new( + let poseidon = RecursiveCircuitsForTable::new( Table::Poseidon, &all_stark.poseidon_stark, degree_bits_ranges[Table::Poseidon as usize].clone(), &all_stark.cross_table_lookups, stark_config, ); - let keccak_sponge = RecursiveCircuitsForTable::new( + let poseidon_sponge = RecursiveCircuitsForTable::new( Table::PoseidonSponge, &all_stark.poseidon_sponge_stark, degree_bits_ranges[Table::PoseidonSponge as usize].clone(), @@ -401,7 +401,7 @@ where stark_config, ); - let by_table = [arithmetic, cpu, keccak, keccak_sponge, logic, memory]; + let by_table = [arithmetic, cpu, poseidon, poseidon_sponge, logic, memory]; let root = Self::create_root_circuit(&by_table, stark_config); let aggregation = Self::create_aggregation_circuit(&root); let block = Self::create_block_circuit(&aggregation); diff --git a/src/witness/traces.rs b/src/witness/traces.rs index 9ed2aea4..bc40ba0c 100644 --- a/src/witness/traces.rs +++ b/src/witness/traces.rs @@ -3,8 +3,9 @@ use plonky2::field::polynomial::PolynomialValues; use plonky2::hash::hash_types::RichField; use plonky2::timed; use plonky2::util::timing::TimingTree; +use std::cmp::max; -use crate::all_stark::{AllStark, NUM_TABLES}; +use crate::all_stark::{AllStark, MIN_TRACE_LEN, NUM_TABLES}; use crate::arithmetic::{BinaryOperator, Operation}; use crate::config::StarkConfig; use crate::cpu::columns::CpuColumnsView; @@ -140,6 +141,7 @@ impl Traces { T: RichField + Extendable, { let cap_elements = config.fri_config.num_cap_elements(); + let min_rows = max(cap_elements, MIN_TRACE_LEN); let Traces { arithmetic_ops, cpu, @@ -161,23 +163,21 @@ impl Traces { "generate Poseidon trace", all_stark .poseidon_stark - .generate_trace(poseidon_inputs, cap_elements, timing) + .generate_trace(poseidon_inputs, min_rows, timing) ); let poseidon_sponge_trace = timed!( timing, "generate Poseidon sponge trace", - all_stark.poseidon_sponge_stark.generate_trace( - poseidon_sponge_ops, - cap_elements, - timing - ) + all_stark + .poseidon_sponge_stark + .generate_trace(poseidon_sponge_ops, min_rows, timing) ); let logic_trace = timed!( timing, "generate logic trace", all_stark .logic_stark - .generate_trace(logic_ops, cap_elements, timing) + .generate_trace(logic_ops, min_rows, timing) ); let memory_trace = timed!( timing,