[论文解读] Maintaining Smart Contracts on Ethereum: Issues, Techniques, and Future Challenges
本文首次对以太坊智能合约在部署后维护过程中面临的挑战进行了实证研究,识别出九类与维护相关的特定问题以及41种纠正性、适应性、完善性和预防性维护方法。通过系统性文献综述(131篇论文)和对165名GitHub开发者的调查,研究揭示了工具支持、不可变性约束以及不断演化的生态系统需求之间的关键差距,为开发人员和未来智能合约维护研究提供了切实可行的见解。
Software development is a very broad activity that captures the entire life cycle of a software, which includes designing, programming, maintenance and so on. In this study, we focus on the maintenance-related concerns of the post-deployment of smart contracts. Smart contracts are self-executed programs that run on a blockchain. They cannot be modified once deployed and hence they bring unique maintenance challenges compared to conventional software. According to the definition of ISO/IEC 14764, there are four kinds of software maintenance, i.e., corrective, adaptive, perfective, and preventive maintenance. This study aims to answer (i) What kinds of issues will smart contract developers encounter for corrective, adaptive, perfective, and preventive maintenance after they are deployed to the Ethereum? (ii) What are the current maintenance-related methods used for smart contracts? To obtain the answers to these research questions, we first conducted a systematic literature review to analyze 131 smart contract related research papers published from 2014 to 2020. Since the Ethereum ecosystem is fast-growing, some results from previous publications might be out-of-date and there may be a gap between academia and industry. To address this, we performed an online survey of smart contract developers on Github to validate our findings and received 165 useful responses. Based on the survey feedback and literature review, we present the first empirical study on smart contract maintenance-related concerns. Our study can help smart contract developers better maintain their smart contract-based projects, and we highlight some key future research directions to improve the Ethereum ecosystem.
研究动机与目标
- 识别并分类以太坊智能合约在部署后涉及的维护相关问题,重点关注纠正性、适应性、完善性和预防性维护。
- 通过全面的文献综述,分析当前智能合约开发中使用的维护技术。
- 通过针对165名GitHub上活跃的智能合约开发者的在线调查,验证并 contextualize(语境化)文献综述的发现。
- 突出关键挑战与未来研究方向,以提升智能合约系统的可持续性与可维护性。
提出的方法
- 对2014年至2020年间发表的131篇与智能合约相关的研究论文进行系统性文献综述,以识别维护问题与技术。
- 对165名活跃的GitHub智能合约开发者开展在线调查,以验证并 contextualize(语境化)文献综述的发现。
- 将维护问题按ISO/IEC 14764的四种类别进行分类:纠正性、适应性、完善性和预防性,外加四类总体流程级挑战。
- 根据应用上下文,将现有维护方法分为三类:离线检查、在线检查及其他技术。
- 通过混合方法三角测量法,结合文献中的定性洞察与从业者的实证数据,确保研究发现的有效性与可靠性。
- 分析学术研究与工业实践之间的差距,特别是在工具支持、安全性以及不断演化的以太坊标准方面。
实验结果
研究问题
- RQ1智能合约开发人员在将合约部署到以太坊后,在纠正性、适应性、完善性和预防性维护中会遇到哪些问题?
- RQ2当前用于智能合约的维护相关方法有哪些?它们在实践中如何应用?
- RQ3学术文献中识别出的挑战与技术,与以太坊生态系统中真实开发者的实践经验是否一致?
主要发现
- 在ISO/IEC 14764的四种类别维护中,识别出九类具体维护问题,包括不可变性约束、气体成本限制以及源代码不可用等问题。
- 发现四类总体流程级挑战,如缺乏标准化开发实践以及部署后维护工具支持不足。
- 分析了41篇文献,识别出13种不同的维护技术,分为三类:离线检查(如静态分析)、在线检查(如运行时监控)及其他方法(如形式化验证)。
- 调查显示,由于第三方合约依赖关系和环境波动性,开发者在适应性维护方面面临显著挑战。
- 在基准数据集中,仅有42%的有缺陷智能合约被全部九种漏洞分析工具检测到,表明工具有效性存在重大差距。
- 在对47,518份经验证合约的大规模分析中,Mythril被发现是九种工具中检测准确率最高的(27%)。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。