Executable Operational Semantics of Solidity

04/04/2018
by   Jiao Jiao, et al.
0

Bitcoin has attracted everyone's attention and interest recently. Ethereum (ETH), a second generation cryptocurrency, extends Bitcoin's design by offering a Turing-complete programming language called Solidity to develop smart contracts. Smart contracts allow creditable execution of contracts on EVM (Ethereum Virtual Machine) without third parties. Developing correct smart contracts is challenging due to its decentralized computation nature. Buggy smart contracts may lead to huge financial loss. Furthermore, smart contracts are very hard, if not impossible, to patch once they are deployed. Thus, there is a recent surge of interest on analyzing/verifying smart contracts. While existing work focuses on EVM opcode, we argue that it is equally important to understand and define the semantics of Solidity since programmers program and reason about smart contracts at the level of source code. In this work, we develop the structural operational semantics for Solidity, which allows us to identify multiple design issues which underlines many problematic smart contracts. Furthermore, our semantics is executable in the K framework, which allows us to verify/falsify contracts automatically.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/23/2018

A Semantic Framework for the Security Analysis of Ethereum smart contracts

Smart contracts are programs running on cryptocurrency (e.g., Ethereum) ...
research
08/06/2019

A minimal core calculus for Solidity contracts

The Ethereum platform supports the decentralized execution of smart cont...
research
04/08/2021

Languages for Smart and Computable Contracts

Smart Contracts use computer technology to automate the performance of a...
research
11/08/2017

Simplicity: A New Language for Blockchains

Simplicity is a typed, combinator-based, functional language without loo...
research
03/03/2021

SciviK: A Versatile Framework for Specifying and Verifying Smart Contracts

The growing adoption of smart contracts on blockchains poses new securit...
research
09/30/2021

A formal model for ledger management systems based on contracts and temporal logic

A key component of blockchain technology is the ledger, viz., a database...
research
07/08/2019

Manticore: A User-Friendly Symbolic Execution Framework for Binaries and Smart Contracts

An effective way to maximize code coverage in software tests is through ...

Please sign up or login with your details

Forgot password? Click here to reset