Blockchain programs manage valuable assets like crypto-currencies and tokens, and implement protocols for decentralized finance (DeFi), logistics and logging, where security is important. To find potential issues, numerous tools support developers and analysts. Being a recent technology, blockchain technology and programs still evolve fast, making it challenging for tools and developers to keep up with the changes. In this work, we study the evolution of tools and patterns detected. We focus on Ethereum, the crypto ecosystem with most developers and most contracts, by far. We investigate the changes in the tools' behavior in terms of detected weaknesses, quality and behavior, and agreements between the tools. We are the first to fully cover the entire body of deployed bytecode on the Ethereum mainchain. We achieve full coverage by considering bytecodes as equivalent if they share the same skeleton. The skeleton of a bytecode is obtained by omitting functionally irrelevant parts. This reduces the 48 million contracts deployed on Ethereum to 248,328 contracts with distinct skeletons. For bulk execution, we utilize the open-source framework SmartBugs that facilitates the analysis of Solidity smart contracts, and enhance it to also accept bytecode as the only input. Moreover, we integrate six further tools that accept bytecode. The execution of the 13 included tools took 31 years in total. While the tools are reporting a total of 1,307,486 potential weaknesses, over time we observe a decreasing number of reported vulnerabilities and tools degrading to varying degrees.
翻译:区块链程序管理着加密货币和代币等有价值的资产,并实现了去中心化金融(DeFi)、物流和日志记录等协议,其中安全性至关重要。为了发现潜在问题,众多工具为开发者和分析师提供支持。作为一项新兴技术,区块链技术及其程序仍在快速演进,这使得工具和开发者难以跟上这些变化。在本研究中,我们考察了工具及所检测模式的演进。我们聚焦于以太坊——目前拥有最多开发者和合约的加密生态系统。我们研究了工具在检测弱点、质量、行为以及工具间一致性方面的变化。我们是首个完全覆盖以太坊主链上所有已部署字节码的研究。我们通过将具有相同骨架的字节码视为等价来实现全面覆盖。字节码的骨架通过省略功能无关的部分获得。这将以太坊上部署的4800万份合约缩减为248,328份具有不同骨架的合约。对于批量执行,我们利用了开源框架SmartBugs(该框架便于分析Solidity智能合约),并增强了其功能以接受仅字节码作为输入。此外,我们集成了另外六个接受字节码的工具。这13个工具的执行共计耗时31年。尽管这些工具报告了总计1,307,486个潜在弱点,但随着时间的推移,我们观察到所报告漏洞数量呈下降趋势,且各工具的性能出现了不同程度的退化。