Skip to main navigation Skip to search Skip to main content

Towards Understanding the Bugs in Solidity Compiler

  • Haoyang Ma
  • , Wuqi Zhang
  • , Qingchao Shen
  • , Yongqiang Tian
  • , Junjie Chen
  • , Shing Chi Cheung

Research output: Chapter in Book/Report/Conference proceedingConference PaperResearchpeer-review

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.

Original languageEnglish
Title of host publicationProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis
EditorsMaria Christakis, Michael Pradel
Place of PublicationNew York NY USA
PublisherAssociation for Computing Machinery (ACM)
Pages1312-1324
Number of pages13
ISBN (Electronic)9798400706127
DOIs
Publication statusPublished - 2024
Externally publishedYes
EventInternational Symposium on Software Testing and Analysis 2024 - Vienna, Austria
Duration: 16 Sept 202420 Sept 2024
Conference number: 33rd
https://dl.acm.org/doi/proceedings/10.1145/3650212 (Proceedings)
https://conf.researchr.org/home/issta-2024 (Website)

Conference

ConferenceInternational Symposium on Software Testing and Analysis 2024
Abbreviated titleISSTA 2024
Country/TerritoryAustria
CityVienna
Period16/09/2420/09/24
Internet address

Keywords

  • Compiler Testing
  • Empirical Study
  • Solidity Compiler Bug

Cite this