Artifact of the Paper "Formally Verified EVM Block-Optimizations"
Description
This artifact includes a verification tool to automatically prove the correctness of EVM (Ethereum Virtual Machine) block-optimizations on Ethereum smart contracts using the Coq proof assistant. The tool
has three Coq components: a symbolic execution engine which can execute an EVM block and produce a resulting symbolic state; a checker of symbolic states to compare the result of symbolic execution of the two EVM blocks under comparison; and a number of simplification lemmas which transform a symbolic state into an equivalent one. Our tool
currently can verify stack-optimizations and includes also the most-used simplification lemmas.
The artifact contains:
- the source code of the EVM equivalence checker and the proofs for all the soundness lemmas and theorems,
- all the Ubuntu and Coq packages required to compile the Coq source code,
- the blocks extracted from the BottleCastle smart contract [1] used for the experiments,
- scripts for compiling the checker and running the complete experiments shown in Table 5.1 of the paper, and
- a README.md file with detailed information.
The artifact has been built to work on the offline TACAS'23 virtual machine.
In order to reproduce the experiments, please decompress the zip folder forves.zip in the root directory (/home/tacas23/forves) and execute:
$ cd /home/tacas23/forves
$ sudo make install_deb
$ sudo make install_bbv
$ make checker
$ ./run_all_experiments.sh
The experiments described in the paper have been executed in less than 3 seconds in the TACAS'23 Virtual Machine executed on an Intel(R) Core(TM) i7-10750H CPU at 2.60GHz with 32 GB.
References:
[1] https://etherscan.io/address/0x7293f550c7c0B8e5B564C033FB4296AdF7c771aA
Files
forves.zip
Files
(358.8 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:3d65967b3d726c400163cb8af1aef586
|
358.8 MB | Preview Download |