Large-Scale Empirical Study of Inline Assembly on 7.6 Million Ethereum Smart Contracts

被引:10
|
作者
Liao, Zhou [1 ]
Song, Shuwei [1 ]
Zhu, Hang [1 ]
Luo, Xiapu [2 ]
He, Zheyuan [1 ]
Jiang, Renkai [1 ]
Chen, Ting [1 ]
Chen, Jiachi [3 ]
Zhang, Tao [4 ]
Zhang, Xiaosong [1 ]
机构
[1] Univ Elect Sci & Technol China, Inst Cyber Secur, Chengdu 611731, Sichuan, Peoples R China
[2] Hong Kong Polytech Univ, Dept Comp, Hong Kong, Peoples R China
[3] Monash Univ, Clayton, Vic 3800, Australia
[4] Macau Univ Sci & Technol, Macau 999078, Peoples R China
基金
中国博士后科学基金;
关键词
Ethereum; smart contract; Solidity; inline assembly; Yul; CHALLENGES;
D O I
10.1109/TSE.2022.3163614
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Being the most popular programming language for developing Ethereum smart contracts, Solidity allows using inline assembly to gain fine-grained control. Although many empirical studies on smart contracts have been conducted, to the best of our knowledge, none has examined inline assembly in smart contracts. To fill the gap, in this paper, we conduct the first large-scale empirical study of inline assembly on more than 7.6 million open-source Ethereum smart contracts from three aspects, namely, source code, bytecode, and transactions after designing new approaches to tackle several technical challenges. Through a thorough quantitative and qualitative analysis of the collected data, we obtain many new observations and insights. Moreover, by conducting a questionnaire survey on using inline assembly in smart contracts, we draw new insights from the valuable feedback. This work sheds light on the development of smart contracts as well as the evolution of Solidity and its compilers.
引用
收藏
页码:777 / 801
页数:25
相关论文
共 50 条
  • [1] Large-Scale Study of Vulnerability Scanners for Ethereum Smart Contracts
    Sendner, Christoph
    Petzi, Lukas
    Stang, Jasper
    Dmitrienko, Alexandra
    45TH IEEE SYMPOSIUM ON SECURITY AND PRIVACY, SP 2024, 2024, : 2273 - 2290
  • [2] A large-scale empirical study of low-level function use in Ethereum smart contracts and automated replacement
    Xi, Rui
    Pattabiraman, Karthik
    SOFTWARE-PRACTICE & EXPERIENCE, 2023, 53 (03): : 631 - 664
  • [3] A Large-Scale Empirical Study on Control Flow Identification of Smart Contracts
    Chen, Ting
    Li, Zihao
    Zhang, Yufei
    Luo, Xiapu
    Wang, Ting
    Hu, Teng
    Xiao, Xiuzhuo
    Wang, Dong
    Huang, Jin
    Zhang, Xiaosong
    2019 13TH ACM/IEEE INTERNATIONAL SYMPOSIUM ON EMPIRICAL SOFTWARE ENGINEERING AND MEASUREMENT (ESEM 2019), 2019, : 106 - 116
  • [4] Self-Admitted Technical Debt in Ethereum Smart Contracts: A Large-Scale Exploratory Study
    Ebrahimi, Amir Mohammad
    Oliva, Gustavo A.
    Hassan, Ahmed E.
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2023, 49 (09) : 4304 - 4323
  • [5] A Study of Inline Assembly in Solidity Smart Contracts
    Chaliasos, Stefanos
    Gervais, Arthur
    Livshits, Benjamin
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2022, 6 (OOPSLA):
  • [6] An Empirical Study Into the Success of Listed Smart Contracts in Ethereum
    Hartel, Pieter
    Homoliak, Ivan
    Reijsbergen, Daniel
    IEEE ACCESS, 2019, 7 : 177539 - 177555
  • [7] ConFuzz: Towards Large Scale Fuzz Testing of Smart Contracts in Ethereum
    Wong, Taiyu
    Zhang, Chao
    Ni, Yuandong
    Luo, Mingsen
    Chen, HeYing
    Yu, Yufei
    Li, Weilin
    Luo, Xiapu
    Wang, Haoyu
    IEEE INFOCOM 2024-IEEE CONFERENCE ON COMPUTER COMMUNICATIONS, 2024, : 1691 - 1700
  • [8] A Massive Analysis of Ethereum Smart Contracts Empirical Study and Code Metrics
    Pinna, Andrea
    Ibba, Simona
    Baralla, Gavina
    Tonelli, Roberto
    Marchesi, Michele
    IEEE ACCESS, 2019, 7 : 78194 - 78213
  • [9] A large-scale exploratory study on the proxy pattern in Ethereum
    Ebrahimi, Amir M.
    Adams, Bram
    Oliva, Gustavo A.
    Hassan, Ahmed E.
    EMPIRICAL SOFTWARE ENGINEERING, 2024, 29 (04)
  • [10] An exploratory study of smart contracts in the Ethereum blockchain platform
    Gustavo A. Oliva
    Ahmed E. Hassan
    Zhen Ming (Jack) Jiang
    Empirical Software Engineering, 2020, 25 : 1864 - 1904