π€ AI Summary
Gas inefficiency in Ethereum smart contracts imposes unnecessary transaction costs on users. This paper presents the first systematic empirical study of Gas waste in Solidity contracts, identifying root causes and distilling seven key insights and four optimization principles. Based on these findings, we design PeCatchβa static analysis tool featuring eight domain-specific checkers that leverage abstract syntax tree parsing, pattern matching, and empirically derived heuristics to automatically detect Gas-inefficient code patterns. Evaluated on widely used Solidity libraries, PeCatch identifies 383 previously unreported Gas-wasteful instances, achieving an average precision exceeding 91%. Each detected issue is accompanied by a lightweight, one-click remediation patch. Our work establishes the first empirically grounded detection framework and practical guideline for Gas efficiency optimization in Ethereum smart contracts.
π Abstract
The execution of smart contracts on Ethereum, a public blockchain system, incurs a fee called gas fee for its computation and data-store consumption. When programmers develop smart contracts (e.g., in the Solidity programming language), they could unknowingly write code snippets that unnecessarily cause more gas fees. These issues, or what we call gas wastes, could lead to significant monetary waste for users. Yet, there have been no systematic examination of them or effective tools for detecting them. This paper takes the initiative in helping Ethereum users reduce their gas fees in two important steps: we conduct the first empirical study on gas wastes in popular smart contracts written in Solidity by understanding their root causes and fixing strategies; we then develop a static tool, PeCatch, to effectively detect gas wastes with simple fixes in Solidity programs based on our study findings. Overall, we make seven insights and four suggestions from our gas-waste study, which could foster future tool development, language improvement, and programmer awareness, and develop eight gas-waste checkers, which pinpoint 383 previously unknown gas wastes from famous Solidity libraries.