Deductive Verification of Smart Contracts with Dafny

08/04/2022
by   Franck Cassez, et al.
0

We present a methodology to develop verified smart contracts. We write smart contracts, their specifications and implementations in the verification-friendly language Dafny. In our methodology the ability to write specifications, implementations and to reason about correctness is a primary concern. We propose a simple, concise yet powerful solution to reasoning about contracts that have external calls. This includes arbitrary re-entrancy which is a major source of bugs and attacks in smart contracts. Although we do not yet have a compiler from Dafny to EVM bytecode, the results we obtain on the Dafny code can reasonably be assumed to hold on Solidity code: the translation of the Dafny code to Solidity is straightforward. As a result our approach can readily be used to develop and deploy safer contracts.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/20/2018

Formal Specification and Verification of Smart Contracts for Azure Blockchain

In this paper, we describe the formal verification of Smart Contracts of...
research
04/20/2021

Modular Verification of Collaborating Smart Contracts

Smart contracts are programs that execute inside blockchains such as Eth...
research
07/16/2021

SMLtoCoq: Automated Generation of Coq Specifications and Proof Obligations from SML Programs with Contracts

Formally reasoning about functional programs is supposed to be straightf...
research
04/13/2019

Flint for Safer Smart Contracts

The Ethereum blockchain platform supports the execution of decentralised...
research
10/15/2021

Fast and Reliable Formal Verification of Smart Contracts with the Move Prover

The Move Prover (MVP) is a formal verifier for smart contracts written i...
research
07/05/2019

Solidity 0.5: when typed does not mean type safe

The recent release of Solidity 0.5 introduced a new type to prevent Ethe...
research
06/08/2023

Formalizing, Verifying and Applying ISA Security Guarantees as Universal Contracts

Progress has recently been made on specifying instruction set architectu...

Please sign up or login with your details

Forgot password? Click here to reset