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 条
  • [41] Quantifying and characterizing clones of self-admitted technical debt in build systems
    Tao Xiao
    Zhili Zeng
    Dong Wang
    Hideaki Hata
    Shane McIntosh
    Kenichi Matsumoto
    Empirical Software Engineering, 2024, 29
  • [42] 23 Shades of Self-Admitted Technical Debt: An Empirical Study on Machine Learning Software
    OBrien, David
    Biswas, Sumon
    Imtiaz, Sayem
    Abdalkareem, Rabe
    Shihab, Emad
    Rajan, Hridesh
    PROCEEDINGS OF THE 30TH ACM JOINT MEETING EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, ESEC/FSE 2022, 2022, : 734 - 746
  • [43] FIXME: synchronize with database! An empirical study of data access self-admitted technical debt
    Muse, Biruk Asmare
    Nagy, Csaba
    Cleve, Anthony
    Khomh, Foutse
    Antoniol, Giuliano
    EMPIRICAL SOFTWARE ENGINEERING, 2022, 27 (06)
  • [44] Correction to: Wait for it: identifying “On-Hold” self-admitted technical debt
    Rungroj Maipradit
    Christoph Treude
    Hideaki Hata
    Kenichi Matsumoto
    Empirical Software Engineering, 2021, 26
  • [45] 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
  • [46] An exploratory study of smart contracts in the Ethereum blockchain platform
    Oliva, Gustavo A.
    Hassan, Ahmed E.
    Jiang, Zhen Ming
    EMPIRICAL SOFTWARE ENGINEERING, 2020, 25 (03) : 1864 - 1904
  • [47] Quantifying and characterizing clones of self-admitted technical debt in build systems
    Xiao, Tao
    Zeng, Zhili
    Wang, Dong
    Hata, Hideaki
    McIntosh, Shane
    Matsumoto, Kenichi
    EMPIRICAL SOFTWARE ENGINEERING, 2024, 29 (02)
  • [48] Negativity in self-admitted technical debt: how sentiment influences prioritization
    Cassee, Nathan
    Ernst, Neil
    Novielli, Nicole
    Serebrenik, Alexander
    EMPIRICAL SOFTWARE ENGINEERING, 2025, 30 (02)
  • [49] SATDAUG - A Balanced and Augmented Dataset for Detecting Self-Admitted Technical Debt
    Sutoyo, Edi
    Capiluppi, Andrea
    2024 IEEE/ACM 21ST INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES, MSR, 2024, : 289 - 293
  • [50] Automating Change-Level Self-Admitted Technical Debt Determination
    Yan, Meng
    Xia, Xin
    Shihab, Emad
    Lo, David
    Yin, Jianwei
    Yang, Xiaohu
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2019, 45 (12) : 1211 - 1229