By removing the constraint of zero-initializing for the code segment of the kernel context, we can non-deterministically initialize it with the correct values, and then check them with a call to KECCAK_GENERAL. Removes ~17k CPU rows, ~70k Memory rows and the is_bootstrap_kernel CPU column, at the cost of one extra Memory column.
@wborgeaud I changed the zero-initializing constraint to exclude all code segments. This might make it unsound for now, but I'll work on code loading soon.
By removing the constraint of zero-initializing for the code segment of the kernel context, we can non-deterministically initialize it with the correct values, and then check them with a call to KECCAK_GENERAL. Removes ~17k CPU rows, ~70k Memory rows and the
is_bootstrap_kernel
CPU column, at the cost of one extra Memory column.https://github.com/0xPolygonZero/zk_evm/issues/49