Abstract

摘要——以太坊是最大的支持智能合约的区块链平台。 用户通过将智能合约的字节码发布到区块链来部署智能合约。 由于区块链中的数据无法修改,即使这些合约包含错误,也不可能通过代码更新来修补已部署的智能合约。 此外,目前以太坊智能合约漏洞没有一个全面的分类框架,也没有详细的智能合约漏洞检测标准,开发者很难全面了解漏洞的负面影响,设计新的漏洞检测方法。 在本文中,为了填补这一空白,我们首先从多个来源收集尽可能多的智能合约错误,并通过扩展 IEEE 软件异常标准分类将这些错误分为 9 类。 然后,我们设计了检测各种错误的标准,并构建了一个涵盖各种错误的智能合约数据集。 通过我们的框架和数据集,开发人员可以学习智能合约错误并开发新工具来检测和定位智能合约中的错误。 此外,我们使用我们的数据集评估了用于智能合约分析的最先进工具,并获得了一些有趣的发现:1) Mythril、Slither 和 Remix 是最有价值的分析工具组合。 2) 还有 10 种 bug 是任何分析工具都无法检测到的。
索引词——以太坊、Solidity、智能合约错误