A Survey of Smart Contract Formal Specification and Verification
This is an incremental survey that addresses the problem of ensuring correctness in smart contracts for developers and industries relying on blockchain technology.
The paper surveys formal models and specifications for smart contracts, identifying common trends and verification approaches to address the lack of formal specification in smart contracts, which are critical for industries like finance and supply chain.
A smart contract is a computer program which 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 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.