Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
sai-deng committed Oct 21, 2024
1 parent 7193a46 commit 25f0269
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 33 deletions.
22 changes: 4 additions & 18 deletions evm_arithmetization/src/fixed_recursive_verifier.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@ use hashbrown::HashMap;
use itertools::{zip_eq, Itertools};
use mpt_trie::partial_trie::{HashedPartialTrie, Node, PartialTrie};
use plonky2::field::extension::Extendable;
use plonky2::fri::{FriConfig, FriParams};
use plonky2::fri::reduction_strategies::FriReductionStrategy;
use plonky2::fri::FriParams;
use plonky2::gates::constant::ConstantGate;
use plonky2::gates::noop::NoopGate;
use plonky2::hash::hash_types::{MerkleCapTarget, RichField, NUM_HASH_OUT_ELTS};
Expand Down Expand Up @@ -63,7 +62,7 @@ use crate::verifier::initial_memory_merkle_cap;

/// The recursion threshold. We end a chain of recursive proofs once we reach
/// this size.
const THRESHOLD_DEGREE_BITS: usize = 10;
const THRESHOLD_DEGREE_BITS: usize = 13;

/// An internal proof for a segment execution along with its public values,
/// for proper connection with contiguous proofs.
Expand Down Expand Up @@ -3101,21 +3100,8 @@ where
/// gates, we might as well use a narrower witness.
fn shrinking_config() -> CircuitConfig {
CircuitConfig {
num_wires: 135,
num_routed_wires: 80,
num_constants: 2,
use_base_arithmetic_gate: true,
security_bits: 1,
num_challenges: 2,
zero_knowledge: false,
max_quotient_degree_factor: 8,
fri_config: FriConfig {
rate_bits: 3,
cap_height: 4,
proof_of_work_bits: 1,
reduction_strategy: FriReductionStrategy::ConstantArityBits(4, 5),
num_query_rounds: 1,
},
num_routed_wires: 40,
..CircuitConfig::standard_recursion_config()
}
}

Expand Down
16 changes: 16 additions & 0 deletions evm_arithmetization/src/testing_utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ use mpt_trie::{
partial_trie::{HashedPartialTrie, Node, PartialTrie},
};
use plonky2::field::goldilocks_field::GoldilocksField;
use plonky2::fri::reduction_strategies::FriReductionStrategy;
use plonky2::fri::FriConfig;
use starky::config::StarkConfig;

pub use crate::cpu::kernel::cancun_constants::*;
pub use crate::cpu::kernel::constants::global_exit_root::*;
Expand All @@ -27,6 +30,19 @@ pub const EMPTY_NODE_HASH: H256 = H256(hex!(
"56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"
));

/// A fast STARK config for testing purposes only.
pub const TEST_STARK_CONFIG: StarkConfig = StarkConfig {
security_bits: 1,
num_challenges: 1,
fri_config: FriConfig {
rate_bits: 1,
cap_height: 4,
proof_of_work_bits: 1,
reduction_strategy: FriReductionStrategy::ConstantArityBits(4, 5),
num_query_rounds: 1,
},
};

pub fn init_logger() {
let _ = try_init_from_env(Env::default().filter_or(DEFAULT_FILTER_ENV, "info"));
}
Expand Down
19 changes: 4 additions & 15 deletions evm_arithmetization/tests/empty_tables.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,16 @@ use std::time::Duration;

use evm_arithmetization::fixed_recursive_verifier::AllRecursiveCircuits;
use evm_arithmetization::prover::prove;
use evm_arithmetization::testing_utils::{init_logger, segment_with_empty_tables};
use evm_arithmetization::testing_utils::{
init_logger, segment_with_empty_tables, TEST_STARK_CONFIG,
};
use evm_arithmetization::verifier::testing::verify_all_proofs;
use evm_arithmetization::AllStark;
use plonky2::field::goldilocks_field::GoldilocksField;
use plonky2::fri::reduction_strategies::FriReductionStrategy;
use plonky2::fri::FriConfig;
use plonky2::plonk::config::PoseidonGoldilocksConfig;
use plonky2::timed;
use plonky2::util::serialization::{DefaultGateSerializer, DefaultGeneratorSerializer};
use plonky2::util::timing::TimingTree;
use starky::config::StarkConfig;

/// This test focuses on testing zkVM proofs with some empty tables.
#[test]
Expand All @@ -26,17 +25,7 @@ fn empty_tables() -> anyhow::Result<()> {
init_logger();

let all_stark = AllStark::<F, D>::default();
let config = StarkConfig {
security_bits: 1,
num_challenges: 1,
fri_config: FriConfig {
rate_bits: 1,
cap_height: 4,
proof_of_work_bits: 1,
reduction_strategy: FriReductionStrategy::ConstantArityBits(4, 5),
num_query_rounds: 1,
},
};
let config = TEST_STARK_CONFIG;
let timing = &mut TimingTree::new("Empty Table Test", log::Level::Info);

// Process and generate segment proof
Expand Down

0 comments on commit 25f0269

Please sign in to comment.