Debugging Smart Contract's Business Logic Using Symbolic Model-Checking

12/03/2018
by   Evgeniy Shishkin, et al.
0

Smart contracts are a special type of programs running inside a blockchain. Immutable and transparent, they provide means to implement fault-tolerant and censorship-resistant services. Unfortunately, its immutability causes a serious challenge of ensuring that a business logic and implementation is correct upfront, before publishing in a blockchain. Several big accidents have indeed shown that users of this technology need special tools to verify smart contract correctness. Existing automated checkers are able to detect only well known implementation bugs, leaving the question of business logic correctness far aside. In this work, we present a symbolic model-checking technique along with a formal specification method for a subset of Solidity programming language that is able to express both state properties and trace properties; the latter constitutes a weak analogy of temporal properties. We evaluate the proposed technique on the MiniDAO smart contract, a young brother of notorious TheDAO. Our Proof-of-Concept was able to detect a non-trivial error in the business logic of this smart contract in a few seconds.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/05/2021

Protocol-based Smart Contract Generation

The popularity of smart contracts is on the rise, yet breaches in reliab...
research
06/07/2019

Smart Contract Design Meets State Machine Synthesis: Case Studies

Modern blockchain systems support creation of smart contracts -- statefu...
research
01/22/2021

A blockchain-based pattern for confidential and pseudo-anonymous contract enforcement

Blockchain has been praised for its capacity to hold data in a decentral...
research
03/07/2023

Daml: A Smart Contract Language for Securely Automating Real-World Multi-Party Business Workflows

Distributed ledger technologies, also known as blockchains for enterpris...
research
07/15/2020

Bitcoin Trace-Net: Formal Contract Verification at Signing Time

Smart contracting protocols promise to regulate the transfer of cryptocu...
research
10/11/2022

Abstract interpretation of Michelson smart-contracts

Static analysis of smart-contracts is becoming more widespread on blockc...
research
07/24/2019

ConCert: A Smart Contract Certification Framework in Coq

We present a new way of embedding functional languages into the Coq proo...

Please sign up or login with your details

Forgot password? Click here to reset