A Survey of Smart Contract Formal Specification and Verification

by   Palina Tolmach, et al.

A smart contract is a computer program which allows users to define and execute transactions automatically on top of the blockchain platform. Given the significance of smart contracts in supporting important activities across industry sectors including supply chain, finance, legal and medical services, there is a strong demand for verification and validation techniques. Yet, the vast majority of smart contracts lack any kind of formal specification, which is essential for establishing their correctness. In this survey, we investigate formal models and specifications of smart contracts presented in the literature and present a systematic overview in order to understand the common trends. We also discuss the current approaches used in verifying such property specifications and identify gaps with the hope to recognize promising directions for future work.


page 1

page 2

page 3

page 4


Finding smart contract vulnerabilities with ConCert's property-based testing framework

We provide three detailed case studies of vulnerabilities in smart contr...

Formal Specification and Verification of Solidity Contracts with Events

Events in the Solidity language provide a means of communication between...

Understand Volatility of Algorithmic Stablecoin: Modeling, Verification and Empirical Analysis

An algorithmic stablecoin is a type of cryptocurrency managed by algorit...

User Experience with Language-Independent Formal Verification

The goal of this paper is to help mainstream programmers routinely use f...

Modular Verification of Collaborating Smart Contracts

Smart contracts are programs that execute inside blockchains such as Eth...

Distributed Runtime Verification of Metric Temporal Properties for Cross-Chain Protocols

Transactions involving multiple blockchains are implemented by cross-cha...

Temporal Aspects of Smart Contracts for Financial Derivatives

Implementing smart contracts to automate the performance of high-value o...