How to Save My Gas Fees: Understanding and Detecting Real-world Gas Issues in Solidity Programs

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: He, Mengting, Xia, Shihao, Qin, Boqin, Yoshida, Nobuko, Yu, Tingting, Zhang, Yiying, Song, Linhai
Formato: Preprint
Publicado: 2024
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866911078724665344
author He, Mengting
Xia, Shihao
Qin, Boqin
Yoshida, Nobuko
Yu, Tingting
Zhang, Yiying
Song, Linhai
author_facet He, Mengting
Xia, Shihao
Qin, Boqin
Yoshida, Nobuko
Yu, Tingting
Zhang, Yiying
Song, Linhai
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2403_02661
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle How to Save My Gas Fees: Understanding and Detecting Real-world Gas Issues in Solidity Programs
He, Mengting
Xia, Shihao
Qin, Boqin
Yoshida, Nobuko
Yu, Tingting
Zhang, Yiying
Song, Linhai
Software Engineering
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.
title How to Save My Gas Fees: Understanding and Detecting Real-world Gas Issues in Solidity Programs
topic Software Engineering
url https://arxiv.org/abs/2403.02661