@inproceedings{schiffl_smart_2019,
title = {Smart Contracts: Application Scenarios for Deductive Program Verification},
author = {Bernhard Beckert and Jonas Schiffl and Mattias Ulbrich},
editor = {Bruno Bernardo and N\'{e}stor Cata\~{n}o and Diego Marmsoler},
booktitle = {1st Workshop on Formal Methods for Blockchains ({FMBC} 2019)
hosted by the 3rd Formal Methods World Congress ({FM}’19)},
month = oct,
year = {2019},
abstract = {Smart contracts are programs that run on a distributed ledger platform.
They usually manage resources representing valuable
assets. Moreover, their source code is visible to potential
attackers, they are distributed, and bugs are hard to
fix. Thus, they are susceptible to attacks exploiting programming errors.
Their vulnerability makes a rigorous formal analysis of the functional
correctness of smart contracts highly desirable.
In this short paper, we show that the architecture of smart
contract platforms offers a computation model for smart
contracts that yields itself naturally to deductive program
verification. We discuss different classes of correctness
properties of distributed ledger applications, and show that
design-by-contract verification tools are suitable to prove
these properties. We present experiments where we apply the
\KeY verification tool to smart contracts in the Hyperledger
Fabric framework which are implemented in Java and
specified using the Java Modeling Language.},
venue = {Porto, Portugal},
eventdate = {2019-10-11/2019-10-11}
}
Smart Contracts: Application Scenarios for Deductive Program Verification
| Autor(en): | Bernhard Beckert, Jonas Schiffl und Mattias Ulbrich |
|---|---|
| In: | 1st Workshop on Formal Methods for Blockchains (FMBC 2019) hosted by the 3rd Formal Methods World Congress (FM’19) |
| Jahr: | 2019 |
| Links: | Preprint |
Abstract
Smart contracts are programs that run on a distributed ledger platform. They usually manage resources representing valuable assets. Moreover, their source code is visible to potential attackers, they are distributed, and bugs are hard to fix. Thus, they are susceptible to attacks exploiting programming errors. Their vulnerability makes a rigorous formal analysis of the functional correctness of smart contracts highly desirable. In this short paper, we show that the architecture of smart contract platforms offers a computation model for smart contracts that yields itself naturally to deductive program verification. We discuss different classes of correctness properties of distributed ledger applications, and show that design-by-contract verification tools are suitable to prove these properties. We present experiments where we apply the KeY verification tool to smart contracts in the Hyperledger Fabric framework which are implemented in Java and specified using the Java Modeling Language.