Smart contracts in Ethereum are executed by the Ethereum Virtual Machine (EVM). We defined EVM in Lem, a language that can be compiled for a few interactive theorem provers. We tested our definition against a standard test suite for Ethereum implementations. Using our definition, we proved some safety properties of Ethereum smart contracts in an interactive theorem prover Isabelle/HOL. To our knowledge, ours is the first formal EVM definition for smart contract verification that implements all instructions. Our definition can serve as a basis for further analysis and generation of Ethereum smart contracts.

1 Introduction

Ethereum is a protocol for executing a virtual computer in an open and distributed manner. This virtual computer is called the Ethereum Virtual Machine (EVM). The programs on EVM are called Ethereum smart contracts. A deployedEthereum smart contract is public under adversarial scrutiny, and the code is not updatable. Most applications (auctions, prediction markets, identity/reputation management etc.) involve smart contracts managing funds or authenticating external entities. In this environment, the code should be trustworthy.


The cryptocurrency and blockchain security pioneer Ledger has secured a $7M Series A funding led by MAIF Avenir, with the participation of Xange, Wicklow Capital, GDTRE, Libertus Capital, Digital Currency Group, The Whittemore Collection, Kima Ventures, BHB Network and Nicolas Pinto. This latest investment follows a $1.5M round in 2015 and brings the total funding to $8.5M, one of the biggest blockchain related start-up funding to date in Europe.

Ledger’s competitive edge is its technology: a low-footprint crypto-embedded operating system built for Secure Elements and Secure Enclaves which enables full orchestration of code and systems directly from the secure core. Ledger designs a line of products for the cryptocurrency and blockchain market: hardware wallets for consumers, server appliances for enterprise and embedded solutions for connected objects.
The company’s flagship products are the Ledger Nano S and the Ledger Blue, hardware wallets securing cryptocurrencies and digital identities.



Python 3 script allowing to copy and index the Ethereum blockchain in an efficient way to ElasticSearch by connecting to a local node supporting RPC (tried with Parity).

I hardcoded the use of Elasticsearch but feel free to fork it to support others.

Pull requests are welcome!

As of now, this tool saves all block data as well as the related transaction data. The relation is kept as follows: