Blockchain smart contracts formalization: Approaches and challenges to address vulnerabilities

被引:116
作者
Singh, Amritraj [1 ]
Parizi, Reza M. [1 ]
Zhang, Qi [2 ]
Choo, Kim-Kwang Raymond [3 ,4 ]
Dehghantanha, Ali [4 ]
机构
[1] Kennesaw State Univ, Dept Software Engn & Game Dev, Marietta, GA 30060 USA
[2] IBM Thomas J Watson Res Ctr, Yorktown Hts, NY 10598 USA
[3] Univ Texas San Antonio, Dept Informat Syst & Cyber Secur, San Antonio, TX 78249 USA
[4] Univ Guelph, Sch Comp Sci, Cyber Sci Lab, Guelph, ON, Canada
关键词
Blockchain; Smart contracts; Formal methods; Verification; Systematic review;
D O I
10.1016/j.cose.2019.101654
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Blockchain as a distributed computing platform enables users to deploy pieces of software (known as smart contracts) for a wealth of next-generation decentralized applications without involving a trusted third-party. The advantages of smart contracts do, however, come at a price. As with most technologies, there are potential security threats, vulnerabilities and various other issues associated with smart contracts. Writing secure and safe smart contracts can be extremely difficult due to various business logics, as well as platform vulnerabilities and limitations. Formal methods have recently been advocated to mitigate these vulnerabilities. This paper aims to provide a first-time study on current formalization research on all smart contract-related platforms on blockchains, which is scarce in the literature. To this end, a timely and rigorous systematic review to examine the state-of-the-art research and achievements published between 2015 and July 2019 is provided. This study is based on a comprehensive review of a set of 35 research papers that have been extracted from eight major online digital databases. The results indicate that the most common formalization technique is theorem proving, which is most often used to verify security properties relating to smart contracts, while other techniques such as symbolic execution and model checking were also frequently used. These techniques were most commonly used to verify the functional correctness of smart contracts. From the language and automation point of views, there were 12 languages (domain specific/specification/general purpose) proposed or used for the formalization of smart contracts on blockchains, while 15 formal method-specific automated tools/frameworks were identified for mitigating various vulnerabilities of smart contracts. From the results of this work, we further highlight three open issues for future research in this emerging domain including: formal testing, automated verification of smart contracts, and domain specific languages (DSLs) for Ethereum. These issues suggest the need for additional, in-depth research. Our study also provides possible future research directions. (C) 2019 Elsevier Ltd. All rights reserved.
引用
收藏
页数:16
相关论文
共 53 条
  • [1] Abdellatif T, 2018, INT CONF NEW TECHNOL
  • [2] Aichernig BK, 2017, IEEE ICST WORKSHOP, P337, DOI 10.1109/ICSTW.2017.62
  • [3] Property-based Testing with FsCheck by Deriving Properties from Business Rule Models
    Aichernig, Bernhard K.
    Schumi, Richard
    [J]. 2016 IEEE NINTH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION WORKSHOPS (ICSTW), 2016, : 219 - 228
  • [4] Andronick J, 2018, P 7 ACM SIGPLAN INT, P66, DOI DOI 10.1145/3167084
  • [5] [Anonymous], 2017, INT C FIN CRYPT DAT
  • [6] [Anonymous], 2004, Keele University Technical Report TR/SE-0401
  • [7] Atzei N, 2017, RIV PUBL SER AUTOMAT, P1
  • [8] Formal Modeling and Verification of Smart Contracts
    Bai, Xiaomin
    Cheng, Zijing
    Duan, Zhangbo
    Hu, Kai
    [J]. PROCEEDINGS OF 2018 7TH INTERNATIONAL CONFERENCE ON SOFTWARE AND COMPUTER APPLICATIONS (ICSCA 2018), 2018, : 322 - 326
  • [9] Berger P, 2016, 2016 IEEE/WIC/ACM INTERNATIONAL CONFERENCE ON WEB INTELLIGENCE (WI 2016), P644, DOI [10.1109/WI.2016.0114, 10.1109/WI.2016.114]
  • [10] Formal Verification of Smart Contracts Short Paper
    Bhargavan, Karthikeyan
    Delignat-Lavaud, Antoine
    Fournet, Cedric
    Gollamudi, Anitha
    Gonthier, Georges
    Kobeissi, Nadim
    Kulatova, Natalia
    Rastogi, Aseem
    Sibut-Pinote, Thomas
    Swamy, Nikhil
    Zanella-Beguelin, Santiago
    [J]. PROCEEDINGS OF THE 2016 ACM WORKSHOP ON PROGRAMMING LANGUAGES AND ANALYSIS FOR SECURITY (PLAS'16), 2016, : 91 - 96