Publication Type
Journal Article
Version
acceptedVersion
Publication Date
9-2020
Abstract
Smart contracts are automated or self-enforcing contracts that can be used to exchange assets without having to place trust in third parties. Many commercial transactions use smart contracts due to their potential benefits in terms of secure peer-to-peer transactions independent of external parties. Experience shows that many commonly used smart contracts are vulnerable to serious malicious attacks, which may enable attackers to steal valuable assets of involving parties. There is, therefore, a need to apply analysis and automated repair techniques to detect and repair bugs in smart contracts before being deployed. In this work, we present the first general-purpose automated smart contract repair approach that is also gas-aware. Our repair method is search-based and searches among mutations of the buggy contract. Our method also considers the gas usage of the candidate patches by leveraging our novel notion of gas dominance relationship. We have made our smart contract repair tool SCRepair available open-source, for investigation by the wider community.
Keywords
Program repair, smart contract
Discipline
Software Engineering
Research Areas
Software and Cyber-Physical Systems
Publication
ACM Transactions on Software Engineering and Methodology
Volume
29
Issue
4
First Page
1
Last Page
32
ISSN
1049-331X
Identifier
10.1145/3402450
Publisher
Association for Computing Machinery (ACM)
Citation
YU, Xiao Liang; AL-BATAINEH, Omar; LO, David; and ROYCHOUDHURY, Abhik.
Smart contract repair. (2020). ACM Transactions on Software Engineering and Methodology. 29, (4), 1-32.
Available at: https://ink.library.smu.edu.sg/sis_research/5623
Copyright Owner and License
Authors
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
https://doi.org/10.1145/3402450