From 662ea46afce74c1e182081ffd405109709ca901e Mon Sep 17 00:00:00 2001 From: Hamy Ratoanina Date: Thu, 30 Nov 2023 17:17:23 -0500 Subject: [PATCH 1/2] Remove is_keccak_sponge --- evm/spec/tables/cpu.tex | 1 - evm/spec/zkevm.pdf | Bin 294878 -> 294759 bytes evm/src/cpu/columns/mod.rs | 3 --- evm/src/cpu/cpu_stark.rs | 8 +++++++- evm/src/witness/operation.rs | 1 - 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/evm/spec/tables/cpu.tex b/evm/spec/tables/cpu.tex index 401081d37d..7bca5a9f5e 100644 --- a/evm/spec/tables/cpu.tex +++ b/evm/spec/tables/cpu.tex @@ -31,7 +31,6 @@ \subsubsection{CPU columns} \item \texttt{is\_kernel\_mode}: Boolean indicating whether we are in kernel (i.e. privileged) mode. This means we are executing kernel code, and we have access to privileged instructions. \item \texttt{gas}: The current amount of gas used in the current context. It is eventually checked to be below the current gas limit. Must fit in 32 bits. - \item \texttt{is\_keccak\_sponge}: Boolean indicating whether we are executing a Keccak hash. Only used as a filter for CTLs. \item \texttt{clock}: Monotonic counter which starts at 0 and is incremented by 1 at each row. Used to enforce correct ordering of memory accesses. \item \texttt{opcode\_bits}: 8 boolean columns, which are the bit decomposition of the opcode being read at the current PC. \end{itemize} diff --git a/evm/spec/zkevm.pdf b/evm/spec/zkevm.pdf index c6a444447d75c7d1a0bb57711db03d3e3696e72d..faba2dd19a6bdb482c3af850bcb5afb90ab5b85e 100644 GIT binary patch delta 6196 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 SwSNR33OF)23MC~)Peuy(O|!QE delta 6296 zcmV;J7-#3_{t@2)5wJ-H0Wy;j0x5rulG{qdKoExS^AvmM2F!G4_Iz1sD+q#0P*A+E zZF;~%uBU;)MbO0a-yvpo5q_XRjG}K4)l2_mNSNxAR1NzJbr+LB8YQrb+ zx%N0kFG-O;Al1jgL`Q-ANmPGqIBNx#f+&mu)kzPh+ui12w)<^9e4Q_l0%*@B6%chF z>Lw3bCLCJJd9|Hw*2!h)Q@ho^mKP}3Im%^%rH!l?ZHXy{Jw;C3rcNe##Le5bx50Vb zmI2_vZ%Y^rMvjGUR`UhNE z12Z=@lVJoXf4x~tliaouzUx=;CT>at;SJEYSe8;s?8uham8wWO&?L0W(hRvGIbJEh zKHX@LL(YzN74Jqh2N16Y(2oxvdPK(ICoxY@?jXt8TmBwFB-8WN)No!a5rNI$Siv82aJ6)vlkuux7Q6W5&Wv%`{I(eJce& zp0nPYe*op9rsMFcYsc_u#2HUtNVgoQ72{S-1HU`lSnKnbZQWGm7>2Wr)-u1oY^pQq z@=L5Ll!mn^k@~S3sI%+?H8w3f+c>XtP95*No<7FQG~z>?*0*8%1R9*o%eJPTGHPp+ z_O=mla&2jcS7#fT)eX(q{E?Pb(!y%ArHjy0e?weO;Q$!sVVTcV-4D}<#W7%~S{XQY z)rVb3%{2}C9c!QITToGsCq-A~cFS(HMrkE{o+BW+YLLmC}(R$W0#buObh50%c(hC=Y_N5CcZ_qxm ze_Xhd0^eA<681;uz>lhnhOSd}?5GT%LbV@LV}B;{Ff?@-7�Cqu^rgFfYf)1DP#+ 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 { /// If CPU cycle: the opcode, broken up into bits in little-endian order. pub opcode_bits: [T; 8], - /// Filter. 1 iff a Keccak sponge lookup is performed on this row. - pub is_keccak_sponge: T, - /// Columns shared by various operations. pub(crate) general: CpuGeneralColumnsView, diff --git a/evm/src/cpu/cpu_stark.rs b/evm/src/cpu/cpu_stark.rs index 1b89d5af1a..765e03ad4b 100644 --- a/evm/src/cpu/cpu_stark.rs +++ b/evm/src/cpu/cpu_stark.rs @@ -49,7 +49,13 @@ pub(crate) fn ctl_data_keccak_sponge() -> Vec> { /// CTL filter for a call to the Keccak sponge. pub(crate) fn ctl_filter_keccak_sponge() -> Filter { - Filter::new_simple(Column::single(COL_MAP.is_keccak_sponge)) + Filter::new( + vec![( + Column::single(COL_MAP.op.jumpdest_keccak_general), + Column::linear_combination_with_constant([(COL_MAP.opcode_bits[1], -F::ONE)], F::ONE), + )], + vec![], + ) } /// Creates the vector of `Columns` corresponding to the two inputs and diff --git a/evm/src/witness/operation.rs b/evm/src/witness/operation.rs index 3d09210194..848dae8532 100644 --- a/evm/src/witness/operation.rs +++ b/evm/src/witness/operation.rs @@ -129,7 +129,6 @@ pub(crate) fn generate_keccak_general( state: &mut GenerationState, mut row: CpuColumnsView, ) -> Result<(), ProgramError> { - row.is_keccak_sponge = F::ONE; let [(context, _), (segment, log_in1), (base_virt, log_in2), (len, log_in3)] = stack_pop_with_log_and_fill::<4, _>(state, &mut row)?; let len = u256_to_usize(len)?; From 4db2f54081aa918c45c8c11f19487899a45c3fa6 Mon Sep 17 00:00:00 2001 From: Hamy Ratoanina Date: Thu, 7 Dec 2023 10:55:21 -0500 Subject: [PATCH 2/2] Apply comment --- evm/src/cpu/cpu_stark.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/evm/src/cpu/cpu_stark.rs b/evm/src/cpu/cpu_stark.rs index 765e03ad4b..5eaa0c3fda 100644 --- a/evm/src/cpu/cpu_stark.rs +++ b/evm/src/cpu/cpu_stark.rs @@ -48,6 +48,7 @@ pub(crate) fn ctl_data_keccak_sponge() -> Vec> { } /// CTL filter for a call to the Keccak sponge. +// KECCAK_GENERAL is differentiated from JUMPDEST by its second bit set to 0. pub(crate) fn ctl_filter_keccak_sponge() -> Filter { Filter::new( vec![(