以太坊智能合约中交易回滚语句的特征分析
密码学与安全
2021-09-02 v3 软件工程
摘要
智能合约是在区块链上运行以执行交易的程序。当运行时违反输入约束或安全属性时,需要将智能合约正在执行的交易回滚以避免不良后果。在支持智能合约的最流行区块链以太坊上,开发者可以在三种交易回滚语句(即 require、if...revert 和 if...throw)中选择以处理异常交易。尽管这些交易回滚语句对于防止智能合约表现出异常行为或遭受恶意攻击至关重要,但人们对它们在实际中如何使用知之有限。在这项工作中,我们进行了首次实证研究来刻画以太坊智能合约中的交易回滚语句。我们测量了来自流行 dapp 的 3866 个已验证智能合约中这些语句的普遍程度,并通过手动分析 557 个交易回滚语句构建了其用途分类法。我们还比较了模板合约与其对应的自定义合约,以了解开发者如何定制交易回滚语句的使用。最后,我们通过从智能合约中移除这些语句并将变异后的合约与原始合约进行比较,分析了交易回滚语句的安全影响。我们的研究得出了重要发现,可为本智能合约质量保证广泛领域的进一步研究提供启示,并为智能合约开发者恰当使用交易回滚语句提供实践指导。
引用
@article{arxiv.2108.10799,
title = {Characterizing Transaction-Reverting Statements in Ethereum Smart Contracts},
author = {Lu Liu and Lili Wei and Wuqi Zhang and Ming Wen and Yepang Liu and Shing-Chi Cheung},
journal= {arXiv preprint arXiv:2108.10799},
year = {2021}
}