中文

智能合约测试更智能

软件工程 2019-12-25 v2

摘要

智能合约是不可变、可验证且自主的代码段,可部署并在以太坊等区块链网络上运行。由于区块链的不可变性质,已部署的智能合约或已验证的交易无法更改。另一方面,以太坊区块链上的智能合约承载了数百万美元,因此,有缺陷的智能合约可能导致巨大的金钱损失。因此,智能合约开发者在将代码部署到区块链之前,全面测试并检查其正确性十分重要。在本文中,我们提出了一种基于变异测试的 Solidity 语言智能合约测试机制。我们分析了 Solidity 智能合约中已知的缺陷综合列表,并受真实故障启发设计了 10 类变异算子。我们的实验结果表明,我们提出的变异算子可以重新生成 15 个著名缺陷智能合约中的 10 个,这些合约已导致数百万美元损失。结果显示了我们提出的变异算子在检测 Solidity 智能合约真实故障方面的有效性。我们还将 Universal Mutator 工具扩展了我们提出的变异算子,以便其能自动为 Solidity 编写的智能合约生成变异体。

关键词

引用

@article{arxiv.1912.04780,
  title  = {Testing Smart Contracts Gets Smarter},
  author = {Erfan Andesta and Fathiyeh Faghih and Mahdi Fooladgar},
  journal= {arXiv preprint arXiv:1912.04780},
  year   = {2019}
}