中文

增强开放网络:智能合约缺陷的定义与自动检测

软件工程 2025-01-14 v1

摘要

开放网络(TON)旨在支持Telegram数亿用户群,自2022年推出以来引起了广泛关注。FunC是TON上编写智能合约最流行的编程语言,与其他智能合约语言相比,它具有独特的语法。尽管兴趣日益增长,但对TON智能合约实际缺陷的研究仍处于早期阶段。本文总结了从TON官方博客和审计报告中识别出的八种智能合约缺陷,每种缺陷都有详细定义和代码示例。此外,我们提出了一个名为TONScanner的静态分析框架,以促进这些缺陷的检测。具体来说,TONScanner重用FunC编译器的前端代码,将FunC源代码转换为有向无环图(DAG)形式的FunC中间表示(IR)。基于该IR,TONScanner构建控制流图(CFG),然后将其转换为静态单赋值(SSA)形式以简化后续分析。TONScanner还集成了数据依赖、调用图、污点分析和Cell构造,这些专门针对TON区块链独特的数据结构定制。这些组件最终有助于识别八种缺陷。我们通过将TONScanner应用于1,640个智能合约来评估其有效性,共发现14,995个缺陷。通过随机抽样和手动标注,我们发现TONScanner的总体精度达到97.49%。结果表明,当前的TON合约包含大量缺陷,表明开发者容易出错。TONScanner已证明其准确识别这些缺陷的能力,从而有助于纠正它们。

关键词

引用

@article{arxiv.2501.06459,
  title  = {Enhancing The Open Network: Definition and Automated Detection of Smart Contract Defects},
  author = {Hao Song and Teng Li and Jiachi Chen and Ting Chen and Beibei Li and Zhangyan Lin and Yi Lu and Pan Li and Xihan Zhou},
  journal= {arXiv preprint arXiv:2501.06459},
  year   = {2025}
}

备注

The paper has been accepted for presentation at the 47th IEEE/ACM International Conference on Software Engineering (ICSE 2025)