TxT:面向以太坊智能合约的实时交易封装
密码学与安全
2023-01-24 v1 分布式、并行与集群计算
摘要
以太坊是一个无需许可的区块链生态系统,支持智能合约执行,即去中心化金融(DeFi)与非同质化代币(NFT)的关键推动者。然而,以太坊智能合约的表达能力是一把双刃剑:虽实现了区块链可编程性,也引入了安全漏洞,即合约代码预期行为与实际行为之间可被利用的差异。为解决这些差异并提高漏洞覆盖率,我们提出一种称为交易封装的新型智能合约安全测试方法。其核心思想在于在完全同步但隔离的以太坊节点上本地执行交易,从而在当前区块链状态下创建交易序列结果的前瞻。该方法带来一个关键技术挑战——著名的检查时间/使用时间(TOCTOU)问题,即如何确保最终交易展现与封装测试交易相同的执行路径。本工作中,我们确定了被测交易执行路径可复现性的确切条件,并实现了交易测试工具 TxT,其揭示以太坊交易的实际结果。为保障测试正确性,TxT 确定性地验证给定交易序列在当前区块链状态下是否引发相同执行路径。我们分析了超过 13 亿笔以太坊交易,确定其中 96.5% 可被 TxT 验证。我们进一步展示 TxT 成功揭示了智能合约弱点分类(SWC)注册库中 37 个漏洞里 31 个(83.8% 覆盖率)的相关可疑行为。相比之下,所有现有防御方法合计的漏洞覆盖率仅达 40.5%。
引用
@article{arxiv.2301.08806,
title = {TxT: Real-time Transaction Encapsulation for Ethereum Smart Contracts},
author = {Nikolay Ivanov and Qiben Yan and Anurag Kompalli},
journal= {arXiv preprint arXiv:2301.08806},
year = {2023}
}
备注
To appear in IEEE Transactions on Information Forensics and Security