DEFECTCHECKER:通过分析EVM字节码实现智能合约缺陷自动检测
软件工程
2021-03-24 v2
摘要
智能合约是运行于区块链上的图灵完备程序。它们不可变更且无法修改,即便在检测到缺陷时也是如此。因此,在将智能合约部署到区块链之前确保其无缺陷且设计良好极为重要。合约缺陷是智能合约中导致产生不正确或意外结果、或以非预期方式行为的错误、瑕疵或故障。检测并消除合约缺陷可避免潜在漏洞并使程序更健壮。我们此前的工作定义了智能合约的20种合约缺陷,并将其划分为五个影响等级。依据我们的分类,影响等级为1-3的合约缺陷可导致非预期行为,例如合约被攻击者控制。本文中,我们提出 DefectChecker,一种基于符号执行的方法与工具,用于检测以太坊区块链平台上可引发智能合约非预期行为的八种合约缺陷。DefectChecker 可从智能合约字节码中检测合约缺陷。我们使用一个开源数据集将 DefectChecker 与包括 Oyente、Mythril 和 Securify 在内的主要已有工作进行比较。实验结果表明,DefectChecker 在速度与准确率两方面均大幅优于这些工具。我们还将 DefectChecker 应用于以太坊平台上的165,621个独立智能合约。我们发现其中25,815个智能合约至少包含一种属于影响等级1-3的合约缺陷,包括一些真实世界中的攻击事件。
引用
@article{arxiv.2009.02663,
title = {DEFECTCHECKER: Automated Smart Contract Defect Detection by Analyzing EVM Bytecode},
author = {Jiachi Chen and Xin Xia and David Lo and John Grundy and Xiapu Luo and Ting Chen},
journal= {arXiv preprint arXiv:2009.02663},
year = {2021}
}