From f80ebe77f38ecbf94ce3c357fcc5332344561b6d Mon Sep 17 00:00:00 2001 From: Hamy Ratoanina Date: Thu, 11 Jan 2024 11:36:47 -0500 Subject: [PATCH] Remove full memory channel (#1450) * Remove a full memory channel * Remove unnecessary uses * Revert PDF change * Apply comments * Apply more comments * Move disabling functions to cpu_stark.rs * Apply comments --- evm/spec/zkevm.pdf | Bin 315675 -> 296911 bytes evm/src/all_stark.rs | 33 ++++-- evm/src/cpu/contextops.rs | 145 ++++---------------------- evm/src/cpu/cpu_stark.rs | 127 ++++++++++++++++++++++- evm/src/cpu/dup_swap.rs | 22 ---- evm/src/cpu/kernel/tests/add11.rs | 2 +- evm/src/cpu/membus.rs | 7 +- evm/src/cpu/memio.rs | 2 +- evm/src/cpu/shift.rs | 4 +- evm/src/cpu/syscalls_exceptions.rs | 159 +++++++++++++---------------- evm/src/witness/operation.rs | 138 ++++++++++++------------- 11 files changed, 316 insertions(+), 323 deletions(-) diff --git a/evm/spec/zkevm.pdf b/evm/spec/zkevm.pdf index 97217d5d8069f79d32afa655ebcfafe1cea12357..3b10fba30b89f1ad27d84f3a860fbb31286cb1e0 100644 GIT binary patch delta 111745 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 E2c3ol@&Et; delta 129755 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 E2d*NNYybcN diff --git a/evm/src/all_stark.rs b/evm/src/all_stark.rs index a2996eb4..cf03a600 100644 --- a/evm/src/all_stark.rs +++ b/evm/src/all_stark.rs @@ -135,6 +135,11 @@ fn ctl_byte_packing() -> CrossTableLookup { cpu_stark::ctl_data_byte_packing_push(), Some(cpu_stark::ctl_filter_byte_packing_push()), ); + let cpu_jumptable_read_looking = TableWithColumns::new( + Table::Cpu, + cpu_stark::ctl_data_jumptable_read(), + Some(cpu_stark::ctl_filter_syscall_exceptions()), + ); let byte_packing_looked = TableWithColumns::new( Table::BytePacking, byte_packing_stark::ctl_looked_data(), @@ -145,6 +150,7 @@ fn ctl_byte_packing() -> CrossTableLookup { cpu_packing_looking, cpu_unpacking_looking, cpu_push_packing_looking, + cpu_jumptable_read_looking, ], byte_packing_looked, ) @@ -238,6 +244,16 @@ fn ctl_memory() -> CrossTableLookup { cpu_stark::ctl_data_partial_memory::(), Some(cpu_stark::ctl_filter_partial_memory()), ); + let cpu_set_context_write = TableWithColumns::new( + Table::Cpu, + cpu_stark::ctl_data_memory_old_sp_write_set_context::(), + Some(cpu_stark::ctl_filter_set_context()), + ); + let cpu_set_context_read = TableWithColumns::new( + Table::Cpu, + cpu_stark::ctl_data_memory_new_sp_read_set_context::(), + Some(cpu_stark::ctl_filter_set_context()), + ); let keccak_sponge_reads = (0..KECCAK_RATE_BYTES).map(|i| { TableWithColumns::new( Table::KeccakSponge, @@ -252,12 +268,17 @@ fn ctl_memory() -> CrossTableLookup { Some(byte_packing_stark::ctl_looking_memory_filter(i)), ) }); - let all_lookers = iter::once(cpu_memory_code_read) - .chain(cpu_memory_gp_ops) - .chain(iter::once(cpu_push_write_ops)) - .chain(keccak_sponge_reads) - .chain(byte_packing_ops) - .collect(); + let all_lookers = vec![ + cpu_memory_code_read, + cpu_push_write_ops, + cpu_set_context_write, + cpu_set_context_read, + ] + .into_iter() + .chain(cpu_memory_gp_ops) + .chain(keccak_sponge_reads) + .chain(byte_packing_ops) + .collect(); let memory_looked = TableWithColumns::new( Table::Memory, memory_stark::ctl_data(), diff --git a/evm/src/cpu/contextops.rs b/evm/src/cpu/contextops.rs index 77debc75..7f46d141 100644 --- a/evm/src/cpu/contextops.rs +++ b/evm/src/cpu/contextops.rs @@ -7,11 +7,12 @@ use plonky2::iop::ext_target::ExtensionTarget; use plonky2::plonk::circuit_builder::CircuitBuilder; use super::columns::ops::OpsColumnsView; +use super::cpu_stark::{disable_unused_channels, disable_unused_channels_circuit}; use super::membus::NUM_GP_CHANNELS; use crate::constraint_consumer::{ConstraintConsumer, RecursiveConstraintConsumer}; use crate::cpu::columns::CpuColumnsView; use crate::cpu::kernel::constants::context_metadata::ContextMetadata; -use crate::memory::segments::{Segment, SEGMENT_SCALING_FACTOR}; +use crate::memory::segments::Segment; use crate::memory::VALUE_LIMBS; // If true, the instruction will keep the current context for the next row. @@ -95,12 +96,7 @@ fn eval_packed_get( yield_constr.constraint(filter * (nv.stack_len - (lv.stack_len + P::ONES))); // Unused channels. - for i in 1..NUM_GP_CHANNELS { - if i != 3 { - let channel = lv.mem_channels[i]; - yield_constr.constraint(filter * channel.used); - } - } + disable_unused_channels(lv, filter, vec![1], yield_constr); yield_constr.constraint(filter * nv.mem_channels[0].used); } @@ -137,13 +133,7 @@ fn eval_ext_circuit_get, const D: usize>( } // Unused channels. - for i in 1..NUM_GP_CHANNELS { - if i != 3 { - let channel = lv.mem_channels[i]; - let constr = builder.mul_extension(filter, channel.used); - yield_constr.constraint(builder, constr); - } - } + disable_unused_channels_circuit(builder, lv, filter, vec![1], yield_constr); { let constr = builder.mul_extension(filter, nv.mem_channels[0].used); yield_constr.constraint(builder, constr); @@ -158,12 +148,6 @@ fn eval_packed_set( ) { let filter = lv.op.context_op * lv.opcode_bits[0]; let stack_top = lv.mem_channels[0].value; - let write_old_sp_channel = lv.mem_channels[1]; - let read_new_sp_channel = lv.mem_channels[2]; - // We need to unscale the context metadata segment and related field. - let ctx_metadata_segment = P::Scalar::from_canonical_usize(Segment::ContextMetadata.unscale()); - let stack_size_field = P::Scalar::from_canonical_usize(ContextMetadata::StackSize.unscale()); - let local_sp_dec = lv.stack_len - P::ONES; // The next row's context is read from stack_top. yield_constr.constraint(filter * (stack_top[2] - nv.context)); @@ -171,27 +155,9 @@ fn eval_packed_set( yield_constr.constraint(filter * limb); } - // The old SP is decremented (since the new context was popped) and written to memory. - yield_constr.constraint(filter * (write_old_sp_channel.value[0] - local_sp_dec)); - for &limb in &write_old_sp_channel.value[1..] { - yield_constr.constraint(filter * limb); - } - yield_constr.constraint(filter * (write_old_sp_channel.used - P::ONES)); - yield_constr.constraint(filter * write_old_sp_channel.is_read); - yield_constr.constraint(filter * (write_old_sp_channel.addr_context - lv.context)); - yield_constr.constraint(filter * (write_old_sp_channel.addr_segment - ctx_metadata_segment)); - yield_constr.constraint(filter * (write_old_sp_channel.addr_virtual - stack_size_field)); - + // The old SP is decremented (since the new context was popped) and stored in memory. // The new SP is loaded from memory. - yield_constr.constraint(filter * (read_new_sp_channel.value[0] - nv.stack_len)); - for &limb in &read_new_sp_channel.value[1..] { - yield_constr.constraint(filter * limb); - } - yield_constr.constraint(filter * (read_new_sp_channel.used - P::ONES)); - yield_constr.constraint(filter * (read_new_sp_channel.is_read - P::ONES)); - yield_constr.constraint(filter * (read_new_sp_channel.addr_context - nv.context)); - yield_constr.constraint(filter * (read_new_sp_channel.addr_segment - ctx_metadata_segment)); - yield_constr.constraint(filter * (read_new_sp_channel.addr_virtual - stack_size_field)); + // This is all done with CTLs: nothing is constrained here. // Constrain stack_inv_aux_2. let new_top_channel = nv.mem_channels[0]; @@ -200,17 +166,19 @@ fn eval_packed_set( * (lv.general.stack().stack_inv_aux * lv.opcode_bits[0] - lv.general.stack().stack_inv_aux_2), ); - // The new top is loaded in memory channel 3, if the stack isn't empty (see eval_packed). + // The new top is loaded in memory channel 2, if the stack isn't empty (see eval_packed). for (&limb_new_top, &limb_read_top) in new_top_channel .value .iter() - .zip(lv.mem_channels[3].value.iter()) + .zip(lv.mem_channels[2].value.iter()) { yield_constr.constraint( lv.op.context_op * lv.general.stack().stack_inv_aux_2 * (limb_new_top - limb_read_top), ); } + // Unused channels. + disable_unused_channels(lv, filter, vec![1], yield_constr); yield_constr.constraint(filter * new_top_channel.used); } @@ -224,17 +192,6 @@ fn eval_ext_circuit_set, const D: usize>( ) { let filter = builder.mul_extension(lv.op.context_op, lv.opcode_bits[0]); let stack_top = lv.mem_channels[0].value; - let write_old_sp_channel = lv.mem_channels[1]; - let read_new_sp_channel = lv.mem_channels[2]; - // We need to unscale the context metadata segment and related field. - let ctx_metadata_segment = builder.constant_extension(F::Extension::from_canonical_usize( - Segment::ContextMetadata.unscale(), - )); - let stack_size_field = builder.constant_extension(F::Extension::from_canonical_usize( - ContextMetadata::StackSize.unscale(), - )); - let one = builder.one_extension(); - let local_sp_dec = builder.sub_extension(lv.stack_len, one); // The next row's context is read from stack_top. { @@ -247,73 +204,9 @@ fn eval_ext_circuit_set, const D: usize>( yield_constr.constraint(builder, constr); } - // The old SP is decremented (since the new context was popped) and written to memory. - { - let diff = builder.sub_extension(write_old_sp_channel.value[0], local_sp_dec); - let constr = builder.mul_extension(filter, diff); - yield_constr.constraint(builder, constr); - } - for &limb in &write_old_sp_channel.value[1..] { - let constr = builder.mul_extension(filter, limb); - yield_constr.constraint(builder, constr); - } - { - let constr = builder.mul_sub_extension(filter, write_old_sp_channel.used, filter); - yield_constr.constraint(builder, constr); - } - { - let constr = builder.mul_extension(filter, write_old_sp_channel.is_read); - yield_constr.constraint(builder, constr); - } - { - let diff = builder.sub_extension(write_old_sp_channel.addr_context, lv.context); - let constr = builder.mul_extension(filter, diff); - yield_constr.constraint(builder, constr); - } - { - let diff = builder.sub_extension(write_old_sp_channel.addr_segment, ctx_metadata_segment); - let constr = builder.mul_extension(filter, diff); - yield_constr.constraint(builder, constr); - } - { - let diff = builder.sub_extension(write_old_sp_channel.addr_virtual, stack_size_field); - let constr = builder.mul_extension(filter, diff); - yield_constr.constraint(builder, constr); - } - + // The old SP is decremented (since the new context was popped) and stored in memory. // The new SP is loaded from memory. - { - let diff = builder.sub_extension(read_new_sp_channel.value[0], nv.stack_len); - let constr = builder.mul_extension(filter, diff); - yield_constr.constraint(builder, constr); - } - for &limb in &read_new_sp_channel.value[1..] { - let constr = builder.mul_extension(filter, limb); - yield_constr.constraint(builder, constr); - } - { - let constr = builder.mul_sub_extension(filter, read_new_sp_channel.used, filter); - yield_constr.constraint(builder, constr); - } - { - let constr = builder.mul_sub_extension(filter, read_new_sp_channel.is_read, filter); - yield_constr.constraint(builder, constr); - } - { - let diff = builder.sub_extension(read_new_sp_channel.addr_context, nv.context); - let constr = builder.mul_extension(filter, diff); - yield_constr.constraint(builder, constr); - } - { - let diff = builder.sub_extension(read_new_sp_channel.addr_segment, ctx_metadata_segment); - let constr = builder.mul_extension(filter, diff); - yield_constr.constraint(builder, constr); - } - { - let diff = builder.sub_extension(read_new_sp_channel.addr_virtual, stack_size_field); - let constr = builder.mul_extension(filter, diff); - yield_constr.constraint(builder, constr); - } + // This is all done with CTLs: nothing is constrained here. // Constrain stack_inv_aux_2. let new_top_channel = nv.mem_channels[0]; @@ -326,11 +219,11 @@ fn eval_ext_circuit_set, const D: usize>( let constr = builder.mul_extension(lv.op.context_op, diff); yield_constr.constraint(builder, constr); } - // The new top is loaded in memory channel 3, if the stack isn't empty (see eval_packed). + // The new top is loaded in memory channel 2, if the stack isn't empty (see eval_packed). for (&limb_new_top, &limb_read_top) in new_top_channel .value .iter() - .zip(lv.mem_channels[3].value.iter()) + .zip(lv.mem_channels[2].value.iter()) { let diff = builder.sub_extension(limb_new_top, limb_read_top); let prod = builder.mul_extension(lv.general.stack().stack_inv_aux_2, diff); @@ -338,6 +231,8 @@ fn eval_ext_circuit_set, const D: usize>( yield_constr.constraint(builder, constr); } + // Unused channels. + disable_unused_channels_circuit(builder, lv, filter, vec![1], yield_constr); { let constr = builder.mul_extension(filter, new_top_channel.used); yield_constr.constraint(builder, constr); @@ -355,10 +250,10 @@ pub(crate) fn eval_packed( eval_packed_set(lv, nv, yield_constr); // Stack constraints. - // Both operations use memory channel 3. The operations are similar enough that + // Both operations use memory channel 2. The operations are similar enough that // we can constrain both at the same time. let filter = lv.op.context_op; - let channel = lv.mem_channels[3]; + let channel = lv.mem_channels[2]; // For get_context, we check if lv.stack_len is 0. For set_context, we check if nv.stack_len is 0. // However, for get_context, we can deduce lv.stack_len from nv.stack_len since the operation only pushes. let stack_len = nv.stack_len - (P::ONES - lv.opcode_bits[0]); @@ -396,10 +291,10 @@ pub(crate) fn eval_ext_circuit, const D: usize>( eval_ext_circuit_set(builder, lv, nv, yield_constr); // Stack constraints. - // Both operations use memory channel 3. The operations are similar enough that + // Both operations use memory channel 2. The operations are similar enough that // we can constrain both at the same time. let filter = lv.op.context_op; - let channel = lv.mem_channels[3]; + let channel = lv.mem_channels[2]; // For get_context, we check if lv.stack_len is 0. For set_context, we check if nv.stack_len is 0. // However, for get_context, we can deduce lv.stack_len from nv.stack_len since the operation only pushes. let diff = builder.add_const_extension(lv.opcode_bits[0], -F::ONE); diff --git a/evm/src/cpu/cpu_stark.rs b/evm/src/cpu/cpu_stark.rs index 478dc9c2..1212e7a7 100644 --- a/evm/src/cpu/cpu_stark.rs +++ b/evm/src/cpu/cpu_stark.rs @@ -11,6 +11,7 @@ use plonky2::iop::ext_target::ExtensionTarget; use super::columns::CpuColumnsView; use super::halt; +use super::kernel::constants::context_metadata::ContextMetadata; use super::membus::NUM_GP_CHANNELS; use crate::all_stark::Table; use crate::constraint_consumer::{ConstraintConsumer, RecursiveConstraintConsumer}; @@ -21,7 +22,7 @@ use crate::cpu::{ }; use crate::cross_table_lookup::{Column, Filter, TableWithColumns}; use crate::evaluation_frame::{StarkEvaluationFrame, StarkFrame}; -use crate::memory::segments::{Segment, SEGMENT_SCALING_FACTOR}; +use crate::memory::segments::Segment; use crate::memory::{NUM_CHANNELS, VALUE_LIMBS}; use crate::stark::Stark; @@ -189,6 +190,40 @@ pub(crate) fn ctl_filter_byte_unpacking() -> Filter { ) } +/// Creates the vector of `Columns` corresponding to three consecutive (byte) reads in memory. +/// It's used by syscalls and exceptions to read an address in a jumptable. +pub(crate) fn ctl_data_jumptable_read() -> Vec> { + let is_read = Column::constant(F::ONE); + let mut res = vec![is_read]; + + // When reading the jumptable, the address to start reading from is in + // GP channel 1; the result is in GP channel 1's values. + let channel_map = COL_MAP.mem_channels[1]; + res.extend(Column::singles([ + channel_map.addr_context, + channel_map.addr_segment, + channel_map.addr_virtual, + ])); + let val = Column::singles(channel_map.value); + + // len is always 3. + let len = Column::constant(F::from_canonical_usize(3)); + res.push(len); + + let num_channels = F::from_canonical_usize(NUM_CHANNELS); + let timestamp = Column::linear_combination([(COL_MAP.clock, num_channels)]); + res.push(timestamp); + + res.extend(val); + + res +} + +/// CTL filter for syscalls and exceptions. +pub(crate) fn ctl_filter_syscall_exceptions() -> Filter { + Filter::new_simple(Column::sum([COL_MAP.op.syscall, COL_MAP.op.exception])) +} + /// Creates the vector of `Columns` corresponding to the contents of the CPU registers when performing a `PUSH`. /// `PUSH` internal reads are done by calling `BytePackingStark`. pub(crate) fn ctl_data_byte_packing_push() -> Vec> { @@ -305,6 +340,53 @@ pub(crate) fn ctl_data_partial_memory() -> Vec> { cols } +/// Old stack pointer write for SET_CONTEXT. +pub(crate) fn ctl_data_memory_old_sp_write_set_context() -> Vec> { + let mut cols = vec![ + Column::constant(F::ZERO), // is_read + Column::single(COL_MAP.context), // addr_context + Column::constant(F::from_canonical_usize(Segment::ContextMetadata.unscale())), // addr_segment + Column::constant(F::from_canonical_usize( + ContextMetadata::StackSize.unscale(), + )), // addr_virtual + ]; + + // Low limb is current stack length minus one. + cols.push(Column::linear_combination_with_constant( + [(COL_MAP.stack_len, F::ONE)], + -F::ONE, + )); + + // High limbs of the value are all zero. + cols.extend(repeat(Column::constant(F::ZERO)).take(VALUE_LIMBS - 1)); + + cols.push(mem_time_and_channel(MEM_GP_CHANNELS_IDX_START + 1)); + + cols +} + +/// New stack pointer read for SET_CONTEXT. +pub(crate) fn ctl_data_memory_new_sp_read_set_context() -> Vec> { + let mut cols = vec![ + Column::constant(F::ONE), // is_read + Column::single(COL_MAP.mem_channels[0].value[2]), // addr_context (in the top of the stack) + Column::constant(F::from_canonical_usize(Segment::ContextMetadata.unscale())), // addr_segment + Column::constant(F::from_canonical_u64( + ContextMetadata::StackSize as u64 - Segment::ContextMetadata as u64, + )), // addr_virtual + ]; + + // Low limb is new stack length. + cols.push(Column::single_next_row(COL_MAP.stack_len)); + + // High limbs of the value are all zero. + cols.extend(repeat(Column::constant(F::ZERO)).take(VALUE_LIMBS - 1)); + + cols.push(mem_time_and_channel(MEM_GP_CHANNELS_IDX_START + 2)); + + cols +} + /// CTL filter for code read and write operations. pub(crate) fn ctl_filter_code_memory() -> Filter { Filter::new_simple(Column::sum(COL_MAP.op.iter())) @@ -319,6 +401,49 @@ pub(crate) fn ctl_filter_partial_memory() -> Filter { Filter::new_simple(Column::single(COL_MAP.partial_channel.used)) } +/// CTL filter for the `SET_CONTEXT` operation. +/// SET_CONTEXT is differentiated from GET_CONTEXT by its zeroth bit set to 1 +pub(crate) fn ctl_filter_set_context() -> Filter { + Filter::new( + vec![( + Column::single(COL_MAP.op.context_op), + Column::single(COL_MAP.opcode_bits[0]), + )], + vec![], + ) +} + +/// Disable the specified memory channels. +/// Since channel 0 contains the top of the stack and is handled specially, +/// channels to disable are 1, 2 or both. All cases can be expressed as a vec. +pub(crate) fn disable_unused_channels( + lv: &CpuColumnsView

, + filter: P, + channels: Vec, + yield_constr: &mut ConstraintConsumer

, +) { + for i in channels { + yield_constr.constraint(filter * lv.mem_channels[i].used); + } +} + +/// Circuit version of `disable_unused_channels`. +/// Disable the specified memory channels. +/// Since channel 0 contains the top of the stack and is handled specially, +/// channels to disable are 1, 2 or both. All cases can be expressed as a vec. +pub(crate) fn disable_unused_channels_circuit, const D: usize>( + builder: &mut plonky2::plonk::circuit_builder::CircuitBuilder, + lv: &CpuColumnsView>, + filter: ExtensionTarget, + channels: Vec, + yield_constr: &mut RecursiveConstraintConsumer, +) { + for i in channels { + let constr = builder.mul_extension(filter, lv.mem_channels[i].used); + yield_constr.constraint(builder, constr); + } +} + /// Structure representing the CPU Stark. #[derive(Copy, Clone, Default)] pub(crate) struct CpuStark { diff --git a/evm/src/cpu/dup_swap.rs b/evm/src/cpu/dup_swap.rs index 44763fdc..7b9d80f3 100644 --- a/evm/src/cpu/dup_swap.rs +++ b/evm/src/cpu/dup_swap.rs @@ -138,11 +138,6 @@ fn eval_packed_dup( // Disable next top. yield_constr.constraint(filter * nv.mem_channels[0].used); - - // Constrain unused channels. - for i in 3..NUM_GP_CHANNELS { - yield_constr.constraint(filter * lv.mem_channels[i].used); - } } /// Circuit version of `eval_packed_dup`. @@ -205,12 +200,6 @@ fn eval_ext_circuit_dup, const D: usize>( let constr = builder.mul_extension(filter, nv.mem_channels[0].used); yield_constr.constraint(builder, constr); } - - // Constrain unused channels. - for i in 3..NUM_GP_CHANNELS { - let constr = builder.mul_extension(filter, lv.mem_channels[i].used); - yield_constr.constraint(builder, constr); - } } /// Evaluates constraints for SWAP. @@ -245,11 +234,6 @@ fn eval_packed_swap( // Disable next top. yield_constr.constraint(filter * nv.mem_channels[0].used); - - // Constrain unused channels. - for i in 3..NUM_GP_CHANNELS { - yield_constr.constraint(filter * lv.mem_channels[i].used); - } } /// Circuit version of `eval_packed_swap`. @@ -314,12 +298,6 @@ fn eval_ext_circuit_swap, const D: usize>( let constr = builder.mul_extension(filter, nv.mem_channels[0].used); yield_constr.constraint(builder, constr); } - - // Constrain unused channels. - for i in 3..NUM_GP_CHANNELS { - let constr = builder.mul_extension(filter, lv.mem_channels[i].used); - yield_constr.constraint(builder, constr); - } } /// Evaluates the constraints for the DUP and SWAP opcodes. diff --git a/evm/src/cpu/kernel/tests/add11.rs b/evm/src/cpu/kernel/tests/add11.rs index 89cdf82d..c2725488 100644 --- a/evm/src/cpu/kernel/tests/add11.rs +++ b/evm/src/cpu/kernel/tests/add11.rs @@ -16,7 +16,7 @@ use crate::cpu::kernel::tests::account_code::initialize_mpts; use crate::generation::mpt::{AccountRlp, LegacyReceiptRlp}; use crate::generation::rlp::all_rlp_prover_inputs_reversed; use crate::generation::TrieInputs; -use crate::memory::segments::{Segment, SEGMENT_SCALING_FACTOR}; +use crate::memory::segments::Segment; use crate::proof::{BlockHashes, BlockMetadata, TrieRoots}; use crate::util::h2u; use crate::GenerationInputs; diff --git a/evm/src/cpu/membus.rs b/evm/src/cpu/membus.rs index e86d1ce5..fb6c5301 100644 --- a/evm/src/cpu/membus.rs +++ b/evm/src/cpu/membus.rs @@ -7,7 +7,7 @@ use crate::constraint_consumer::{ConstraintConsumer, RecursiveConstraintConsumer use crate::cpu::columns::CpuColumnsView; /// General-purpose memory channels; they can read and write to all contexts/segments/addresses. -pub(crate) const NUM_GP_CHANNELS: usize = 4; +pub(crate) const NUM_GP_CHANNELS: usize = 3; /// Indices for code and general purpose memory channels. pub mod channel_indices { @@ -29,8 +29,11 @@ pub mod channel_indices { /// - the address is `program_counter`, /// - the value must fit in one byte (in the least-significant position) and its eight bits are /// found in `opcode_bits`. +/// +/// There is also a partial channel, which shares its values with another general purpose channel. +/// /// These limitations save us numerous columns in the CPU table. -pub(crate) const NUM_CHANNELS: usize = channel_indices::GP.end; +pub(crate) const NUM_CHANNELS: usize = channel_indices::GP.end + 1; /// Evaluates constraints regarding the membus. pub(crate) fn eval_packed( diff --git a/evm/src/cpu/memio.rs b/evm/src/cpu/memio.rs index 7cb4c388..924f030f 100644 --- a/evm/src/cpu/memio.rs +++ b/evm/src/cpu/memio.rs @@ -9,7 +9,7 @@ use super::cpu_stark::get_addr; use crate::constraint_consumer::{ConstraintConsumer, RecursiveConstraintConsumer}; use crate::cpu::columns::CpuColumnsView; use crate::cpu::stack; -use crate::memory::segments::{Segment, SEGMENT_SCALING_FACTOR}; +use crate::memory::segments::Segment; const fn get_addr_load(lv: &CpuColumnsView) -> (T, T, T) { get_addr(lv, 0) diff --git a/evm/src/cpu/shift.rs b/evm/src/cpu/shift.rs index 29baa5ea..9e751421 100644 --- a/evm/src/cpu/shift.rs +++ b/evm/src/cpu/shift.rs @@ -48,7 +48,7 @@ pub(crate) fn eval_packed( yield_constr.constraint(is_shift * (two_exp.addr_virtual - displacement.value[0])); // Other channels must be unused - for chan in &lv.mem_channels[3..NUM_GP_CHANNELS - 1] { + for chan in &lv.mem_channels[3..NUM_GP_CHANNELS] { yield_constr.constraint(is_shift * chan.used); // channel is not used } @@ -116,7 +116,7 @@ pub(crate) fn eval_ext_circuit, const D: usize>( yield_constr.constraint(builder, t); // Other channels must be unused - for chan in &lv.mem_channels[3..NUM_GP_CHANNELS - 1] { + for chan in &lv.mem_channels[3..NUM_GP_CHANNELS] { let t = builder.mul_extension(is_shift, chan.used); yield_constr.constraint(builder, t); } diff --git a/evm/src/cpu/syscalls_exceptions.rs b/evm/src/cpu/syscalls_exceptions.rs index 337a0a86..debae9dc 100644 --- a/evm/src/cpu/syscalls_exceptions.rs +++ b/evm/src/cpu/syscalls_exceptions.rs @@ -17,7 +17,6 @@ use crate::memory::segments::Segment; // Copy the constant but make it `usize`. const BYTES_PER_OFFSET: usize = crate::cpu::kernel::assembler::BYTES_PER_OFFSET as usize; -const_assert!(BYTES_PER_OFFSET < NUM_GP_CHANNELS); // Reserve one channel for stack push /// Evaluates constraints for syscalls and exceptions. pub(crate) fn eval_packed( @@ -71,41 +70,38 @@ pub(crate) fn eval_packed( let exc_handler_addr_start = exc_jumptable_start + exc_code * P::Scalar::from_canonical_usize(BYTES_PER_OFFSET); - for (i, channel) in lv.mem_channels[1..BYTES_PER_OFFSET + 1].iter().enumerate() { - // Set `used` and `is_read`. - yield_constr.constraint(total_filter * (channel.used - P::ONES)); - yield_constr.constraint(total_filter * (channel.is_read - P::ONES)); + let jumpdest_channel = lv.mem_channels[1]; - // Set kernel context and code segment - yield_constr.constraint(total_filter * channel.addr_context); - yield_constr.constraint(total_filter * (channel.addr_segment - code_segment)); + // Set `used` and `is_read`. + // The channel is not used: the reads will be done with the byte packing CTL. + yield_constr.constraint(total_filter * (jumpdest_channel.used)); + yield_constr.constraint(total_filter * (jumpdest_channel.is_read - P::ONES)); - // Set address, using a separate channel for each of the `BYTES_PER_OFFSET` limbs. - let limb_address_syscall = opcode_handler_addr_start + P::Scalar::from_canonical_usize(i); - let limb_address_exception = exc_handler_addr_start + P::Scalar::from_canonical_usize(i); + // Set kernel context and code segment + yield_constr.constraint(total_filter * jumpdest_channel.addr_context); + yield_constr.constraint(total_filter * (jumpdest_channel.addr_segment - code_segment)); - yield_constr.constraint(filter_syscall * (channel.addr_virtual - limb_address_syscall)); - yield_constr.constraint(filter_exception * (channel.addr_virtual - limb_address_exception)); + // Set address. + yield_constr + .constraint(filter_syscall * (jumpdest_channel.addr_virtual - opcode_handler_addr_start)); + yield_constr + .constraint(filter_exception * (jumpdest_channel.addr_virtual - exc_handler_addr_start)); + + // Set higher limbs to zero. + for &limb in &jumpdest_channel.value[1..] { + yield_constr.constraint(total_filter * limb); } // Disable unused channels - for channel in &lv.mem_channels[BYTES_PER_OFFSET + 1..NUM_GP_CHANNELS] { + for channel in &lv.mem_channels[2..NUM_GP_CHANNELS] { yield_constr.constraint(total_filter * channel.used); } // Set program counter to the handler address - // The addresses are big-endian in memory - let target = lv.mem_channels[1..BYTES_PER_OFFSET + 1] - .iter() - .map(|channel| channel.value[0]) - .fold(P::ZEROS, |cumul, limb| { - cumul * P::Scalar::from_canonical_u64(256) + limb - }); - yield_constr.constraint_transition(total_filter * (nv.program_counter - target)); + yield_constr + .constraint_transition(total_filter * (nv.program_counter - jumpdest_channel.value[0])); // Set kernel mode yield_constr.constraint_transition(total_filter * (nv.is_kernel_mode - P::ONES)); - // Maintain current context - yield_constr.constraint_transition(total_filter * (nv.context - lv.context)); // Reset gas counter to zero. yield_constr.constraint_transition(total_filter * nv.gas); @@ -197,61 +193,58 @@ pub(crate) fn eval_ext_circuit, const D: usize>( exc_jumptable_start, ); - for (i, channel) in lv.mem_channels[1..BYTES_PER_OFFSET + 1].iter().enumerate() { - // Set `used` and `is_read`. - { - let constr = builder.mul_sub_extension(total_filter, channel.used, total_filter); - yield_constr.constraint(builder, constr); - } - { - let constr = builder.mul_sub_extension(total_filter, channel.is_read, total_filter); - yield_constr.constraint(builder, constr); - } + let jumpdest_channel = lv.mem_channels[1]; - // Set kernel context and code segment - { - let constr = builder.mul_extension(total_filter, channel.addr_context); - yield_constr.constraint(builder, constr); - } - { - let constr = builder.arithmetic_extension( - F::ONE, - -code_segment, - total_filter, - channel.addr_segment, - total_filter, - ); - yield_constr.constraint(builder, constr); - } - - // Set address, using a separate channel for each of the `BYTES_PER_OFFSET` limbs. - { - let diff_syscall = - builder.sub_extension(channel.addr_virtual, opcode_handler_addr_start); - let constr = builder.arithmetic_extension( - F::ONE, - -F::from_canonical_usize(i), - filter_syscall, - diff_syscall, - filter_syscall, - ); - yield_constr.constraint(builder, constr); - - let diff_exception = - builder.sub_extension(channel.addr_virtual, exc_handler_addr_start); - let constr = builder.arithmetic_extension( - F::ONE, - -F::from_canonical_usize(i), - filter_exception, - diff_exception, - filter_exception, - ); - yield_constr.constraint(builder, constr); - } + // Set `used` and `is_read`. + // The channel is not used: the reads will be done with the byte packing CTL. + { + let constr = builder.mul_extension(total_filter, jumpdest_channel.used); + yield_constr.constraint(builder, constr); + } + { + let constr = + builder.mul_sub_extension(total_filter, jumpdest_channel.is_read, total_filter); + yield_constr.constraint(builder, constr); } - // Disable unused channels (the last channel is used to push to the stack) - for channel in &lv.mem_channels[BYTES_PER_OFFSET + 1..NUM_GP_CHANNELS] { + // Set kernel context and code segment + { + let constr = builder.mul_extension(total_filter, jumpdest_channel.addr_context); + yield_constr.constraint(builder, constr); + } + { + let constr = builder.arithmetic_extension( + F::ONE, + -code_segment, + total_filter, + jumpdest_channel.addr_segment, + total_filter, + ); + yield_constr.constraint(builder, constr); + } + + // Set address. + { + let diff_syscall = + builder.sub_extension(jumpdest_channel.addr_virtual, opcode_handler_addr_start); + let constr = builder.mul_extension((filter_syscall), diff_syscall); + yield_constr.constraint(builder, constr); + } + { + let diff_exception = + builder.sub_extension(jumpdest_channel.addr_virtual, exc_handler_addr_start); + let constr = builder.mul_extension(filter_exception, diff_exception); + yield_constr.constraint(builder, constr); + } + + // Set higher limbs to zero. + for &limb in &jumpdest_channel.value[1..] { + let constr = builder.mul_extension(total_filter, limb); + yield_constr.constraint(builder, constr); + } + + // Disable unused channels + for channel in &lv.mem_channels[2..NUM_GP_CHANNELS] { let constr = builder.mul_extension(total_filter, channel.used); yield_constr.constraint(builder, constr); } @@ -259,13 +252,7 @@ pub(crate) fn eval_ext_circuit, const D: usize>( // Set program counter to the handler address // The addresses are big-endian in memory { - let target = lv.mem_channels[1..BYTES_PER_OFFSET + 1] - .iter() - .map(|channel| channel.value[0]) - .fold(builder.zero_extension(), |cumul, limb| { - builder.mul_const_add_extension(F::from_canonical_u64(256), cumul, limb) - }); - let diff = builder.sub_extension(nv.program_counter, target); + let diff = builder.sub_extension(nv.program_counter, jumpdest_channel.value[0]); let constr = builder.mul_extension(total_filter, diff); yield_constr.constraint_transition(builder, constr); } @@ -274,12 +261,6 @@ pub(crate) fn eval_ext_circuit, const D: usize>( let constr = builder.mul_sub_extension(total_filter, nv.is_kernel_mode, total_filter); yield_constr.constraint_transition(builder, constr); } - // Maintain current context - { - let diff = builder.sub_extension(nv.context, lv.context); - let constr = builder.mul_extension(total_filter, diff); - yield_constr.constraint_transition(builder, constr); - } // Reset gas counter to zero. { let constr = builder.mul_extension(total_filter, nv.gas); diff --git a/evm/src/witness/operation.rs b/evm/src/witness/operation.rs index c9dea230..e87c1465 100644 --- a/evm/src/witness/operation.rs +++ b/evm/src/witness/operation.rs @@ -4,8 +4,8 @@ use keccak_hash::keccak; use plonky2::field::types::Field; use super::util::{ - byte_packing_log, byte_unpacking_log, mem_write_partial_log_and_fill, push_no_write, - push_with_write, + byte_packing_log, byte_unpacking_log, mem_read_with_log, mem_write_log, + mem_write_partial_log_and_fill, push_no_write, push_with_write, }; use crate::arithmetic::BinaryOperator; use crate::cpu::columns::CpuColumnsView; @@ -349,7 +349,7 @@ pub(crate) fn generate_get_context( Segment::Stack, state.registers.stack_len - 1, ); - let res = mem_write_gp_log_and_fill(3, address, state, &mut row, state.registers.stack_top); + let res = mem_write_gp_log_and_fill(2, address, state, &mut row, state.registers.stack_top); Some(res) }; push_no_write( @@ -380,7 +380,10 @@ pub(crate) fn generate_set_context( let old_sp_addr = MemoryAddress::new(old_ctx, Segment::ContextMetadata, sp_field); let new_sp_addr = MemoryAddress::new(new_ctx, Segment::ContextMetadata, sp_field); - let log_write_old_sp = mem_write_gp_log_and_fill(1, old_sp_addr, state, &mut row, sp_to_save); + // This channel will hold in limb 0 and 1 the one-limb value of two separate memory operations: + // the old stack pointer write and the new stack pointer read. + // Channels only matter for time stamps: the write must happen before the read. + let log_write_old_sp = mem_write_log(GeneralPurpose(1), old_sp_addr, state, sp_to_save); let (new_sp, log_read_new_sp) = if old_ctx == new_ctx { let op = MemoryOp::new( MemoryChannel::GeneralPurpose(2), @@ -389,23 +392,9 @@ pub(crate) fn generate_set_context( MemoryOpKind::Read, sp_to_save, ); - - let channel = &mut row.mem_channels[2]; - assert_eq!(channel.used, F::ZERO); - channel.used = F::ONE; - channel.is_read = F::ONE; - channel.addr_context = F::from_canonical_usize(new_ctx); - channel.addr_segment = F::from_canonical_usize(Segment::ContextMetadata.unscale()); - channel.addr_virtual = F::from_canonical_usize(new_sp_addr.virt); - let val_limbs: [u64; 4] = sp_to_save.0; - for (i, limb) in val_limbs.into_iter().enumerate() { - channel.value[2 * i] = F::from_canonical_u32(limb as u32); - channel.value[2 * i + 1] = F::from_canonical_u32((limb >> 32) as u32); - } - (sp_to_save, op) } else { - mem_read_gp_with_log_and_fill(2, new_sp_addr, state, &mut row) + mem_read_with_log(GeneralPurpose(2), new_sp_addr, state) }; // If the new stack isn't empty, read stack_top from memory. @@ -425,7 +414,7 @@ pub(crate) fn generate_set_context( let new_top_addr = MemoryAddress::new(new_ctx, Segment::Stack, new_sp - 1); let (new_top, log_read_new_top) = - mem_read_gp_with_log_and_fill(3, new_top_addr, state, &mut row); + mem_read_gp_with_log_and_fill(2, new_top_addr, state, &mut row); state.registers.stack_top = new_top; state.traces.push_memory(log_read_new_top); } else { @@ -705,27 +694,30 @@ pub(crate) fn generate_syscall( let handler_addr_addr = handler_jumptable_addr + (opcode as usize) * (BYTES_PER_OFFSET as usize); assert_eq!(BYTES_PER_OFFSET, 3, "Code below assumes 3 bytes per offset"); - let (handler_addr0, log_in0) = mem_read_gp_with_log_and_fill( - 1, - MemoryAddress::new(0, Segment::Code, handler_addr_addr), - state, - &mut row, - ); - let (handler_addr1, log_in1) = mem_read_gp_with_log_and_fill( - 2, - MemoryAddress::new(0, Segment::Code, handler_addr_addr + 1), - state, - &mut row, - ); - let (handler_addr2, log_in2) = mem_read_gp_with_log_and_fill( - 3, - MemoryAddress::new(0, Segment::Code, handler_addr_addr + 2), - state, - &mut row, - ); + let base_address = MemoryAddress::new(0, Segment::Code, handler_addr_addr); + let bytes = (0..BYTES_PER_OFFSET as usize) + .map(|i| { + let address = MemoryAddress { + virt: base_address.virt + i, + ..base_address + }; + let val = state.memory.get(address); + val.low_u32() as u8 + }) + .collect_vec(); - let handler_addr = (handler_addr0 << 16) + (handler_addr1 << 8) + handler_addr2; - let new_program_counter = u256_to_usize(handler_addr)?; + let packed_int = U256::from_big_endian(&bytes); + + let jumptable_channel = &mut row.mem_channels[1]; + jumptable_channel.is_read = F::ONE; + jumptable_channel.addr_context = F::ZERO; + jumptable_channel.addr_segment = F::from_canonical_usize(Segment::Code as usize); + jumptable_channel.addr_virtual = F::from_canonical_usize(handler_addr_addr); + jumptable_channel.value[0] = F::from_canonical_usize(u256_to_usize(packed_int)?); + + byte_packing_log(state, base_address, bytes); + + let new_program_counter = u256_to_usize(packed_int)?; let gas = U256::from(state.registers.gas_used); @@ -734,14 +726,15 @@ pub(crate) fn generate_syscall( + (gas << 192); // `ArithmeticStark` range checks `mem_channels[0]`, which contains - // the top of the stack, `mem_channels[1]`, `mem_channels[2]` and - // next_row's `mem_channels[0]` which contains the next top of the stack. + // the top of the stack, `mem_channels[1]`, which contains the new PC, + // `mem_channels[2]`, which is empty, and next_row's `mem_channels[0]`, + // which contains the next top of the stack. // Our goal here is to range-check the gas, contained in syscall_info, // stored in the next stack top. let range_check_op = arithmetic::Operation::range_check( state.registers.stack_top, - handler_addr0, - handler_addr1, + packed_int, + U256::from(0), U256::from(opcode), syscall_info, ); @@ -757,9 +750,6 @@ pub(crate) fn generate_syscall( log::debug!("Syscall to {}", KERNEL.offset_name(new_program_counter)); state.traces.push_arithmetic(range_check_op); - state.traces.push_memory(log_in0); - state.traces.push_memory(log_in1); - state.traces.push_memory(log_in2); state.traces.push_cpu(row); Ok(()) @@ -950,27 +940,29 @@ pub(crate) fn generate_exception( let handler_addr_addr = handler_jumptable_addr + (exc_code as usize) * (BYTES_PER_OFFSET as usize); assert_eq!(BYTES_PER_OFFSET, 3, "Code below assumes 3 bytes per offset"); - let (handler_addr0, log_in0) = mem_read_gp_with_log_and_fill( - 1, - MemoryAddress::new(0, Segment::Code, handler_addr_addr), - state, - &mut row, - ); - let (handler_addr1, log_in1) = mem_read_gp_with_log_and_fill( - 2, - MemoryAddress::new(0, Segment::Code, handler_addr_addr + 1), - state, - &mut row, - ); - let (handler_addr2, log_in2) = mem_read_gp_with_log_and_fill( - 3, - MemoryAddress::new(0, Segment::Code, handler_addr_addr + 2), - state, - &mut row, - ); + let base_address = MemoryAddress::new(0, Segment::Code, handler_addr_addr); + let bytes = (0..BYTES_PER_OFFSET as usize) + .map(|i| { + let address = MemoryAddress { + virt: base_address.virt + i, + ..base_address + }; + let val = state.memory.get(address); + val.low_u32() as u8 + }) + .collect_vec(); - let handler_addr = (handler_addr0 << 16) + (handler_addr1 << 8) + handler_addr2; - let new_program_counter = u256_to_usize(handler_addr)?; + let packed_int = U256::from_big_endian(&bytes); + + let jumptable_channel = &mut row.mem_channels[1]; + jumptable_channel.is_read = F::ONE; + jumptable_channel.addr_context = F::ZERO; + jumptable_channel.addr_segment = F::from_canonical_usize(Segment::Code as usize); + jumptable_channel.addr_virtual = F::from_canonical_usize(handler_addr_addr); + jumptable_channel.value[0] = F::from_canonical_usize(u256_to_usize(packed_int)?); + + byte_packing_log(state, base_address, bytes); + let new_program_counter = u256_to_usize(packed_int)?; let gas = U256::from(state.registers.gas_used); @@ -982,14 +974,15 @@ pub(crate) fn generate_exception( let opcode = state.memory.get(address); // `ArithmeticStark` range checks `mem_channels[0]`, which contains - // the top of the stack, `mem_channels[1]`, `mem_channels[2]` and - // next_row's `mem_channels[0]` which contains the next top of the stack. + // the top of the stack, `mem_channels[1]`, which contains the new PC, + // `mem_channels[2]`, which is empty, and next_row's `mem_channels[0]`, + // which contains the next top of the stack. // Our goal here is to range-check the gas, contained in syscall_info, // stored in the next stack top. let range_check_op = arithmetic::Operation::range_check( state.registers.stack_top, - handler_addr0, - handler_addr1, + packed_int, + U256::from(0), opcode, exc_info, ); @@ -1004,9 +997,6 @@ pub(crate) fn generate_exception( log::debug!("Exception to {}", KERNEL.offset_name(new_program_counter)); state.traces.push_arithmetic(range_check_op); - state.traces.push_memory(log_in0); - state.traces.push_memory(log_in1); - state.traces.push_memory(log_in2); state.traces.push_cpu(row); Ok(())