How to Save My Gas Fees: Understanding and Detecting Real-world Gas Issues in Solidity Programs
How to Save My Gas Fees: Understanding and Detecting Real-world Gas Issues in Solidity Programs
The execution of smart contracts on Ethereum, a public blockchain system, incurs a fee called gas fee for its computation and data storage. 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, can lead to significant monetary losses for users. This paper takes the initiative in helping Ethereum users reduce their gas fees in two key steps. First, we conduct an empirical study on gas wastes in open-source Solidity programs and Ethereum transaction traces. Second, to validate our study findings, we develop a static tool called PeCatch to effectively detect gas wastes in Solidity programs, and manually examine the Solidity compiler's code to pinpoint implementation errors causing gas wastes. Overall, we make 11 insights and four suggestions, which can foster future tool development and programmer awareness, and fixing our detected bugs can save $0.76 million in gas fees daily.
Nobuko Yoshida、Shihao Xia、Mengting He、Boqin Qin、Linhai Song、Yiying Zhang、Tingting Yu
计算技术、计算机技术
Nobuko Yoshida,Shihao Xia,Mengting He,Boqin Qin,Linhai Song,Yiying Zhang,Tingting Yu.How to Save My Gas Fees: Understanding and Detecting Real-world Gas Issues in Solidity Programs[EB/OL].(2025-07-27)[2025-08-05].https://arxiv.org/abs/2403.02661.点此复制
评论