Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

Maintenance-related concerns for post-deployed Ethereum smart contract development: issues, techniques, and future challenges

  • Published:
Empirical Software Engineering Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7

Similar content being viewed by others

Explore related subjects

Find the latest articles, discoveries, and news in related topics.

Notes

  1. https://developer.github.com/v3/

  2. The questions are multi-choice. Thus the sum of each options can exceed 100%. The same with the other questions.

  3. Ethereum Improvement Proposals (EIPs) describe standards for the Ethereum platform, including core protocol specifications, client APIs, and contract standards.

References

  • Amani S, Bégel M, Bortin M, Staples M (2018) Towards verifying Ethereum smart contract bytecode in Isabelle/HOL

  • AST (2020) Abstract syntax tree. https://en.wikipedia.org/wiki/Abstract_syntax_tree

  • Atzei N, Bartoletti M, Cimoli T (2017) A survey of attacks on Ethereum smart contracts (sok). In: International conference on principles of security and trust. Springer, pp 164–186

  • Ayoade G, Bauman E, Khan L, Hamlen K (2019) Smart contract defense through bytecode rewriting, IEEE

  • Azzopardi S, Ellul J, Pace GJ (2018) Monitoring smart contracts: Contractlarva and open challenges beyond. In: International conference on runtime verification. Springer, pp 113–137

  • Bartoletti M, Pompianu L (2017) An empirical analysis of smart contracts: platforms, applications, and design patterns. In: International conference on financial cryptography and data security. Springer, pp 494–509

  • Bartoletti M, Carta S, Cimoli T, Saia R (2020) Dissecting Ponzi schemes on Ethereum: identification, analysis, and impact. Futur. Gener. Comput. Syst. 102:259–277

    Article  Google Scholar 

  • Beck K, Beedle M, Van Bennekum A, Cockburn A, Cunningham W, Fowler M, Grenning J, Highsmith J, Hunt A, Jeffries R et al (2001) Manifesto for agile software development

  • Bez M, Fornari G, Vardanega T (2019) The scalability challenge of Ethereum: An initial quantitative analysis. In: 2019 IEEE international conference on service-oriented system engineering (SOSE). IEEE, pp 167–176

  • Bhargavan K, Delignat-Lavaud A, Fournet C, Gollamudi A, Gonthier G, Kobeissi N, Kulatova N, Rastogi A, Sibut-Pinote T, Swamy N et al (2016) Formal verification of smart contracts: Short paper. In: Proceedings of the 2016 ACM workshop on programming languages and analysis for security. pp 91–96

  • Bigi G, Bracciali A, Meacci G, Tuosto E (2015) Validation of decentralised smart contracts through game theory and formal methods. In: Programming languages with applications to biology and security. Springer, pp 142–161

  • Bistarelli S, Mazzante G, Micheletti M, Mostarda L, Tiezzi F (2019) Analysis of Ethereum smart contracts and opcodes. In: International conference on advanced information networking and applications. Springer, pp 546–558

  • Blockchain (2019) What is blockchain. https://en.wikipedia.org/wiki/Blockchain

  • Boehm B, Basili VR (2005) Software defect reduction top 10 list. Found Empir Softw Eng 426(37):426–431

    Article  Google Scholar 

  • Boehm BW (1988) A spiral model of software development and enhancement. Computer 21(5):61–72

    Article  Google Scholar 

  • Bosu A, Iqbal A, Shahriyar R, Chakraborty P (2019) Understanding the motivations, challenges and needs of Blockchain software developers: a survey. Empir. Softw. Eng. 24(4):2636–2673

    Article  Google Scholar 

  • Bourque P, Fairley RE et al (2014) Guide to the software engineering body of knowledge (SWEBOK (R)): Version 3.0. IEEE Computer Society Press, Washington

    Google Scholar 

  • Brent L, Jurisevic A, Kong M, Liu E, Gauthier F, Gramoli V, Holz R, Scholz B (2018) Vandal: A scalable security analysis framework for smart contracts. arXiv:1809.03981

  • Bruce J (2014) The mini-blockchain scheme. White paper

  • Chakraborty P, Shahriyar R, Iqbal A, Bosu A (2018) Understanding the software development practices of blockchain projects: a survey. In: Proceedings of the 12th ACM/IEEE international symposium on empirical software engineering and measurement. pp 1–10

  • Chang J, Gao B, Xiao H, Sun J, Cai Y, Yang Z (2019) sCompile: Critical path identification and analysis for smart contracts. In: International conference on formal engineering methods. Springer, pp 286–304

  • Chen J, Xia X, David L, John G (2020a) Why do smart contracts self-destruct? investigating the selfdestruct function on ethereum. arXiv:2005.07908

  • Chen J, Xia X, Lo D, Grundy J, Luo X, Chen T (2020b) Defining smart contract defects on ethereum. IEEE Trans Softw Eng

  • Chen T, Li Z, Zhou H, Chen J, Luo X, Li X, Zhang X (2018a) Towards saving money in using smart contracts. In: 2018 IEEE/ACM 40th International conference on software engineering: new ideas and emerging technologies results (ICSE-NIER). IEEE, pp 81–84

  • Chen T, Zhang Y, Li Z, Luo X, Wang T, Cao R, Xiao X, Zhang X (2019a) TokenScope: automatically detecting inconsistent behaviors of cryptocurrency tokens in ethereum. In: Proceedings of the 2019 ACM SIGSAC conference on computer and communications security. pp 1503–1520

  • Chen T, Feng Y, Li Z, Zhou H, Luo X, Li X, Xiao X, Chen J, Zhang X (2020c) GasChecker: scalable analysis for discovering gas-inefficient smart contracts. IEEE Trans Emerg Topics Comput

  • Chen W, Ma M, Ye Y, Zheng Z, Zhou Y (2018b) IoT service based on jointcloud blockchain: The case study of smart traveling. In: 2018 IEEE symposium on service-oriented system engineering (SOSE), IEEE, pp 216–221

  • Chen W, Zheng Z, Ngai ECH, Zheng P, Zhou Y (2019b) Exploiting blockchain data to detect smart Ponzi schemes on Ethereum. IEEE Access 7:37575–37586

    Article  Google Scholar 

  • Colombo C, Ellul J, Pace GJ (2018) Contracts over smart contracts: Recovering from violations dynamically. In: International symposium on leveraging applications of formal methods. Springer, pp 300–315

  • Conoscenti M, Vetro A, De Martin JC (2016) Blockchain for the internet of things: a systematic literature review. In: 2016 IEEE/ACS 13th International conference of computer systems and applications (AICCSA). IEEE, pp 1–6

  • ConsenSys (2020) Smart contract best practices. https://github.com/ConsenSys/smart-contract-best-practices

  • Costan V, Devadas S (2016) Intel SGX explained. IACR Cryptology ePrint Archive 2016(086):1–118

    Google Scholar 

  • Cryptokitties (2019) https://www.cryptokitties.co/

  • DApp (2019) Decentralized application. https://en.wikipedia.org/wiki/Decentralized_application

  • Delmolino K, Arnett M, Kosba A, Miller A, Shi E (2016) Step by step towards creating a safe smart contract: Lessons and insights from a cryptocurrency lab. In: International conference on financial cryptography and data security. Springer, pp 79–94

  • Di Angelo M, Salzer G (2019) Mayflies, breeders, and busy bees in Ethereum: smart contracts over time. In: Proceedings of the third ACM workshop on blockchains, cryptocurrencies and contracts. pp 1–10

  • DPoS (2019) Delegated proof of stake. https://lisk.io/academy/blockchain-basics/how-does-blockchain-work/delegated-proof-of-stakehttps://lisk.io/academy/blockchain-basics/how-does-blockchain-work/delegated-proof-of-stake

  • Drechsler R et al (2004) Advanced formal verification, vol 122. Springer, Berlin

    Book  Google Scholar 

  • Durieux T, Ferreira JF, Abreu R, Cruz P (2020) Empirical review of automated analysis tools on 47,587 Ethereum smart contracts. In: Proceedings of the ACM/IEEE 42nd International conference on software engineering. pp 530–541

  • Efanov D, Roschin P (2018) The all-pervasiveness of the blockchain technology. Procedia Comput Sci 123:116–121

    Article  Google Scholar 

  • EIP (2020) The ethereum improvement proposal repository. https://github.com/Ethereum/EIPs

  • EIP150 (2020) EIP-150. https://blog.Ethereum.org/2016/10/13/announcement-imminent-hard-fork-eip150-gas-cost-changes/https://blog.Ethereum.org/2016/10/13/announcement-imminent-hard-fork-eip150-gas-cost-changes/

  • ETC (2018) Ethereum classic. https://Ethereumclassic.github.io/

  • Ethereum (2019) Ethereum.org. https://www.Ethereum.org/

  • EtherScan (2018) https://etherscan.io/

  • Ethstates (2020) Ethereum network status. https://ethstats.net/

  • Fabian V, Vitalik B (2018) ERC20. https://github.com/Ethereum/EIPs/blob/master/EIPS/eip-20.md

  • Ferreira Torres C, Baden M, Norvill R, Jonker H (2019) ÆGIS: smart shielding of smart contracts. In: Proceedings of the 2019 ACM SIGSAC conference on computer and communications security. pp 2589–2591

  • Fontana FA, Mäntylä MV, Zanoni M, Marino A (2016) Comparing and experimenting machine learning techniques for code smell detection. Empir. Softw. Eng. 21(3):1143–1191

    Article  Google Scholar 

  • Fowler M, Beck K (1999) Refactoring: improving the design of existing code. Addison-Wesley Professional, Boston

    Google Scholar 

  • Frowis M, Bohme R (2017) In code we trust? Measuring the control flow immutability of all smart contracts deployed on Ethereum. LNCS 10436:357–372

    Google Scholar 

  • Fu Y, Ren M, Ma F, Jiang Y, Shi H, Sun J (2019) Evmfuzz: Differential fuzz testing of Ethereum virtual machine. arXiv:1903.08483

  • Gao Z, Jiang L, Xia X, Lo D, Grundy J (2020) Checking smart contracts with structural code embedding. IEEE Trans Softw Eng

  • GasStation (2020) ETH gas station. https://ethgasstation.info/

  • Giger E, D’Ambros M, Pinzger M, Gall HC (2012) Method-level bug prediction. In: Proceedings of the 2012 ACM-IEEE International symposium on empirical software engineering and measurement, IEEE, pp 171–180

  • Grano G, Di Sorbo A, Mercaldo F, Visaggio CA, Canfora G, Panichella S (2017) Android apps and user feedback: a dataset for software evolution and quality improvement. In: Proceedings of the 2nd ACM SIGSOFT international workshop on app market analytics. pp 8–11

  • Grech N, Kong M, Jurisevic A, Brent L, Scholz B, Smaragdakis Y (2018) Madmax: Surviving out-of-gas conditions in Ethereum smart contracts. Proceedings of the ACM on programming languages 2(OOPSLA):1–27

    Article  Google Scholar 

  • Grech N, Brent L, Scholz B, Smaragdakis Y (2019) Gigahorse: thorough, declarative decompilation of smart contracts, IEEE

  • Harz D, Knottenbelt W (2018) Towards safer smart contracts: A survey of languages and verification methods. arXiv:1809.0980

  • He N, Wu L, Wang H, Guo Y, Jiang X (2019) Characterizing code clones in the Ethereum smart contract ecosystem. arXiv:1905.00272

  • Hegedűs P (2019) Towards analyzing the complexity landscape of solidity based Ethereum smart contracts. Technologies 7(1):6

    Article  MathSciNet  Google Scholar 

  • Hildenbrandt E, Saxena M, Rodrigues N, Zhu X, Daian P, Guth D, Moore B, Park D, Zhang Y, Stefanescu A et al (2018) Kevm: A complete formal semantics of the Ethereum virtual machine, IEEE

  • Huang R, Sun W, Xu Y, Chen H (2019) Towey D, A survey on adaptive random testing. IEEE Trans Softw Eng, Xia X

  • Huang THD (2018) Hunting the Ethereum smart contract: Color-inspired inspection of potential attacks. arXiv:1807.01868

  • Intel (2015) Intel corporation. Intelà software guard extensions evaluation SDK user’s guide for windows* OS. https://software.intel.com/sites/products/sgx-sdk-users-guide-windows

  • ISO/IEC (2006) ISO/IEC/IEEE international standard for software engineering - software life cycle processes - maintenance. ISO/IEC 14764:2006 (E) IEEE Std 14764-2006 Revision of IEEE Std 1219-1998), pp 1–58

  • Jiang B, Liu Y, Chan W (2018) Contractfuzzer: Fuzzing smart contracts for vulnerability detection. In: Proceedings of the 33rd ACM/IEEE international conference on automated software engineering. pp 259–269

  • Kalra S, Goel S, Dhawan M, Sharma S (2018) ZEUS: analyzing safety of smart contracts. In: The network and distributed system security symposium (NDSS). pp 1–12

  • Kiffer L, Levin D, Mislove A (2018) Analyzing ethereum’s contract topology. In: Proceedings of the internet measurement conference, vol 2018, pp 494–499

  • Kim M, Zimmermann T, DeLine R, Begel A (2016) The emerging role of data scientists on software development teams, IEEE

  • Kitchenham B, Charters S (2007) Guidelines for performing systematic literature reviews in software engineering. EBSE Technical Report

  • Kitchenham BA, Pfleeger SL (2008) Personal opinion surveys. In: Guide to advanced empirical software engineering. Springer, pp 63–92

  • Kolluri A, Nikolic I, Sergey I, Hobor A, Saxena P (2019) Exploiting the laws of order in smart contracts. In: Proceedings of the 28th ACM SIGSOFT international symposium on software testing and analysis. pp 363–373

  • Krupp J, Rossow C (2018) Teether: Gnawing at Ethereum to automatically exploit smart contracts. In: 27th USENIX security symposium. pp 1317–1333

  • Li X, Jiang P, Chen T, Luo X, Wen Q (2017), A survey on the security of blockchain systems. Future Gener Comput Syst

  • Li Z, Wu H, Xu J, Wang X, Zhang L, Chen Z (2019) MuSC: A tool for mutation testing of Ethereum smart contract. In: 2019 34th IEEE/ACM International conference on automated software engineering (ASE). IEEE, pp 1198–1201

  • Liu C, Liu H, Cao Z, Chen Z, Chen B, Roscoe B (2018a) Reguard: finding reentrancy bugs in smart contracts. In: 2018 IEEE/ACM 40th international conference on software engineering: companion (ICSE-Companion). IEEE, pp 65–68

  • Liu H, Liu C, Zhao W, Jiang Y, Sun J (2018b) S-gram: towards semantic-aware security auditing for Ethereum smart contracts. In: Proceedings of the 33rd ACM/IEEE international conference on automated software engineering. pp 814–819

  • LLVM (2021) The llvm project. https://llvm.org/

  • Lohr M, Peldszus S (2020) Maintenance of long-living smart contracts. In: CEUR workshop proceedings

  • Luu L, Chu DH, Olickel H, Saxena P, Hobor A (2016) Making smart contracts smarter. In: Proceedings of the 2016 ACM SIGSAC conference on computer and communications security. ACM, pp 254–269

  • Maalej W, Nabil H (2015) Bug report, feature request, or simply praise? on automatically classifying app reviews, IEEE

  • Macrinici D, Cartofeanu C, Gao S (2018) Smart contract applications within blockchain technology: A systematic mapping study. Telematics Inform. 35(8):2337–2354

    Article  Google Scholar 

  • Marino B, Juels A (2016) Setting standards for altering and undoing smart contracts. In: International symposium on rules and rule markup languages for the semantic web. Springer, pp 151–166

  • Marketcap (2020) https://www.ccn.com/marketcap/

  • Mavridou A, Laszka A (2018) Designing secure Ethereum smart contracts: A finite state machine based approach. In: International conference on financial cryptography and data security. Springer, pp 523–540

  • Mohanta BK, Panda SS, Jena D (2018) An overview of smart contract and use cases in blockchain technology. In: 2018 9th international conference on computing, communication and networking technologies (ICCCNT). IEEE, pp 1–4

  • Mossberg M, Manzano F, Hennenfent E, Groce A, Grieco G, Feist J, Brunson T, Dinaburg A (2019) Manticore: A user-friendly symbolic execution framework for binaries and smart contracts. In: 2019 34th IEEE/ACM international conference on automated software engineering (ASE). IEEE, pp 1186–1189

  • Mudge N (2021) Eip2535: diamond standard. https://eips.ethereum.org/EIPS/eip-2535

  • Mushegian N (2020) EIP-140. https://github.com/Ethereum/EIPs/issues/140

  • Nakamoto S (2008) Bitcoin: A peer-to-peer electronic cash system

  • Nguyen TD, Pham LH, Sun J, Lin Y, Minh QT (2020) sFuzz: an efficient adaptive fuzzer for solidity smart contracts. ICSE

  • Nikolić I, Kolluri A, Sergey I, Saxena P, Hobor A (2018) Finding the greedy, prodigal, and suicidal contracts at scale. In: Proceedings of the 34th annual computer security applications conference. pp 653–663

  • Nipkow T, Paulson LC, Wenzel M (2002) Isabelle/HOL: a proof assistant for higher-order logic, vol 2283. Springer Science & Business Media, Berlin

  • Norvill R, Pontiveros BBF, State R, Awan I, Cullen A (2017) Automated labeling of unknown contracts in Ethereum. In: 2017 26th international conference on computer communication and networks (ICCCN). IEEE, pp 1–6

  • Ong AD, Weiss DJ (2000) The impact of anonymity on responses to sensitive questions 1. J. Appl. Soc. Psychol. 30(8):1691–1708

    Article  Google Scholar 

  • OpenZeppelin (2020) OpenZeppelin upgradeable smart contract document. https://docs.openzeppelin.com/learn/upgrading-smart-contracts

  • Openzepplelin (2020) Openzepplelin contracts. https://github.com/OpenZeppelin/openzeppelin-contracts

  • Parizi RM, Dehghantanha A, Choo KKR, Singh A (2018a) Empirical vulnerability analysis of automated smart contracts security testing on blockchains. In: Proceedings of the 28th annual international conference on computer science and software engineering. IBM Corp., pp 103–113

  • Parizi RM, Dehghantanha A, et al. (2018b) Smart contract programming languages on blockchains: An empirical evaluation of usability and security. In: International conference on blockchain. Springer, pp 75–91

  • Park D, Zhang Y, Saxena M, Daian P, Roşu G (2018) A formal verification tool for Ethereum VM bytecode. In: Proceedings of the 2018 26th ACM joint meeting on european software engineering conference and symposium on the foundations of software engineering. pp 912–915

  • Perez D, Livshits B (2019) Smart contract vulnerabilities: Does anyone care? arXiv:1902.06710

  • Pigoski TM (1996) Practical software maintenance: best practices for managing your software investment. Wiley, Hoboken

    Google Scholar 

  • PoS (2019) Proof of stake. https://en.wikipedia.org/wiki/Proof_of_stake

  • Reyna A, Martín C, Chen J, Soler E, Díaz M (2018) On blockchain and its integration with IoT. Challenges and opportunities. Future Gener Comput Syst 88:173–190

    Article  Google Scholar 

  • Rodler M, Li W, Karame GO, Davi L (2018) Sereum: Protecting existing smart contracts against re-entrancy attacks. arXiv:1812.05934

  • Schrans F, Eisenbach S, Drossopoulou S (2018) Writing safe smart contracts in Flint. In: Conference companion of the 2nd international conference on art, science, and engineering of programming. pp 218–219

  • SDHardFork (2020) Spurious dragon hard fork. https://blog.Ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/https://blog.Ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/

  • Segura S, Fraser G, Sanchez AB, Ruiz-Cortés A (2016) A survey on metamorphic testing. IEEE Trans Softw Eng 42(9):805–824

    Article  Google Scholar 

  • Siegel D (2018) Understanding the DAO attack. https://www.coindesk.com/understanding-dao-hack-journalists/https://www.coindesk.com/understanding-dao-hack-journalists/

  • Software C (2019) Mythril: Security analysis tool for evm bytecode. https://github.com/ConsenSys/mythril

  • Solidity (2020) Releases of solidity. https://github.com/Ethereum/solidity/releases

  • Solidity (2020) Solidity document. http://solidity.readthedocs.io

  • Spencer D (2009) Card sorting: Designing usable categories, Rosenfeld Media, New York

  • Swamy N, Hriţcu C, Keller C, Rastogi A, Delignat-Lavaud A, Forest S, Bhargavan K, Fournet C, Strub PY, Kohlweiss M et al (2016) Dependent types and multi-monadic effects in F. In: Proceedings of the 43rd annual ACM SIGPLAN-SIGACT symposium on principles of programming languages. pp 256–270

  • Tai AT, Alkalai L (1998) On-board maintenance for long-life systems. In: Proceedings. 1998 IEEE workshop on application-specific software engineering and technology. ASSET-98 (Cat. No. 98EX183). IEEE, pp 69–74

  • Tann A, Han XJ, Gupta SS, Ong YS (2018) Towards safer smart contracts: A sequence learning approach to detecting vulnerabilities. arXiv:1811.06632. pp 1371–1385

  • Tikhomirov S, Voskresenskaya E, Ivanitskiy I, Takhaviev R, Marchenko E, Alexandrov Y (2018) Smartcheck: Static analysis of Ethereum smart contracts. In: Proceedings of the 1st international workshop on emerging trends in software engineering for blockchain. pp 9–16

  • Torres CF, Schütte J, State R (2018) Osiris: Hunting for integer bugs in Ethereum smart contracts. In: Proceedings of the 34th Annual computer security applications conference. pp 664–676

  • Torres CF, Steichen M et al (2019) The art of the scam: Demystifying honeypots in Ethereum smart contracts. In: 28th {USENIX} security symposium ({USENIX} security, vol 19, pp 1591–1607

  • Tsankov P, Dan A, Drachsler-Cohen D, Gervais A, Buenzli F, Vechev M (2018) Securify: Practical security analysis of smart contracts. In: Proceedings of the 2018 ACM SIGSAC conference on computer and communications security. ACM, pp 67–82

  • Tyagi PK (1989) The effects of appeals, anonymity, and feedback on mail survey response patterns from salespeople. J. Acad. Mark. Sci. 17(3):235–241

    Article  Google Scholar 

  • Udokwu C, Kormiltsyn A, Thangalimodzi K, Norta A (2018) The state of the art for blockchain-enabled smart-contract applications in the organization. In: 2018 Ivannikov Ispras Open Conference (ISPRAS). IEEE, pp 137–144

  • Velner Y, Teutsch J, Luu L (2017) Smart contracts make Bitcoin mining pools vulnerable. In: International conference on financial cryptography and data security. Springer, pp 298–316

  • Vukolić M (2017) Rethinking permissioned blockchains. In: Proceedings of the ACM workshop on blockchain, cryptocurrencies and contracts. pp 3–7

  • Vyper (2020) Vyper document. https://vyper.readthedocs.io

  • Wan Z, Xia X, Hassan AE, Lo D, Yin J, Yang X (2018) Perceptions, expectations, and challenges in defect prediction. IEEE Trans Softw Eng

  • Wan Z, Xia X, Lo D, Murphy GC (2019) How does machine learning change software development practices? IEEE Trans Softw Eng

  • Wang H, Li Y, Lin SW, Ma L, Liu Y (2019a) Vultron: catching vulnerable smart contracts once and for all. In: 2019 IEEE/ACM 41st International conference on software engineering: new ideas and emerging results (ICSE-NIER). IEEE, pp 1–4

  • Wang X, He J, Xie Z, Zhao G, Cheung SC (2019b) ContractGuard: Defend ethereum smart contracts with embedded intrusion detection. IEEE Trans Serv Comput

  • Wang Z, Dai W, Choo KKR, Jin H, Zou D (2020) FSFC: An input filter-based secure framework for smart contract. J Netw Comput Appl :102530

  • Weili C, Zibin Z, Jiahui C, Edith N, Peilin Z, Yuren Z (2018) Detecting ponzi schemes on ethereum: towards healthier blockchain technology. In: Proceedings of the 2018 world wide web conference on world wide web, international world wide web conferences steering committee, pp 1409–1418

  • Wood G (2014) Ethereum: A secure decentralised generalised transaction ledger. Project Yellow Paper

  • Yan M, Xia X, Shihab E, Lo D, Yin J, Yang X (2018) Automating change-level self-admitted technical debt determination. IEEE Trans. Softw. Eng. 45(12):1211–1229

    Article  Google Scholar 

  • Zhang F, Cecchetti E, Croman K, Juels A, Shi E (2016) Town crier: An authenticated data feed for smart contracts. In: Proceedings of the 2016 aCM sIGSAC conference on computer and communications security. pp 270–282

  • Zhang T, Chen J, Zhan X, Luo X, Lo D, Jiang H (2019) Where2Change: Change request localization for app reviews. IEEE Trans Softw Eng

  • Zheng Z, Xie S, Dai HN, Chen X, Wang H (2018) Blockchain challenges and opportunities: A survey. Int J Web Grid Servi 14(4):352–375

    Article  Google Scholar 

  • Zheng Z, Xie S, Dai HN, Chen W, Chen X, Weng J, Imran M (2020) An overview on smart contracts: Challenges, advances and platforms. Futur. Gener. Comput. Syst. 105:475–491

    Article  Google Scholar 

  • Zhou E, Hua S, Pi B, Sun J, Nomura Y, Yamashita K, Kurihara H (2018) Security assurance for smart contract, IEEE

  • Zou W, Lo D, Kochhar PS, Le XBD, Xia X, Feng Y, Chen Z, Xu B (2019) Smart contract development: Challenges and opportunities. IEEE Trans Softw Eng

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Xin Xia.

Additional information

Communicated by: Daniel Méndez

Publisher’s note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Chen, J., Xia, X., Lo, D. et al. Maintenance-related concerns for post-deployed Ethereum smart contract development: issues, techniques, and future challenges. Empir Software Eng 26, 117 (2021). https://doi.org/10.1007/s10664-021-10018-0

Download citation

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s10664-021-10018-0

Keywords