DeepAI AI Chat
Log In Sign Up

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

by   Pedro Antonino, et al.

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.


page 1

page 2

page 3

page 4


Deductive Proof of Ethereum Smart Contracts Using Why3

A bug or error is a common problem that any software or computer program...

(B)LOCKBOX – Secure Software Architecture with Blockchain Verification

According to experts, one third of all IT vulnerabilities today are due ...

Mandala: A Smart Contract Programming Language

Smart contracts on a blockchain behave precisely as specified by their c...

Smart Contract Vulnerabilities: Does Anyone Care?

In the last year we have seen a great deal of both academic and practica...

FEther: An Extensible Definitional Interpreter for Smart-contract Verifications in Coq

Blockchain technology adds records to a list using cryptographic links. ...

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

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