Title of article :
Safety Guards for Ethereum Smart Contracts
Author/Authors :
Amirmohseni ، Morteza Blockchain Laboratory - Faculty of Electrical and Computer Engineering - Tarbiat Modares University , Dorri Nogoorani ، Sadegh Blockchain Laboratory - Faculty of Electrical and Computer Engineering - Tarbiat Modares University
Abstract :
Smart contracts are applications that are deployed on a blockchain and can be executed through transactions. The code and the state of the smart contracts are persisted on the ledger, and their execution is validated by all blockchain nodes. Smart contracts often hold and manage amounts of cryptocurrency. Therefore, their code should be secured against attacks. Smart contracts can be secured either by fixing their source/byte code before deployment (offline) or by inserting some protection code into the runtime (online). On the one hand, the offline methods do not have enough data for effective protection, and on the other hand, the existing online methods are too costly. In this paper, we propose an online method to complement the offline methods with a low overhead. Our protections are categorized into multiple \emph{safety guards}. These guards are implemented in the blockchain nodes (clients), and require some parameters to be set in the constructor to be activated. After deployment, the configured guards protect the contract and revert suspicious transactions. We have implemented our proposed safety guards by small changes to the Hyperledger Besu Ethereum client. Our evaluations show that our implementation is effective in preventing the corresponding attacks, and has low execution overhead.
Keywords :
Blockchain , Runtime Monitoring , Smart Contract , vulnerability
Journal title :
ISeCure - The ISC International Journal of Information Security
Journal title :
ISeCure - The ISC International Journal of Information Security