Formalising and verifying smart contracts with Solidifier: a bounded model checker for Solidity

02/07/2020
by   Pedro Antonino, et al.
0

The exploitation of smart-contract vulnerabilities can have catastrophic consequences such as the loss of millions of pounds worth of crypto assets. Formal verification can be a useful tool in identifying vulnerabilities and proving that they have been fixed. In this paper, we present a formalisation of Solidity and the Ethereum blockchain using the Solid language and its blockchain; a Solid program is obtained by explicating/desugaring a Solidity program. We make some abstractions that over-approximate the way in which Solidity/Ethereum behave. Based on this formalisation, we create Solidifier: a bounded model checker for Solidity. It translates Solid into Boogie, an intermediate verification language, that is later verified using Corral, a bounded model checker for Boogie. Unlike much of the work in this area, we do not try to find specific behavioural/code patterns that might lead to vulnerabilities. Instead, we provide a tool to find errors/bad states, i.e. program states that do not conform with the intent of the developer. Such a bad state, be it a vulnerability or not, might be reached through the execution of specific known code patterns or through behaviours that have not been anticipated.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/25/2019

Deductive Proof of Ethereum Smart Contracts Using Why3

A bug or error is a common problem that any software or computer program...
research
11/21/2022

(B)LOCKBOX – Secure Software Architecture with Blockchain Verification

According to experts, one third of all IT vulnerabilities today are due ...
research
04/25/2023

Demystifying Random Number in Ethereum Smart Contract: Taxonomy, Vulnerability Identification, and Attack Detection

Recent years have witnessed explosive growth in blockchain smart contrac...
research
11/26/2019

Mandala: A Smart Contract Programming Language

Smart contracts on a blockchain behave precisely as specified by their c...
research
02/18/2019

Smart Contract Vulnerabilities: Does Anyone Care?

In the last year we have seen a great deal of both academic and practica...
research
04/06/2023

A Comprehensive Survey of Upgradeable Smart Contract Patterns

In this work, we provide a comprehensive survey of smart contract upgrad...
research
08/26/2018

Optimization of Executable Formal Interpreters developed in Higher-order Theorem Proving Systems

In recent publications, we presented a novel formal symbolic process vir...

Please sign up or login with your details

Forgot password? Click here to reset