Empirical Review of Automated Analysis Tools on 47,587 Ethereum Smart Contracts

被引:231
作者
Durieux, Thomas [1 ,2 ]
Ferreira, Joao F. [1 ,2 ]
Abreu, Rui [1 ,2 ]
Cruz, Pedro [1 ,2 ]
机构
[1] Univ Lisbon, INESC ID, Lisbon, Portugal
[2] Univ Lisbon, IST, Lisbon, Portugal
来源
2020 ACM/IEEE 42ND INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2020) | 2020年
基金
欧盟地平线“2020”;
关键词
Smart contracts; Solidity; Ethereum; Blockchain; Tools; Debugging; Testing; Reproducible Bugs;
D O I
10.1145/3377811.3380364
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Over the last few years, there has been substantial research on automated analysis, testing, and debugging of Ethereum smart contracts. However, it is not trivial to compare and reproduce that research. To address this, we present an empirical evaluation of 9 state-of-the-art automated analysis tools using two new datasets: i) a dataset of 69 annotated vulnerable smart contracts that can be used to evaluate the precision of analysis tools; and ii) a dataset with all the smart contracts in the Ethereum Blockchain that have Solidity source code available on Etherscan (a total of 47,518 contracts). The datasets are part of SmartBugs, a new extendable execution framework that we created to facilitate the integration and comparison between multiple analysis tools and the analysis of Ethereum smart contracts. We used SmartBugs to execute the 9 automated analysis tools on the two datasets. In total, we ran 428,337 analyses that took approximately 564 days and 3 hours, being the largest experimental setup to date both in the number of tools and in execution time. We found that only 42% of the vulnerabilities from our annotated dataset are detected by all the tools, with the tool Mythril having the higher accuracy (27%). When considering the largest dataset, we observed that 97% of contracts are tagged as vulnerable, thus suggesting a considerable number of false positives. Indeed, only a small number of vulnerabilities (and of only two categories) were detected simultaneously by four or more tools.
引用
收藏
页码:530 / 541
页数:12
相关论文
共 43 条
[1]   ETHIR: A Framework for High-Level Analysis of Ethereum Bytecode [J].
Albert, Elvira ;
Gordillo, Pablo ;
Livshits, Benjamin ;
Rubio, Albert ;
Sergey, Ilya .
AUTOMATED TECHNOLOGY FOR VERIFICATION AND ANALYSIS (ATVA 2018), 2018, 11138 :513-520
[2]   Monitoring Smart Contracts: ContractLarva and Open Challenges Beyond [J].
Azzopardi, Shaun ;
Ellul, Joshua ;
Pace, Gordon J. .
RUNTIME VERIFICATION (RV 2018), 2018, 11237 :113-137
[3]   Formal Verification of Smart Contracts Short Paper [J].
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 .
PROCEEDINGS OF THE 2016 ACM WORKSHOP ON PROGRAMMING LANGUAGES AND ANALYSIS FOR SECURITY (PLAS'16), 2016, :91-96
[4]  
Blockchain Company, 2018, SOLH
[5]  
Brent L., 2018, CORR
[6]  
Buterin V., 2013, GitHub repository, V1, P22
[7]  
Chang J, 2018, ARXIV180800624
[8]  
Chen H., 2019, ARXIV PREPRINT ARXIV
[9]  
Chen Jiachi, 2019, ARXIVARXIV190501467
[10]  
Chen T, 2017, 2017 IEEE 24TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER), P442, DOI 10.1109/SANER.2017.7884650