中文

Solidity代码中的微模式

软件工程 2025-05-05 v1 编程语言

摘要

Solidity是区块链智能合约的主要编程语言,其特征为代码分析和维护带来了显著挑战。传统软件分析方法虽然对传统编程语言有效,却往往无法解决Solidity-specific特性,如gas优化和安全约束。本文引入微模式——捕获特定语言特定行为和结构 peculiarities 的小规模设计结构——用于Solidity语言,并展示其在理解智能合约开发实践方面的值。我们识别出18个distinct微模式,组织为五个类别(安全、功能、优化、交互和反馈),详细描述其特征以实现自动检测。为验证此提案,我们分析了来自五个热门区块链(Ethereum、Polygon、Arbitrum、Fantom和Optimism)的23258个智能合约数据集。我们的分析显示,微模式的采用广泛,99%的合约至少实施一个模式,每个合约平均有2.76个模式。Storage Saver模式的采用率最高(84.62%平均覆盖率),而安全模式在不同平台上的采用率有所不同。统计分析揭示了平台在模式采用率方面的显著差异,特别是在Borrower、Implementer和Storage Optimization模式中。

关键词

引用

@article{arxiv.2505.01282,
  title  = {Micro-Patterns in Solidity Code},
  author = {Luca Ruschioni and Robert Shuttleworth and Rumyana Neykova and Barbara Re and Giuseppe Destefanis},
  journal= {arXiv preprint arXiv:2505.01282},
  year   = {2025}
}