You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
EVMOS by default allows anyone to deploy contracts, but we don't want this for the hub because it will impossible to create succinct or predictable fraud proofs.
The EVM has 3 entrypoints to contract creation:
An EOA transaction that is sent to without a destination address, has its calldata interpreted as opcodes to run
A contract that calls the CREATE opcode
A contract that calls the CREATE2 opcode
Entrypoint 1 can be avoided at the tx validation stage, outside the EVM context - simply reject any transactions that don't have a destination address.
Entrypoints 2 and 3 can be avoided by not having any deployed contracts that unprivileged users can call which hit either of those opcodes with a user provided binary string. It is however safe to allow users to create contracts from a fixed factory set, where the codehash remains the same but initialized storage is different.
The deployed contracts for operation of the settlement hub should be included in the state at genesis, and any updates maintained as preloaded state in the client software. This will allow light clients to efficiently check fraud proofs without having to request contract code from peers.
The text was updated successfully, but these errors were encountered:
EVMOS by default allows anyone to deploy contracts, but we don't want this for the hub because it will impossible to create succinct or predictable fraud proofs.
The EVM has 3 entrypoints to contract creation:
Entrypoint 1 can be avoided at the tx validation stage, outside the EVM context - simply reject any transactions that don't have a destination address.
Entrypoints 2 and 3 can be avoided by not having any deployed contracts that unprivileged users can call which hit either of those opcodes with a user provided binary string. It is however safe to allow users to create contracts from a fixed factory set, where the codehash remains the same but initialized storage is different.
The deployed contracts for operation of the settlement hub should be included in the state at genesis, and any updates maintained as preloaded state in the client software. This will allow light clients to efficiently check fraud proofs without having to request contract code from peers.
The text was updated successfully, but these errors were encountered: