摘要
近年来,作为以太坊的重要组成部分,智能合约引起了工业界与学术界的广泛兴趣。智能合约是一段部署在区块链上的程序,为分布式交易提供了可能。然而,由于智能合约携带的金融属性,使其成为黑客攻击的目标。因此,为保证合约的安全性,需对漏洞合约进行修复并通过测试保证功能一致性。然而,现有智能合约测试方案缺乏拓展性、重放准确性低以及储存消耗大等问题。为此,提出一种支持交易筛选的高性能智能合约测试方案。该方案首先基于以太坊状态变更建模交易特征,增强扩展性;接着基于二阶树结构储存以太坊历史数据,优化储存空间;最后通过分叉机制进行交易重放,实现在不干扰主链的情况下对修复合约进行测试。基于所提方案实现原型工具SCTester,并与现有合约测试方案EVMPatch、Hartel和Kim相比较。实验结果表明,所提方案在拓展性与重放准确率有更好的表现,并且在空间消耗方面,所提方案相较于Kim降低了21.6%的储存空间;在时间消耗方面,所提方案相较于Kim在账户测试场景下的交易重放减少了70.5%的时间消耗。
- 单位