paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Towards Understanding the Bugs in Solidity Compiler

理解 Solidity 编译器中的缺陷
ISSTA Proceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis2024匹配度 3/10 · 论文聚焦Solidity编译器的缺陷特征与模糊测试器评测,属于编译器测试/调试方向,且构建了基准并指出已有模糊测试器的局限,与用户对“问题驱动”和“重要场景基准”的偏好部分吻合;但它不涉及LLM/Agent、静态分析、浮点程序分析或贝叶斯程序分析,与用户的核心交叉方向距离较远。引用 10 inbox
Haoyang Ma, Wuqi Zhang, Qingchao Shen, Yongqiang Tian, Junjie Chen, Shing-Chi Cheung
crossref: 2026-09-12

AI 速览

一句话:首个系统研究533个Solidity编译器缺陷,并揭示现有模糊测试器的局限。

论文关注 Solidity 编译器缺陷理解不足及其对智能合约安全的重要影响。作者收集并人工分析 533 个 Solidity 编译器缺陷,从症状、根因、分布和触发测试用例等维度进行系统刻画,总结出七条可启发测试与修复的发现。为评估现有工具,作者构建缺陷基准,并测试三个 Solidity 编译器模糊测试器,发现它们在检测这些缺陷时效率低下,主要因为未充分考虑诱发缺陷的语言特性、与缺陷相关的编译选项以及合适测试预言。该研究为后续 Solidity 编译器缺陷检测提供实证基础。

问题
Solidity 编译器正确性关键但易含缺陷,作为 DSL 编译器其缺陷检测面临独特挑战,现有理解不足。
方法
系统收集并人工分析 533 个 Solidity 编译器缺陷及其触发测试用例,归纳症状、根因和分布,并构建基准评估三个模糊测试器。
评估
通过人工特征分类与七条发现,并在构建基准上对三个 Solidity 编译器 fuzzer 进行实证评估,发现其检测效率低且受缺陷诱因、编译标志和测试预言缺失限制。
原文摘要(Abstract)

Solidity compiler plays a key role in enabling the development of smart contract applications on Ethereum by governing the syntax of a domain-specific language called Solidity and performing compilation and optimization of Solidity code. The correctness of Solidity compiler is critical in fostering transparency, efficiency, and trust in industries reliant on smart contracts. However, like other software systems, Solidity compiler is prone to bugs, which may produce incorrect bytecodes on blockchain platforms, resulting in severe security concerns. As a domain-specific compiler for smart contracts, Solidity compiler differs from other compilers in many perspectives, posing unique challenges to detect its bugs. To understand the bugs in Solidity compiler and benefit future research, in this paper, we present the first systematic study on 533 Solidity compiler bugs. We carefully examined their characteristics (including symptoms, root causes, and distribution), and their triggering test cases. Our study leads to seven bug-revealing takeaways for Solidity compiler. Moreover, to study the limitations of Solidity compiler fuzzers and bring our findings into practical scenarios, we evaluate three Solidity compiler fuzzers on our constructed benchmark. The results show that these fuzzers are inefficient in detecting Solidity compiler bugs. The inefficiency arises from their failure to consider the interesting bug-inducing features, bug-related compilation flags, and test oracles.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@inproceedings{paperbot8568,
  title = {Towards Understanding the Bugs in Solidity Compiler},
  author = {Haoyang Ma and Wuqi Zhang and Qingchao Shen and Yongqiang Tian and Junjie Chen and Shing-Chi Cheung},
  booktitle = {ISSTA},
  year = {2024},
  doi = {10.1145/3650212.3680362}
}