Verification of Smart Contract Business Logic: Exploiting a Java Source Code Verifier
Paper i proceeding, 2019

Smart contracts have been argued to be a means of building trust between parties by providing a self-executing equivalent of legal contracts. And yet, code does not always perform what it was originally intended to do, which resulted in losses of millions of dollars. Static verification of smart contracts is thus a pressing need. This paper presents an approach to verifying smart contracts written in Solidity by automatically translating Solidity into Java and using KeY, a deductive Java verification tool. In particular, we solve the problem of rolling back the effects of aborted transactions by exploiting KeY’s native support of JavaCard transactions. We apply our approach to a smart contract which automates a casino system, and discuss how the approach addresses a number of known shortcomings of smart contract development in Solidity.

Författare

Wolfgang Ahrendt

Chalmers, Data- och informationsteknik, Formella metoder

Richard Bubel

Technische Universität Darmstadt

Joshua Ellul

University of Malta

Gordon Pace

University of Malta

Raul Pardo Jimenez

Institut National de Recherche en Informatique et en Automatique (INRIA)

Vincent Rebiscoul

Ecole Normale Superieure de Lyon

Gerardo Schneider

Göteborgs universitet

Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

03029743 (ISSN) 16113349 (eISSN)

Vol. 11761 LNCS 228-243

8th International Conference on Fundamentals of Software Engineering, FSEN 2019
Tehran, Iran,

Ämneskategorier

Inbäddad systemteknik

Datavetenskap (datalogi)

Datorsystem

DOI

10.1007/978-3-030-31517-7_16

Mer information

Senast uppdaterat

2019-12-16