E=vm² - an evm vm in evm

I have created a small proof of concept - an evm implementation that runs inside evm.

potential use case #1:
imagine you want to allow delegatecall to an arbitrary contract. but you also want to restrict that contract, e.g.:

  • no selfdestruct
  • no sstore to slot 0
  • all subsequent calls must have 0 value
  • etc.

potential use case #2:
imagine you want a new opcode. but you don’t want to go through EIP process which could take year(s) and might not pass.
so you introduce the new opcode in evm2!

it’s a development layer on top of execution layer.

would like to hear what the community says. open for discussion. :slight_smile: