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.
More from EVM Summit
Closing Ceremony
Devconnect
EVM Summit · Nov 14, 2023
Alex Beregszaszi, Eniko
Predicting the impact of EVM upgrades on all deployed contracts
Devconnect
EVM Summit · Nov 14, 2023
Neville Grech
EVM Future Panel Discussion
Devconnect
EVM Summit · Nov 14, 2023
Andrei Maiboroda, Danno Ferrin, Greg Colvin, Harikrishnan Mulackal, Paweł Bylica
EVMMAX - advanced Elliptic Curve Cryptography in EVM
Devconnect
EVM Summit · Nov 14, 2023
Radosław Zagórowicz
Issues in EVM Equivalence
Devconnect
EVM Summit · Nov 14, 2023
Danno Ferrin
EVM Opcodes Gas Cost Estimator
Devconnect
EVM Summit · Nov 14, 2023
Jacek Glen
EVM Quirks Panel Discussion
Devconnect
EVM Summit · Nov 14, 2023
Ansgar Dietrichs, Ayman Bouchareb, Daniel Kirchner, Dragan Rakita, lightclient
Paths to a faster EVM
Devconnect
EVM Summit · Nov 14, 2023
Dragan Rakita
How to implement efficient Schnorr multi-signature in an EVM environment
Devconnect
EVM Summit · Nov 14, 2023
Niklas Kunkel
MEVM: Private EVM Computation for MEV
Devconnect
EVM Summit · Nov 14, 2023
Daniel Marzec (dmarz)
EVM Governance Panel Discussion
Devconnect
EVM Summit · Nov 14, 2023
Alex Beregszaszi, Alex Gluchowski, Ansgar Dietrichs, Marius van der Wijden, Tim Beiko
Powdr: a modular stack for zkVMs
Devconnect
EVM Summit · Nov 14, 2023
Leonardo Alt