西安电子科技大学学报 ›› 2024, Vol. 51 ›› Issue (3): 194-202.doi: 10.19665/j.issn1001-2400.20230803
彭泳翔1(), 马勇2(), 刘志全1,3(), 王立波1(), 吴永东1(), 陈宁3(), 唐泳4()
PENG Yongxiang1(), MA Yong2(), LIU Zhiquan1,3(), WANG Libo1(), WU Yongdong1(), CHEN Ning3(), TANG Yong4()
摘要:
近年来,作为以太坊的重要组成部分,智能合约引起了工业界与学术界的广泛兴趣。智能合约是一段部署在区块链上的程序,为分布式交易提供了可能。然而,由于智能合约携带的金融属性,使其成为黑客攻击的目标。因此,为保证合约的安全性,需对漏洞合约进行修复并通过测试保证功能一致性。然而,现有智能合约测试方案缺乏拓展性、重放准确性低以及储存消耗大等问题。为此,提出一种支持交易筛选的高性能智能合约测试方案。该方案首先基于以太坊状态变更建模交易特征,增强扩展性;接着基于二阶树结构储存以太坊历史数据,优化储存空间;最后通过分叉机制进行交易重放,实现在不干扰主链的情况下对修复合约进行测试。基于所提方案实现原型工具SCTester,并与现有合约测试方案EVMPatch、HARTEL和KIM相比较。实验结果表明,所提方案在拓展性与重放准确率有更好的表现,并且在空间消耗方面,所提方案相较于KIM降低了约21.6%的储存空间;在时间消耗方面,所提方案相较于KIM在账户测试场景下的交易重放减少了约70.5%的时间消耗。
中图分类号: