DE
Devconnect
/EVM Summit

Formal Verification of EVM Bytecode

Tue, Nov 14, 2023, 02:35 PM · 19:18

Formal verification of Smart Contracts has the potential to significantly improve their security and reliability. At ConsenSys, we are developing techniques for formally verifying Smart Contracts at the EVM bytecode level. Our approach is based around a formalisation of the EVM called the DafnyEVM (https://github.com/ConsenSys/evm-dafny). This is written in the Dafny programming language (https://dafny.org) which allows it to be used for formally verification. In this talk, I will illustrate how the DafnyEVM can be used to verify Smart Contracts at the bytecode level, and give an overview of how the system works.

I’m a research engineer in the Trustworthy Smart Contracts Team at ConsenSys. My current focus is on the application of formal methods to smart contracts. Before that, I was an Associate Professor in the School of Engineering and Computer Science at Victoria University of Wellington, NZ. I graduated from the Department of Computing at Imperial College London, and moved to New Zealand in 2004. My research interests are in programming languages, compilers, static analysis and formal verification. I am the author of the Whiley programming language which (like Dafny) supports formal verification of functional specifications (i.e. preconditions / postconditions). Several of algorithms I have developed have found widespread use. For example, my algorithm for field-sensitive pointer analysis is used in GCC and godoc for Go; my algorithm for dynamic topological sort is used in Abseil and TensorFlow; another for finding strongly connected components is used in SciPy; finally, my algorithm for computing Tutte Polynomials features in both Mathematica and Sage. Finally, during my time as a PhD student I was an intern at Bell Labs, New Jersey, working on compilers for FPGAs and also at IBM Hursley, UK, working with the AspectJ development team on profiling systems.