Using Fault Injection to Assess Blockchain Systems in Presence of Faulty Smart Contracts
Authors:
Ákos Hajdu,
Naghmeh Ivaki,
Imre Kocsis,
Attila Klenik,
László Gönczy,
Nuno Laranjeiro,
Henrique Madeira,
András Pataricza
Abstract:
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 c…
▽ More
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.
△ Less
Submitted 22 October, 2020; v1 submitted 20 June, 2020;
originally announced June 2020.
Dependable k-coverage algorithms for sensor networks
Authors:
Simon Gyula,
Miklos Molnar,
Laszlo Gonczy,
Bernard Cousin
Abstract:
Redundant sensing capabilities are often required in sensor network applications due to various reasons, e.g. robustness, fault tolerance, or increased accuracy. At the same time high sensor redundancy offers the possibility of increasing network lifetime by scheduling sleep intervals for some sensors and still providing continuous service with help of the remaining active sensors. In this paper…
▽ More
Redundant sensing capabilities are often required in sensor network applications due to various reasons, e.g. robustness, fault tolerance, or increased accuracy. At the same time high sensor redundancy offers the possibility of increasing network lifetime by scheduling sleep intervals for some sensors and still providing continuous service with help of the remaining active sensors. In this paper centralized and distributed algorithms are proposed to solve the k-coverage sensing problem and maximize network lifetime. When physically possible, the proposed robust Controlled Greedy Sleep Algorithm provides guaranteed service independently of node and communication errors in the network. The performance of the algorithm is illustrated and compared to results of a random solution by simulation examples.
△ Less
Submitted 21 October, 2007;
originally announced October 2007.