2021
DOI: 10.1145/3464421
|View full text |Cite
|
Sign up to set email alerts
|

A Survey of Smart Contract Formal Specification and Verification

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 forma… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
60
1

Year Published

2021
2021
2023
2023

Publication Types

Select...
6
2
2

Relationship

0
10

Authors

Journals

citations
Cited by 118 publications
(61 citation statements)
references
References 37 publications
0
60
1
Order By: Relevance
“…It can be used to encode functional programs. The π−calculus and applications have proven successful in reasoning about cryptographic protocols and it is also applied in formal analysis of consensus protocols in blockchain [63].…”
Section: ) Pi-calculusmentioning
confidence: 99%
“…It can be used to encode functional programs. The π−calculus and applications have proven successful in reasoning about cryptographic protocols and it is also applied in formal analysis of consensus protocols in blockchain [63].…”
Section: ) Pi-calculusmentioning
confidence: 99%
“…The more general goal of verifying smart contracts in various senses has become too big an industry to survey here [31]. Jiao et al [23] and Ribeiro et al [28] verify programs written in a subset of Solidity with respect to a high-level description of the semantics, and Bhargavan et al [11] verify smart contracts written in Solidity by translating them to F ★ .…”
Section: Related Workmentioning
confidence: 99%
“…There is a glaring need for a safe mechanism to upgrade smart contracts in platforms, such as Ethereum, where contract implementations are immutable once deployed; the many surveys uncovering this fact [19,40,15] and communityproposed design patterns proposing mechanisms to upgrade smart contracts [38,10,25,32] attest this necessity. Yet, surprisingly, we could only find two close related approaches [11,35] that try to tackle this problem.…”
Section: Related Workmentioning
confidence: 99%