Litcius/Paper detail

A Survey of Smart Contract Formal Specification and Verification

Palina Tolmach, Yi Li, Shang‐Wei Lin, Yang Liu, Zengxiang Li

2021ACM Computing Surveys223 citationsDOI

Abstract

A smart contract is a computer program that allows users to automate their actions on 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 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.

Topics & Concepts

Computer scienceCorrectnessSmart contractFormal specificationFormal methodsFormal verificationSoftware engineeringWork (physics)Computer securityBlockchainProgramming languageEngineeringMechanical engineeringBlockchain Technology Applications and SecuritySecurity and Verification in ComputingCryptography and Data Security