ParityFuzz: Finding Inconsistencies across Solidity Compilers via Fine-Grained Mutation and Differential Analysis
Bowei Su, Mingxi Ye, Yuhong Na, Peilin Zheng, Zibin Zheng

TL;DR
ParityFuzz is a novel framework that detects cross-compiler inconsistencies in Solidity by combining mutation rules, reinforcement learning, and differential analysis, uncovering numerous previously unknown issues.
Contribution
It introduces a new differential testing approach with mutation rule derivation and reinforcement learning to find inconsistencies across Solidity compilers.
Findings
Uncovered 64 previously unknown inconsistencies across six compilers.
Achieved up to 18x higher compilation success rate than existing fuzzers.
Discovered issues that led to fixes and community bounties.
Abstract
The Solidity smart contract ecosystem has rapidly grown, leading to multiple compilers targeting different blockchain platforms or improving compilation efficiency. Although many compilers aim to be compatible with the primary Solidity compiler (Solc), significant inconsistencies in compilation and execution remain. These inconsistencies hinder contract migration, mislead developers during debugging, and may introduce exploitable vulnerabilities, causing financial losses. Existing testing techniques mainly focus on bugs within a single compiler or perform differential testing in the same execution environment. However, they are insufficient for detecting cross-compiler inconsistencies, as they lack mechanisms to explore triggering conditions and compare bytecode across environments. We propose ParityFuzz, a cross-compiler differential testing framework for Solidity. It operates in…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
