Maintaining Smart Contracts on Ethereum: Issues, Techniques, and Future Challenges
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. This study focuses on the key novel maintenance issues related to smart contracts on Ethereum, and aims to answer (i) What kinds of issues will smart contract developers encounter for corrective, adaptive, perfective, and preventive maintenance? (ii) What are the current maintenance methods used for smart contracts? and (iii) What should we do in the future to increase the maintainability of 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 practice gap between academia and industry. To address this we performed an online survey of smart contract developers on Github to validate our findings and we received 165 useful responses. Based on the survey feedback and literature review, we present the first empirical study on smart contract maintenance. 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.
READ FULL TEXT