Self-Admitted Technical Debt in Ethereum Smart Contracts: A Large-Scale Exploratory Study

被引:3
|
作者
Ebrahimi, Amir Mohammad [1 ]
Oliva, Gustavo A. [1 ]
Hassan, Ahmed E. [1 ]
机构
[1] Queens Univ, Sch Comp, Software Anal & Intelligence Lab SAIL, Kingston, ON K7L 3N6, Canada
基金
加拿大自然科学与工程研究理事会;
关键词
Contracts; Smart contracts; Decentralized applications; Source coding; Costs; Codes; Blockchains; Self-admitted technical debt; SATD; maintenance; smart contracts; ethereum; blockchain; MANAGEMENT;
D O I
10.1109/TSE.2023.3289808
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Programmable blockchain platforms such as Ethereum offer unique benefits to application development, including a decentralized infrastructure, tamper-proof transactions, and auditability. These benefits enable new types of applications that can bring competitive advantage to several business segments. Nonetheless, the pressure of time-to-market combined with relatively immature development technologies (e.g., the Solidity programming language), lack of high-quality training resources, and an unclear roadmap for Ethereum creates a context that favors the introduction of technical debt (e.g., code hacks, workarounds, and suboptimal implementations) into application code. In this paper, we study self-admitted technical debt (SATD) in smart contracts. SATD refers to technical debt that is explicitly acknowledged in the source code by developers via code comments. We extract 726 k real-world contracts from Ethereum and apply both quantitative and qualitative methods in order to (i) determine SATD prevalence, (ii) understand the relationship between code cloning and SATD prevalence, and (iii) uncover the different categories of SATD. Our findings reveal that, while SATD is not a widespread phenomenon (1.5% of real-world contracts contain SATD), SATD does occur in extremely relevant contracts (e.g., multi-million contracts). We also observed a strong connection between SATD prevalence and code cloning activities, leading us to conclude that the former cannot be reliably studied without taking the latter into consideration. Finally, we produced a taxonomy for SATD that consists of 6 major and 26 minor categories. We note that several minor categories are bound to the domain of blockchain and smart contracts, including gas-inefficient implementations and Solidity-induced workarounds. Based on our results, we derive a set of practical recommendations for contract developers and introduce open research questions to guide future research on the topic.
引用
收藏
页码:4304 / 4323
页数:20
相关论文
共 50 条
  • [1] A Large-Scale Empirical Study on Self-Admitted Technical Debt
    Bavota, Gabriele
    Russo, Barbara
    13TH WORKING CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2016), 2016, : 315 - 326
  • [2] An Exploratory Study on Self-Admitted Technical Debt
    Potdar, Aniket
    Shihab, Emad
    2014 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME), 2014, : 91 - 100
  • [3] Versioned Analysis of Software Quality Indicators and Self-admitted Technical Debt in Ethereum Smart Contracts with Ethstractor
    Hassan, Khalid
    Moradi, Saeed
    Chowdhury, Shaiful
    Rouhani, Sara
    2024 IEEE INTERNATIONAL CONFERENCE ON BLOCKCHAIN, BLOCKCHAIN 2024, 2024, : 512 - 519
  • [4] Self-Admitted Technical Debt in R Packages: An Exploratory Study
    Vidoni, Melina
    2021 IEEE/ACM 18TH INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2021), 2021, : 179 - 189
  • [5] An Exploratory Study on the Occurrence of Self-Admitted Technical Debt in Android Apps
    Wilder, Gregory, II
    Miyamoto, Riley
    Watson, Samuel
    Kazman, Rick
    Peruma, Anthony
    2023 ACM/IEEE INTERNATIONAL CONFERENCE ON TECHNICAL DEBT, TECHDEBT, 2023, : 1 - 10
  • [6] Self-Admitted Technical Debt in the Embedded Systems Industry: An Exploratory Case Study
    Li, Yikun
    Soliman, Mohamed
    Avgeriou, Paris
    Somers, Lou
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2023, 49 (04) : 2545 - 2565
  • [7] A survey of self-admitted technical debt
    Sierra, Giancarlo
    Shihab, Emad
    Kamei, Yasutaka
    JOURNAL OF SYSTEMS AND SOFTWARE, 2019, 152 : 70 - 82
  • [8] An empirical study on self-admitted technical debt in Dockerfiles
    Azuma, Hideaki
    Matsumoto, Shinsuke
    Kamei, Yasutaka
    Kusumoto, Shinji
    EMPIRICAL SOFTWARE ENGINEERING, 2022, 27 (02)
  • [9] 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
  • [10] An Empirical Study On the Removal of Self-Admitted Technical Debt
    Maldonado, Everton da S.
    Abdalkareem, Rabe
    Shihab, Emad
    Serebrenik, Alexander
    2017 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME), 2017, : 238 - 248