-
Notifications
You must be signed in to change notification settings - Fork 21
Open
Labels
Description
Main point
The OOB
module has 56 columns of which 32 are exclusive binary flags. We could reduce this significantly by perspectivizing the module. We would add
MACRO
SCENARIO // potentially several of them
COMPUTATION
columns, and within SCENARIO
we could have for instance, the following columns
scenario/OPC // for EVM opcodes
scenario/PRC // for non BLS precompile
scenario/BLS // for BLS precompile
scenario/BIT_k, k = 1 .. m // for some small m
or some other, more efficient splitting.
Example specification
This could drop the module down to ~ 18 columns
// 7 shared columns
IOMF
MACRO
SCENARIO_FAMILY_A
SCENARIO_FAMILY_B
SCENARIO_FAMILY_C
SCENARIO_FAMILY_D
COMPUTATION
// 11 columns
macro/DATA[10]
macro/OOB_INST
// 8 scenario/ columns
scenario/BIT_k[8]
// which multiplexes, depending on the SCENARIO_FAMILY, to one of
// IS_JUMP
// IS_JUMPI
// IS_RDC
// IS_CDL
// IS_XCALL
// IS_CALL
// IS_XCREATE
// IS_CREATE
// IS_SSTORE
// IS_DEPLOYMENT
// IS_ECRECOVER
// IS_SHA2
// IS_RIPEMD
// IS_IDENTITY
// IS_ECADD
// IS_ECMUL
// IS_ECPAIRING
// IS_BLAKE2F_CDS
// IS_BLAKE2F_PARAMS
// IS_MODEXP_CDS
// IS_MODEXP_XBS
// IS_MODEXP_LEAD
// IS_MODEXP_PRICING
// IS_MODEXP_EXTRACT
// IS_POINT_EVALUATION
// IS_BLS_G1_ADD
// IS_BLS_G1_MSM
// IS_BLS_G2_ADD
// IS_BLS_G2_MSM
// IS_BLS_PAIRING_CHECK
// IS_BLS_MAP_FP_TO_G1
// IS_BLS_MAP_FP2_TO_G2
// 10 computation columns
computation/WCP_FLAG
computation/ADD_FLAG
computation/MOD_FLAG
computation/BLS_REF_TABLE_FLAG
computation/OUTGOING_INST
computation/OUTGOING_DATA[4]
computation/OUTGOING_RES_LO