Formal verification of smart contracts: Short paper

589Citations
Citations of this article
604Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Ethereum is a framework for cryptocurrencies which uses blockchain technology to provide an open global comput- ing platform, called the Ethereum Virtual Machine (EVM). EVM executes bytecode on a simple stack machine. Pro- grammers do not usually write EVM code; instead, they can program in a JavaScript-like language, called Solidity, that compiles to bytecode. Since the main purpose of EVM is to execute smart contracts that manage and transfer digital assets (called Ether), security is of paramount importance. However, writing secure smart contracts can be extremely diffcult: due to the openness of Ethereum, both programs and pseudonymous users can call into the public methods of other programs, leading to potentially dangerous com- positions of trusted and untrusted code. This risk was re- cently illustrated by an attack on TheDAO contract that exploited subtle details of the EVM semantics to transfer roughly $50M worth of Ether into the control of an attacker. In this paper, we outline a framework to analyze and verify both the runtime safety and the functional correctness of Ethereum contracts by translation to F∗, a functional pro- gramming language aimed at program verification.

Cite

CITATION STYLE

APA

Bhargavan, K., Delignat-Lavaud, A., Fournet, C., Gollamudi, A., Gonthier, G., Kobeissi, N., … Zanella-Béguelin, S. (2016). Formal verification of smart contracts: Short paper. In PLAS 2016 - Proceedings of the 2016 ACM Workshop on Programming Languages and Analysis for Security, co-located with CCS 2016 (pp. 91–96). Association for Computing Machinery, Inc. https://doi.org/10.1145/2993600.2993611

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free