• 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

  • From page
    37
  • To page
    53
  • 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
  • Record number

    2758431