skip to main content
research-article

Smart Contract Code Repair Recommendation based on Reinforcement Learning and Multi-metric Optimization

Published:18 April 2024Publication History
Skip Abstract Section

Abstract

A smart contract is a kind of code deployed on the blockchain that executes automatically once an event triggers a clause in the contract. Since smart contracts involve businesses such as asset transfer, they are more vulnerable to attacks, so it is crucial to ensure the security of smart contracts. Because a smart contract cannot be tampered with once deployed on the blockchain, for smart contract developers, it is necessary to fix vulnerabilities before deployment. Compared with many vulnerability detection tools for smart contracts, the amount of automatic fix approaches for smart contracts is relatively limited. These approaches mainly use defined pattern-based methods or heuristic search algorithms for vulnerability repairs. In this article, we propose RLRep, a reinforcement learning-based approach to provide smart contract repair recommendations for smart contract developers automatically. This approach adopts an agent to provide repair action suggestions based on the vulnerable smart contract without any supervision, which can solve the problem of missing labeled data in machine learning-based repair methods. We evaluate our approach on a dataset containing 853 smart contract programs (programming language: Solidity) with different kinds of vulnerabilities. We split them into training and test sets. The result shows that our approach can provide 54.97% correct repair recommendations for smart contracts.

REFERENCES

  1. [1] Analytica Oxford. 2021. Poly network attack underlines growing DeFi risks. Emerald Expert Briefingsoxan-es (2021).Google ScholarGoogle Scholar
  2. [2] Argall Brenna D., Chernova Sonia, Veloso Manuela, and Browning Brett. 2009. A survey of robot learning from demonstration. Robot. Auton. Syst. 57, 5 (2009), 469483. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. [3] Bader Johannes, Scott Andrew, Pradel Michael, and Chandra Satish. 2019. Getafix: Learning to fix bugs automatically. Proc. ACM Program. Lang. 3, OOPSLA, Article 159 (Oct.2019), 27 pages. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. [4] Bahdanau Dzmitry, Cho Kyunghyun, and Bengio Yoshua. 2015. Neural machine translation by jointly learning to align and translate. In Proceedings of the 3rd International Conference on Learning Representations (ICLR’15), Bengio Yoshua and LeCun Yann (Eds.). DOI: DOI: http://arxiv.org/abs/1409.0473Google ScholarGoogle Scholar
  5. [5] Bhargavan Karthikeyan, Delignat-Lavaud Antoine, Fournet Cédric, Gollamudi Anitha, Gonthier Georges, Kobeissi Nadim, Kulatova Natalia, Rastogi Aseem, Sibut-Pinote Thomas, Swamy Nikhil, and Béguelin Santiago Zanella. 2016. Formal verification of smart contracts: Short paper. In Proceedings of the ACM Workshop on Programming Languages and Analysis for Security (PLAS@CCS’16), Murray Toby C. and Stefan Deian (Eds.). ACM, 9196. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. [6] Britton Tom, Jeng Lisa, Carver Graham, and Cheak Paul. 2013. Reversible Debugging Software “Quantify the Time and Cost Saved Using Reversible Debuggers.” (2013).Google ScholarGoogle Scholar
  7. [7] Chen Jiachi, Xia Xin, Lo David, Grundy John, Luo Xiapu, and Chen Ting. 2022. Defining smart contract defects on ethereum. IEEE Trans. Softw. Eng. 48, 1 (2022), 327345. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. [8] Destefanis Giuseppe, Marchesi Michele, Ortu Marco, Tonelli Roberto, Bracciali Andrea, and Hierons Robert. 2018. Smart contracts vulnerabilities: A call for blockchain software engineering? In Proceedings of the International Workshop on Blockchain Oriented Software Engineering (IWBOSE’18). 1925. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  9. [9] Devidze Rati, Radanovic Goran, Kamalaruban Parameswaran, and Singla Adish. 2021. Explicable reward design for reinforcement learning agents. In Advances in Neural Information Processing Systems, Ranzato M., Beygelzimer A., Dauphin Y., Liang P.S., and Vaughan J. Wortman (Eds.), Vol. 34. Curran Associates, Inc., 2011820131. Retrieved from DOI: DOI: https://proceedings.neurips.cc/paper/2021/file/a7f0d2b95c60161b3f3c82f764b1d1c9-Paper.pdfGoogle ScholarGoogle Scholar
  10. [10] Dewey Daniel. 2014. Reinforcement learning and the reward engineering principle. In Proceedings of the AAAI Spring Symposium Series.Google ScholarGoogle Scholar
  11. [11] Diligence ConsenSys. 2018. Ethereum smart contract security best practices. Retrieved from DOI: DOI: https://consensys.github.io/smart-contract-best-practices/Google ScholarGoogle Scholar
  12. [12] Feist Josselin, Grieco Gustavo, and Groce Alex. 2019. Slither: A static analysis framework for smart contracts. In Proceedings of the IEEE/ACM 2nd International Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB’19). 815. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. [13] Torres Christof Ferreira, Iannillo Antonio Ken, Gervais Arthur, and State Radu. 2021. The eye of Horus: Spotting and analyzing attacks on ethereum smart contracts. In Financial Cryptography and Data Security, Borisov Nikita and Diaz Claudia (Eds.). Springer Berlin, 3352.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. [14] Flick Dr Catherine. 2022. A critical professional ethical analysis of Non-Fungible Tokens (NFTs). J. Respons. Technol. 12 (2022), 100054. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  15. [15] Gao Zhipeng, Jiang Lingxiao, Xia Xin, Lo David, and Grundy John. 2021. Checking smart contracts with structural code embedding. IEEE Trans. Softw. Eng. 47, 12 (2021), 28742891. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  16. [16] Gazzola Luca, Micucci Daniela, and Mariani Leonardo. 2019. Automatic software repair: A survey. IEEE Trans. Softw. Eng. 45, 1 (2019), 3467. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. [17] Ghaleb Asem and Pattabiraman Karthik. 2020. How effective are smart contract analysis tools? Evaluating smart contract static analysis tools using bug injection. In Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA’20). Association for Computing Machinery, New York, NY, 415427. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. [18] Ghanbari Ali, Benton Samuel, and Zhang Lingming. 2019. Practical Program Repair via Bytecode Mutation. Association for Computing Machinery, New York, NY, 1930. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. [19] Goues Claire Le, Pradel Michael, and Roychoudhury Abhik. 2019. Automated program repair. Commun. ACM 62, 12 (Nov.2019), 5665. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. [20] He Jingxuan, Balunović Mislav, Ambroladze Nodar, Tsankov Petar, and Vechev Martin. 2019. Learning to fuzz from symbolic execution with application to smart contracts. In Proceedings of the ACM SIGSAC Conference on Computer and Communications Security (CCS’19). Association for Computing Machinery, New York, NY, 531548. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. [21] Huang Gang, Luo Chaoran, Wu Kaidong, Ma Yun, Zhang Ying, and Liu Xuanzhe. 2019. Software-defined infrastructure for decentralized data lifecycle governance: Principled design and open challenges. In Proceedings of the 39th IEEE International Conference on Distributed Computing Systems (ICDCS’19). IEEE, 16741683.Google ScholarGoogle ScholarCross RefCross Ref
  22. [22] Jia Yue and Harman Mark. 2011. An analysis and survey of the development of mutation testing. IEEE Trans. Softw. Eng. 37, 5 (2011), 649678. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. [23] Jiang Bo, Liu Ye, and Chan W. K.. 2018. ContractFuzzer: Fuzzing smart contracts for vulnerability detection. In Proceedings of the 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE’18). 259269. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. [24] Jiang Jiajun, Ren Luyao, Xiong Yingfei, and Zhang Lingming. 2019. Inferring program transformations from singular examples via big code. In Proceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering (ASE’19). 255266. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. [25] Jiang Jiajun, Xiong Yingfei, Zhang Hongyu, Gao Qing, and Chen Xiangqun. 2018. Shaping program repair space with existing patches and similar code. In Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA’18). Association for Computing Machinery, New York, NY, 298309. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. [26] Jiang Nan, Lutellier Thibaud, and Tan Lin. 2021. CURE: Code-aware neural machine translation for automatic program repair. In Proceedings of the IEEE/ACM 43rd International Conference on Software Engineering (ICSE’21). 11611173. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. [27] Jin Hai, Wang Zeli, Wen Ming, Dai Weiqi, Zhu Yu, and Zou Deqing. 2021. Aroc: An automatic repair framework for on-chain smart contracts. IEEE Trans. Softw. Eng. (2021), 11. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  28. [28] Kalbfleisch J. D. and Lawless J. F.. 1985. The analysis of panel data under a Markov assumption. J. Amer. Statist. Assoc. 80, 392 (1985), 863871. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  29. [29] Khor JingHuey, Masama Mansur Aliyu, Sidorov Michail, Leong WeiChung, and Lim JiaJun. 2020. An improved gas efficient library for securing iot smart contracts against arithmetic vulnerabilities. In Proceedings of the 9th International Conference on Software and Computer Applications (ICSCA’20). Association for Computing Machinery, New York, NY, 326330. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. [30] Kim Ki Byung and Lee Jonghyup. 2020. Automated generation of test cases for smart contract security analyzers. IEEE Access 8 (2020), 209377209392. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  31. [31] Koehn Philipp. 2004. Pharaoh: A beam search decoder for phrase-based statistical machine translation models. In Machine Translation: From Real Users to Research, Frederking Robert E. and Taylor Kathryn B. (Eds.). Springer Berlin, 115124.Google ScholarGoogle ScholarCross RefCross Ref
  32. [32] Krupp Johannes and Rossow Christian. 2018. teEther: Gnawing at ethereum to automatically exploit smart contracts. In Proceedings of the 27th USENIX Security Symposium (USENIX Security’18). USENIX Association, Baltimore, MD, 13171333. Retrieved from DOI: DOI: https://www.usenix.org/conference/usenixsecurity18/presentation/kruppGoogle ScholarGoogle Scholar
  33. [33] Kushwaha Satpal Singh, Joshi Sandeep, Singh Dilbag, Kaur Manjit, and Lee Heung-No. 2022. Systematic review of security vulnerabilities in ethereum blockchain smart contract. IEEE Access 10 (2022), 66056621. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  34. [34] Le Xuan-Bach D., Chu Duc-Hiep, Lo David, Goues Claire Le, and Visser Willem. 2017. S3: Syntax- and semantic-guided repair synthesis via programming by examples. In Proceedings of the 11th Joint Meeting on Foundations of Software Engineering (ESEC/FSE’17). Association for Computing Machinery, New York, NY, 593604. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. [35] Goues Claire Le, Dewey-Vogt Michael, Forrest Stephanie, and Weimer Westley. 2012. A systematic study of automated program repair: Fixing 55 out of 105 bugs for $8 each. In Proceedings of the 34th International Conference on Software Engineering (ICSE’12). 313. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  36. [36] Goues Claire Le, Nguyen ThanhVu, Forrest Stephanie, and Weimer Westley. 2012. GenProg: A generic method for automatic software repair. IEEE Trans. Softw. Eng. 38, 1 (2012), 5472. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. [37] Li Yuzheng, Chen Chuan, Liu Nan, Huang Huawei, Zheng Zibin, and Yan Qiang. 2021. A blockchain-based decentralized federated learning framework with committee consensus. IEEE Netw. 35, 1 (2021), 234241. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. [38] Li Zixin, Wu Haoran, Xu Jiehui, Wang Xingya, Zhang Lingming, and Chen Zhenyu. 2019. MuSC: A tool for mutation testing of ethereum smart contract. In Proceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering (ASE’19). 11981201. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. [39] Lin Bo, Wang Shangwen, Wen Ming, and Mao Xiaoguang. 2022. Context-aware code change embedding for better patch correctness assessment. ACM Trans. Softw. Eng. Methodol. 31, 3, Article 51 (May2022), 29 pages. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. [40] Liu Chao, Liu Han, Cao Zhao, Chen Zhong, Chen Bangdao, and Roscoe Bill. 2018. ReGuard: Finding reentrancy bugs in smart contracts. In Proceedings of the IEEE/ACM 40th International Conference on Software Engineering (ICSE’18). 6568.Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. [41] Liu Kui, Kim Dongsun, Koyuncu Anil, Li Li, Bissyandé Tegawendé F., and Traon Yves Le. 2018. A closer look at real-world patches. In Proceedings of the IEEE International Conference on Software Maintenance and Evolution (ICSME’18). 275286. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  42. [42] Liu Kui, Koyuncu Anil, Kim Dongsun, and Bissyandé Tegawendé F.. 2019. TBar: Revisiting template-based automated program repair. In Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA’19). Association for Computing Machinery, New York, NY, 3142. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. [43] Liu Xuanzhe, Huang Gang, Zhao Qi, Mei Hong, and Blake M. Brian. 2014. iMashup: A mashup-based framework for service composition. Sci. China Inf. Sci. 57, 1 (2014), 120. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  44. [44] Luu Loi, Chu Duc-Hiep, Olickel Hrishi, Saxena Prateek, and Hobor Aquinas. 2016. Making smart contracts smarter. In Proceedings of the ACM SIGSAC Conference on Computer and Communications Security (CCS’16). Association for Computing Machinery, New York, NY, 254269. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. [45] Manning Adrian. 2018. Solidity security: Comprehensive list of known attack vectors and common anti-patterns. Sigma Prime 20, 10 (2018). Retrieved from DOI: DOI: https://github.com/sigp/solidity-security-blogGoogle ScholarGoogle Scholar
  46. [46] Mousavi Seyed Sajad, Schukat Michael, and Howley Enda. 2016. Deep reinforcement learning: An overview. In Proceedings of SAI Intelligent Systems Conference (IntelliSys’16) (Lecture Notes in Networks and Systems), Bi Yaxin, Kapoor Supriya, and Bhatia Rahul (Eds.), Vol. 16. Springer, 426440. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  47. [47] Mueller Bernhard. 2018. Smashing ethereum smart contracts for fun and real profit. HITB SECCONF Amsterd. 9 (2018), 54.Google ScholarGoogle Scholar
  48. [48] Nguyen Tai D., Pham Long H., and Sun Jun. 2021. SGUARD: Towards fixing vulnerable smart contracts automatically. In Proceedings of the IEEE Symposium on Security and Privacy (SP’21). 12151229. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  49. [49] Nguyen Tai D., Pham Long H., Sun Jun, Lin Yun, and Minh Quang Tran. 2020. SFuzz: An efficient adaptive fuzzer for solidity smart contracts. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering (ICSE’20). Association for Computing Machinery, New York, NY, 778788. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. [50] Nie Yuanping, Han Yi, Huang Jiuming, Jiao Bo, and Li Aiping. 2017. Attention-based encoder-decoder model for answer selection in question answering. Front. Inf. Technol. Electron. Eng. 18, 4 (2017), 535544. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  51. [51] Niu Zhaoyang, Zhong Guoqiang, and Yu Hui. 2021. A review on the attention mechanism of deep learning. Neurocomputing 452 (2021), 4862. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  52. [52] Papadakis Mike and Traon Yves Le. 2015. Metallaxis-FL: Mutation-based fault localization. Softw. Test., Verif. Reliab. 25, 5-7 (2015), 605628. DOI: arXiv: https://onlinelibrary.wiley.com/doi/pdf/10.1002/stvr.1509Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. [53] Papadimitriou Christos H. and Tsitsiklis John N.. 1987. The complexity of Markov decision processes. Math. Oper. Res. 12, 3 (1987), 441450. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. [54] Praitheeshan Purathani, Pan Lei, Yu Jiangshan, Liu Joseph K., and Doss Robin. 2019. Security Analysis Methods on Ethereum Smart Contract Vulnerabilities: A Survey. CoRR abs/1908.08605 (2019).Google ScholarGoogle Scholar
  55. [55] Qi Zichao, Long Fan, Achour Sara, and Rinard Martin. 2015. An analysis of patch plausibility and correctness for generate-and-validate patch generation systems. In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA’15). Association for Computing Machinery, New York, NY, 2436. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. [56] Ray Baishakhi, Hellendoorn Vincent, Godhane Saheel, Tu Zhaopeng, Bacchelli Alberto, and Devanbu Premkumar. 2016. On the “Naturalness” of buggy code. In Proceedings of the IEEE/ACM 38th International Conference on Software Engineering (ICSE’16). 428439. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. [57] Rodler Michael, Li Wenting, Karame Ghassan O., and Davi Lucas. 2021. EVMPatch: Timely and automated patching of ethereum smart contracts. In Proceedings of the 30th USENIX Security Symposium (USENIX Security’21). USENIX Association, 12891306. Retrieved from DOI: DOI: https://www.usenix.org/conference/usenixsecurity21/presentation/rodlerGoogle ScholarGoogle Scholar
  58. [58] Schuler David and Zeller Andreas. 2009. Javalanche: Efficient Mutation Testing for Java. In Proceedings of the 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on The Foundations of Software Engineering (ESEC/FSE’09). Association for Computing Machinery, New York, NY, 297298. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. [59] Torres Christof Ferreira, Jonker Hugo, and State Radu. 2021. Elysium: Context-aware Bytecode-Level Patching to Automatically Heal Vulnerable Smart Contracts. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  60. [60] Tsankov Petar, Dan Andrei, Drachsler-Cohen Dana, Gervais Arthur, Bünzli Florian, and Vechev Martin. 2018. Securify: Practical security analysis of smart contracts. In Proceedings of the ACM SIGSAC Conference on Computer and Communications Security (CCS’18). Association for Computing Machinery, New York, NY, 6782. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. [61] Tu Zhaopeng, Su Zhendong, and Devanbu Premkumar. 2014. On the localness of software. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE’14). Association for Computing Machinery, New York, NY, 269280. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. [62] Tufano Michele, Pantiuchina Jevgenija, Watson Cody, Bavota Gabriele, and Poshyvanyk Denys. 2019. On learning meaningful code changes via neural machine translation. In Proceedings of the IEEE/ACM 41st International Conference on Software Engineering (ICSE’19). 2536. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. [63] Vach Werner. 2005. The dependence of Cohen’s Kappa on the prevalence does not matter. J. Clin. Epidem. 58, 7 (2005), 655661. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  64. [64] Vaswani Ashish, Shazeer Noam, Parmar Niki, Uszkoreit Jakob, Jones Llion, Gomez Aidan N., Kaiser Łukasz, and Polosukhin Illia. 2017. Attention is all you need. In Advances in Neural Information Processing Systems, Guyon I., Luxburg U. Von, Bengio S., Wallach H., Fergus R., Vishwanathan S., and Garnett R. (Eds.), Vol. 30. Curran Associates, Inc. Retrieved from DOI: DOI: https://proceedings.neurips.cc/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdfGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  65. [65] Vladimirov M. and Khovratovich D.. 2018. ERC20 API: An Attack Vector on Approve/Transfer from Methods. (2018).Google ScholarGoogle Scholar
  66. [66] Wang Bin, Liu Han, Liu Chao, Yang Zhiqiang, Ren Qian, Zheng Huixuan, and Lei Hong. 2021. BLOCKEYE: Hunting for defi attacks on blockchain. In Proceedings of the IEEE/ACM 43rd International Conference on Software Engineering (ICSE’21). 1720. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. [67] Wang Shangwen, Wen Ming, Lin Bo, Wu Hongjun, Qin Yihao, Zou Deqing, Mao Xiaoguang, and Jin Hai. 2021. Automated patch correctness assessment: How far are we? In Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering (ASE’20). Association for Computing Machinery, New York, NY, 968980. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. [68] Wang Xingya, Wu Haoran, Sun Weisong, and Zhao Yuan. 2019. Towards generating cost-effective test-suite for ethereum smart contract. In Proceedings of the IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER’19). 549553. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  69. [69] Wen Ming, Chen Junjie, Wu Rongxin, Hao Dan, and Cheung Shing-Chi. 2018. Context-aware patch generation for better automated program repair. In Proceedings of the IEEE/ACM 40th International Conference on Software Engineering (ICSE’18). 111. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. [70] Xuan Jifeng, Martinez Matias, DeMarco Favio, Clément Maxime, Marcote Sebastian Lamelas, Durieux Thomas, Berre Daniel Le, and Monperrus Martin. 2017. Nopol: Automatic repair of conditional statement bugs in Java programs. IEEE Trans. Softw. Eng. 43, 1 (2017), 3455. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. [71] Yang Yatao, Zheng Zibin, Niu Xiangdong, Tang Mingdong, Lu Yutong, and Liao Xiangke. 2021. A location-based factorization machine model for web service QoS prediction. IEEE Trans. Serv. Comput. 14, 5 (2021), 12641277. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  72. [72] Yasunaga Michihiro and Liang Percy. 2021. Break-it-fix-it: Unsupervised learning for program repair. In Proceedings of the 38th International Conference on Machine Learning (Proceedings of Machine Learning Research), Meila Marina and Zhang Tong (Eds.), Vol. 139. PMLR, 1194111952. Retrieved from DOI: DOI: https://proceedings.mlr.press/v139/yasunaga21a.htmlGoogle ScholarGoogle Scholar
  73. [73] Ye He, Martinez Matias, Luo Xiapu, Zhang Tao, and Monperrus Martin. 2022. SelfAPR: Self-supervised program repair with test execution diagnostics. In Proceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering (ASE’22). DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. [74] Ye He, Martinez Matias, and Monperrus Martin. 2022. Neural program repair with execution-based backpropagation. In Proceedings of the 44th International Conference on Software Engineering (ICSE’22). Association for Computing Machinery, New York, NY, 15061518. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. [75] Yu Xiao Liang, Al-Bataineh Omar, Lo David, and Roychoudhury Abhik. 2020. Smart contract repair. ACM Trans. Softw. Eng. Methodol. 29, 4, Article 27 (Sep.2020), 32 pages. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. [76] Zhang Jie, Zhang Lingming, Harman Mark, Hao Dan, Jia Yue, and Zhang Lu. 2019. Predictive mutation testing. IEEE Trans. Softw. Eng. 45, 9 (2019), 898918. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  77. [77] Zhang Yuyao, Ma Siqi, Li Juanru, Li Kailai, Nepal Surya, and Gu Dawu. 2020. SMARTSHIELD: Automatic smart contract protection made easy. In Proceedings of the IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER’20). 2334. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  78. [78] Zhao Xiangfu, Chen Zhongyu, Chen Xin, Wang Yanxia, and Tang Changbing. 2017. The Dao attack paradoxes in propositional logic. In Proceedings of the 4th International Conference on Systems and Informatics (ICSAI’17). 17431746. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  79. [79] Zheng Zibin, Li Xiaoli, Tang Mingdong, Xie Fenfang, and Lyu Michael R.. 2022. Web service QoS prediction via collaborative filtering: A survey. IEEE Trans. Serv. Comput. 15, 4 (2022), 24552472. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  80. [80] Zhou Yu, Wang Changzhi, Yan Xin, Chen Taolue, Panichella Sebastiano, and Gall Harald. 2020. Automatic detection and repair recommendation of directive defects in Java API documentation. IEEE Trans. Softw. Eng. 46, 9 (2020), 10041023. DOI:Google ScholarGoogle ScholarCross RefCross Ref
  81. [81] Zhu Qihao, Sun Zeyu, Xiao Yuan-an, Zhang Wenjie, Yuan Kang, Xiong Yingfei, and Zhang Lu. 2021. A Syntax-guided Edit Decoder for Neural Program Repair. Association for Computing Machinery, New York, NY, 341353. DOI:Google ScholarGoogle ScholarDigital LibraryDigital Library
  82. [82] Zou Weiqin, Lo David, Kochhar Pavneet Singh, Le Xuan-Bach Dinh, Xia Xin, Feng Yang, Chen Zhenyu, and Xu Baowen. 2021. Smart contract development: Challenges and opportunities. IEEE Trans. Softw. Eng. 47, 10 (2021), 20842106. DOI:Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Smart Contract Code Repair Recommendation based on Reinforcement Learning and Multi-metric Optimization

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM Transactions on Software Engineering and Methodology
        ACM Transactions on Software Engineering and Methodology  Volume 33, Issue 4
        May 2024
        940 pages
        ISSN:1049-331X
        EISSN:1557-7392
        DOI:10.1145/3613665
        • Editor:
        • Mauro Pezzè
        Issue’s Table of Contents

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 18 April 2024
        • Online AM: 11 December 2023
        • Accepted: 1 December 2023
        • Revised: 18 July 2023
        • Received: 6 March 2023
        Published in tosem Volume 33, Issue 4

        Check for updates

        Qualifiers

        • research-article
      • Article Metrics

        • Downloads (Last 12 months)434
        • Downloads (Last 6 weeks)94

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Full Text

      View this article in Full Text.

      View Full Text