Abstract
Smart contracts are notoriously vulnerable to bugs and loopholes. This is due largely to an unusual combination of features: re-entrant calls, transfer-triggered code execution, the way exceptions are propagated, etc. Numerous validation techniques have been developed to ensure the safety and security of smart contracts. An important class of problems dealt with is related to the atomic performance of actions such as contract calls and state updates. In this paper, we examine the major existing atomicity-related criteria for the safety and security of smart contracts. We then propose an atomicity criterion and argue about its advantages. Furthermore, we develop a Hoare-style program logic that is capable of verifying the fulfillment of safety requirements by smart contracts, including the satisfaction of the proposed criterion. The program logic is developed and proven sound for a core Solidity-like language, which supports reentrant calls, ether transfers, and exception handling.
Cite
CITATION STYLE
Han, N., Li, X., Wang, G., Shi, Z., & Guan, Y. (2020). Formal Verification of Atomicity Requirements for Smart Contracts. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 12470 LNCS, pp. 44–64). Springer Science and Business Media Deutschland GmbH. https://doi.org/10.1007/978-3-030-64437-6_3
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.