Ethereum Virtual Machine for interactive theorem provers (version 0.0.1)

Yoichi Hirai
1 min readJan 5, 2017

--

I announce the version 0.0.1 of eth-isabelle project: a formalization of Ethereum Virtual Machine (EVM) for interactive theorem provers.

In this version,

  • all EVM instructions are defined;
  • the definitions pass 40,669 test cases from the standard VM tests (though I skipped 24 that run multiple contracts); and
  • an interactive theorem prover Isabelle/HOL can use the definitions to prove safety properties of Ethereum smart contracts (in a plain brute-force, for now).

The definitions are in Lem so they should be portable to Coq and HOL4.

This release is a bare minimum intended as a basis for further development of various tools. From here on, a dozen different paths extend. So you are welcome if you are interested in building

  • program logics for a stack machine with goto’s,
  • verified static analyzers,
  • verified optimizers,
  • verified compilers, and of course,
  • never broken Dapps.

I thank Sami Mäkelä for porting the definitions to Lem, and pointing out several mistakes.

--

--