diff --git a/Cargo.lock b/Cargo.lock index fcf5f203..6e41ea19 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -466,9 +466,9 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" +checksum = "5e6b8ba012a258d63c9adfa28b9ddcf66149da6f986c5b5452e629d5ee64bf00" dependencies = [ "async-trait", "bytes", @@ -479,7 +479,7 @@ dependencies = [ "mime", "pin-project-lite", "rustversion", - "sync_wrapper 0.1.2", + "sync_wrapper 1.0.1", "tower-layer", "tower-service", "tracing", @@ -848,9 +848,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.17" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac" +checksum = "b0956a43b323ac1afaffc053ed5c4b7c1f1800bacd1683c353aabbb752515dd3" dependencies = [ "clap_builder", "clap_derive", @@ -858,9 +858,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.17" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73" +checksum = "4d72166dd41634086d5803a47eb71ae740e61d84709c36f3c34110173db3961b" dependencies = [ "anstream", "anstyle", @@ -870,9 +870,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.13" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ "heck", "proc-macro2", @@ -2457,9 +2457,9 @@ dependencies = [ [[package]] name = "k256" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", "ecdsa", @@ -2505,9 +2505,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.158" +version = "0.2.159" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" +checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" [[package]] name = "libgit2-sys" @@ -3254,9 +3254,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.12" +version = "2.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c73c26c01b8c87956cea613c907c9d6ecffd8d18a2a5908e5de0adfaa185cea" +checksum = "fdbef9d1d47087a895abd220ed25eb4ad973a5e26f6a4367b038c25e28dfc2d9" dependencies = [ "memchr", "thiserror", @@ -3317,9 +3317,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "plotters" @@ -3351,9 +3351,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" +checksum = "d30538d42559de6b034bc76fd6dd4c38961b1ee5c6c56e3808c50128fdbc22ce" [[package]] name = "powerfmt" @@ -4948,18 +4948,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" dependencies = [ "proc-macro2", "quote", @@ -5350,15 +5350,15 @@ dependencies = [ [[package]] name = "unicode-width" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "unicode-xid" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "untrusted" diff --git a/Cargo.toml b/Cargo.toml index c8a8085d..274f79a7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -78,7 +78,7 @@ getrandom = "=0.2.14" # 0.2.15 depends on yanked libc 0.2.154 hashbrown = { version = "0.14.5", features = ["serde"] } hex = "0.4.3" home = "0.5.9" -hybrid-array = "0.2.0-rc.9" +hybrid-array = "0.2.0-rc" indicatif = "0.17.8" itertools = "0.12.1" k256 = "0.13.3" diff --git a/core/src/stark/air.rs b/core/src/stark/air.rs index af094bb2..31fe0b1e 100644 --- a/core/src/stark/air.rs +++ b/core/src/stark/air.rs @@ -161,6 +161,9 @@ impl RiscvAir { chips.push(RiscvAir::Bls12381Fp2Op(bls12381_fp2_op)); let bls12381_g1_decompress = Bls12381G1DecompressChip::new(); chips.push(RiscvAir::Bls12381G1Decompress(bls12381_g1_decompress)); + let blake_2s_round = Blake2sRoundChip::new(); + chips.push(RiscvAir::Blake2sRound(blake_2s_round)); + let div_rem = DivRemChip; chips.push(RiscvAir::DivRem(div_rem)); @@ -184,8 +187,6 @@ impl RiscvAir { chips.push(RiscvAir::ProgramMemory(program_memory_init)); let byte = ByteChip::default(); chips.push(RiscvAir::ByteLookup(byte)); - let blake_2s_round = Blake2sRoundChip::new(); - chips.push(RiscvAir::Blake2sRound(blake_2s_round)); chips } diff --git a/core/src/syscall/precompiles/blake2s/air.rs b/core/src/syscall/precompiles/blake2s/air.rs index d054431d..8b519501 100644 --- a/core/src/syscall/precompiles/blake2s/air.rs +++ b/core/src/syscall/precompiles/blake2s/air.rs @@ -191,8 +191,6 @@ where ); } - self.constrain_shuffled_indices(builder, &local.shuffled_indices, local.is_real); - for i in 0..4usize { // 3x diff --git a/core/src/syscall/precompiles/blake2s/columns.rs b/core/src/syscall/precompiles/blake2s/columns.rs index 1d17a210..897f4159 100644 --- a/core/src/syscall/precompiles/blake2s/columns.rs +++ b/core/src/syscall/precompiles/blake2s/columns.rs @@ -15,8 +15,6 @@ pub struct Blake2sRoundCols { pub a_ptr: T, pub b_ptr: T, - pub shuffled_indices: [T; 16], - /// Memory layout: /// a: v0[0] || v0[1] || v0[2] || v0[3] || /// v1[0] || v1[1] || v1[2] || v1[3] || diff --git a/core/src/syscall/precompiles/blake2s/mod.rs b/core/src/syscall/precompiles/blake2s/mod.rs index ca52c776..d4beb98f 100644 --- a/core/src/syscall/precompiles/blake2s/mod.rs +++ b/core/src/syscall/precompiles/blake2s/mod.rs @@ -6,9 +6,6 @@ mod trace; pub use columns::*; use crate::runtime::{MemoryReadRecord, MemoryWriteRecord}; -use crate::stark::SphinxAirBuilder; -use p3_air::AirBuilder; -use p3_field::AbstractField; use serde::Deserialize; use serde::Serialize; @@ -31,23 +28,6 @@ impl Blake2sRoundChip { pub fn new() -> Self { Blake2sRoundChip } - pub fn constrain_shuffled_indices( - &self, - builder: &mut AB, - indices: &[AB::Var], - is_real: AB::Var, - ) { - for index in 0..4 { - builder - .when(is_real) - .assert_eq(indices[index], AB::F::from_canonical_usize(0)); - } - for index in 4..indices.len() { - builder - .when(is_real) - .assert_eq(indices[index], AB::F::from_canonical_usize(1)); - } - } } #[derive(Debug, Clone, Serialize, Deserialize)] diff --git a/core/src/syscall/precompiles/blake2s/trace.rs b/core/src/syscall/precompiles/blake2s/trace.rs index 8159d8c7..3061fb66 100644 --- a/core/src/syscall/precompiles/blake2s/trace.rs +++ b/core/src/syscall/precompiles/blake2s/trace.rs @@ -153,10 +153,6 @@ impl MachineAir for Blake2sRoundChip { // 3x (m2, R1, R2) for i in 0..4usize { - cols.shuffled_indices[i + 4] = F::from_canonical_u32(1); - cols.shuffled_indices[i + 8] = F::from_canonical_u32(1); - cols.shuffled_indices[i + 12] = F::from_canonical_u32(1); - let v0 = v0_outer[i]; let v1 = v1_outer[i]; let v2 = v2_outer[i]; diff --git a/core/src/utils/prove.rs b/core/src/utils/prove.rs index 1f223cdc..dee78373 100644 --- a/core/src/utils/prove.rs +++ b/core/src/utils/prove.rs @@ -356,11 +356,11 @@ where OpeningProof: Send + Sync, ShardMainData: Serialize + DeserializeOwned, { - //#[cfg(debug_assertions)] - //{ - let record_clone = record.clone(); - machine.debug_constraints(pk, record_clone); - //} + #[cfg(debug_assertions)] + { + let record_clone = record.clone(); + machine.debug_constraints(pk, record_clone); + } let stats = record.stats().clone(); let cycles = stats.get("cpu_events").unwrap(); diff --git a/zkvm/precompiles/src/lib.rs b/zkvm/precompiles/src/lib.rs index 1c627089..a5a1d7aa 100644 --- a/zkvm/precompiles/src/lib.rs +++ b/zkvm/precompiles/src/lib.rs @@ -47,13 +47,5 @@ extern "C" { pub fn sys_alloc_aligned(bytes: usize, align: usize) -> *mut u8; pub fn syscall_bls12381_g2_add(p: *mut u32, q: *const u32); pub fn syscall_bls12381_g2_double(p: *mut u32); - pub fn syscall_blake2s_xor_rotate_16(w: *mut u32); - - pub fn syscall_blake2s_add_2(left: *mut u32, right: *const u32); - pub fn syscall_blake2s_add_3(left: *mut u32, right: *const u32); - pub fn syscall_blake2s_xor_rotate_right_16(left: *mut u32, right: *const u32); - pub fn syscall_blake2s_xor_rotate_right_12(left: *mut u32, right: *const u32); - pub fn syscall_blake2s_xor_rotate_right_8(left: *mut u32, right: *const u32); - pub fn syscall_blake2s_xor_rotate_right_7(left: *mut u32, right: *const u32); - pub fn syscall_blake2s_quarter_round(left: *mut u32, right: *const u32); + pub fn syscall_blake2s_round(left: *mut u32, right: *const u32); }