Abstract
We present SmartFix, a new technique for repairing vulnerable smart contracts. There is an urgent need to develop automatic bug-repair techniques for smart contracts, as smart contracts are safety-critical software and manual debugging is burdensome and error-prone. While several repair approaches have been proposed recently, they are unsatisfactory since no existing techniques can achieve high repairability, full automation, and safety guarantee at the same time, posing significant problems for practical use. SmartFix aims to address these shortcomings by using a "generate-and-verify"approach that iteratively enumerates candidate patches while validating their correctness by invoking a safety verifier. However, in this approach, a technical challenge arises as the search space is huge and the verification-based patch validation is expensive. To address this challenge, we present a novel technique for accelerating the generate-and-verify repair procedure using statistical models derived from the verifier's feedback. Experimental results on real-world Ethereum smart contracts show that SmartFix is able to achieve a fix success rate of 94.8% for critical classes of vulnerabilities, far outperforming sGuard, the existing state-of-the-art technique whose success rate is 65.4%.
Original language | English |
---|---|
Title of host publication | ESEC/FSE 2023 - Proceedings of the 31st ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering |
Editors | Satish Chandra, Kelly Blincoe, Paolo Tonella |
Publisher | Association for Computing Machinery, Inc |
Pages | 185-197 |
Number of pages | 13 |
ISBN (Electronic) | 9798400703270 |
DOIs | |
Publication status | Published - 2023 Nov 30 |
Event | 31st ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2023 - San Francisco, United States Duration: 2023 Dec 3 → 2023 Dec 9 |
Publication series
Name | ESEC/FSE 2023 - Proceedings of the 31st ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering |
---|
Conference
Conference | 31st ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2023 |
---|---|
Country/Territory | United States |
City | San Francisco |
Period | 23/12/3 → 23/12/9 |
Bibliographical note
Publisher Copyright:© 2023 ACM.
Keywords
- generate-and-verify repair
- smart contract
- statistical model
ASJC Scopus subject areas
- Artificial Intelligence
- Software