中文

复制粘贴?识别多链复用合约中的EVM不等价代码异味

软件工程 2025-04-14 v2

摘要

随着以太坊上Solidity合约的发展,越来越多的开发者将其复用到其他兼容区块链上。然而,开发者可能忽视区块链系统设计上的差异,例如Gas机制和共识协议,导致不同区块链上的相同合约无法像在以太坊上那样实现一致执行。这种不一致性揭示了复用合约的设计缺陷,暴露出阻碍代码可复用性的代码异味,我们将这种不一致性定义为EVM不等价代码异味。本文进行了首次实证研究,揭示EVM不等价代码异味的原因和特征。为确保识别出的异味反映开发者的真实关切,我们收集并分析了与EVM兼容区块链(如币安智能链(BSC)和Polygon)上复用合约相关的1,379份安全审计报告和326个Stack Overflow帖子。通过开放式卡片分类方法,我们定义了六种EVM不等价代码异味。为实现自动检测,我们开发了一个名为EquivGuard的工具。它采用静态污点分析来识别不同模式的关键路径,并使用符号执行来验证路径可达性。我们对六大区块链上的905,948个合约的分析表明,EVM不等价代码异味普遍存在,平均流行率为17.70%。虽然存在代码异味的合约不一定会导致财务损失和攻击,但其高流行率和显著的资产管理问题凸显了复用这些有异味的以太坊合约的潜在威胁。因此,建议开发者在复用以太坊合约之前放弃复制粘贴编程实践,并检测EVM不等价代码异味。

关键词

引用

@article{arxiv.2504.07589,
  title  = {Copy-and-Paste? Identifying EVM-Inequivalent Code Smells in Multi-chain Reuse Contracts},
  author = {Zexu Wang and Jiachi Chen and Tao Zhang and Yu Zhang and Weizhe Zhang and Yuming Feng and Zibin Zheng},
  journal= {arXiv preprint arXiv:2504.07589},
  year   = {2025}
}

备注

Accepted by ISSTA2025