leapdao / solEVM-enforcer

Partial implementation of the Ethereum runtime in Solidity (PoC)
Mozilla Public License 2.0
97 stars 16 forks source link

Seperate the Verifier contract from the EVMRuntime. #179

Open TheReturnOfJan opened 4 years ago

TheReturnOfJan commented 4 years ago

Bounty

Currently the Verifier inherits from EVMRuntime. Also we are hitting size limit on the Verifier contract. Separate the Verifier and EVMRuntime from one another and deploy separately.

Scope

Deliverables

PR.

Gain for the project

Can deploy solEVM enforcer stack.

Roles

bounty gardener: @TheReturnOfJan / 5% bounty worker: @TheReturnOfJan / 80% bounty reviewer: name / 15%

TheReturnOfJan commented 4 years ago

It turns out that Verifier and the Runtime are quite tightly coupled in the current implementation, making any sort of separation highly non-trivial. The amount of work needed to do a clean separation in this repository is roughly equal to starting the implementation of the verification game from scratch, which is what I have done.

This is a great opportunity to do a clean rewrite, using all the lessons learned in the implementation of this repository (and some nice new features of solidity 0.6.0).

I still intend to use the EVMRuntime implementation found in this repository to integrate with the new machine interface. Or alternatively, we can look around for some other EVM implementation, seeing as apparently they are popping around like flies these days (nutberry, optimism, interstate etc.).