Using Fault Injection to Assess Blockchain Systems in Presence of Faulty Smart Contracts

06/20/2020
by   Ákos Hajdu, et al.
0

Blockchain has become particularly popular due to its promise to support business-critical services in very different domains (e.g., retail, supply chains, healthcare). Blockchain systems rely on complex middleware, like Ethereum or Hyperledger Fabric, that allow running smart contracts, which specify business logic in cooperative applications. The presence of software defects or faults in these contracts has notably been the cause of failures, including severe security problems. In this paper, we use a software implemented fault injection (SWIFI) technique to assess the behavior of permissioned blockchain systems in the presence of faulty smart contracts. We emulate the occurrence of general software faults (e.g., missing variable initialization) and also blockchain-specific software faults (e.g., missing require statement on transaction sender) in smart contracts code to observe the impact on the overall system dependability (i.e., reliability and integrity). We also study the effectiveness of formal verification (i.e., done by solc-verify) and runtime protections (e.g., using the assert statement) mechanisms in detection of injected faults. Results indicate that formal verification as well as additional runtime protections have to complement built-in platform checks to guarantee the proper dependability of blockchain systems and applications. The work presented in this paper allows smart contract developers to become aware of possible faults in smart contracts and to understand the impact of their presence. It also provides valuable information for middleware developers to improve the behavior (e.g., overall fault tolerance) of their systems.

READ FULL TEXT

page 14

page 15

page 17

page 18

page 19

research
04/11/2023

Analyzing the Impact of Elusive Faults on Blockchain Reliability

Blockchain recently became very popular due to its use in cryptocurrenci...
research
12/10/2019

Testing Smart Contracts Gets Smarter

Smart contracts are immutable, verifiable, and autonomous pieces of code...
research
05/16/2018

Verifying Programs Under Custom Application-Specific Execution Models

Researchers have recently designed a number of application-specific faul...
research
08/09/2020

Security checklists for Ethereum smart contract development: patterns and best practices

In recent years Smart Contracts and DApps are becoming increasingly impo...
research
05/05/2018

Service Discovery for Hyperledger Fabric

Hyperledger Fabric (HLF) is a modular and extensible permissioned blockc...
research
03/25/2023

Highly Available Blockchain Nodes With N-Version Design

As all software, blockchain nodes are exposed to faults in their underly...
research
07/28/2022

Data Integrity Verification in Network Slicing using Oracles and Smart Contracts

The fifth-generation (5G) wireless networks are expected to provide vari...

Please sign up or login with your details

Forgot password? Click here to reset