Highly Available Blockchain Nodes With N-Version Design
Javier Ron, César Soto-Valero, Long Zhang, Benoit Baudry, Martin Monperrus
TL;DR
The paper addresses the vulnerability of blockchain node availability to unstable execution environments and proposes N-Version blockchain nodes, implemented as N-ETH, an ensemble of diverse Ethereum clients coordinated by a proxy. It employs system-call fault injection to simulate OS-level faults and demonstrates that diverse implementations exhibit different failure modes, enabling the proxy to maintain availability where single versions fail. Quantitative results show a rise from $84.7 ext{ extperthousand}$ full availability for the best single version to $98.5 ext{ extperthousand}$ with $N=4$, and near-zero unavailability under aggressive fault injections, at the cost of increased resource usage. The work provides a blueprint, experimental methodology, and open-source data for practitioners and industry players relying on blockchain node availability, and points to future extensions such as operating system diversity and single-node diversity to further enhance dependability.
Abstract
As all software, blockchain nodes are exposed to faults in their underlying execution stack. Unstable execution environments can disrupt the availability of blockchain nodes interfaces, resulting in downtime for users. This paper introduces the concept of N-version Blockchain nodes. This new type of node relies on simultaneous execution of different implementations of the same blockchain protocol, in the line of Avizienis' N-version programming vision. We design and implement an N-version blockchain node prototype in the context of Ethereum, called N-ETH. We show that N-ETH is able to mitigate the effects of unstable execution environments and significantly enhance availability under environment faults. To simulate unstable execution environments, we perform fault injection at the system-call level. Our results show that existing Ethereum node implementations behave asymmetrically under identical instability scenarios. N-ETH leverages this asymmetric behavior available in the diverse implementations of Ethereum nodes to provide increased availability, even under our most aggressive fault-injection strategies. We are the first to validate the relevance of N-version design in the domain of blockchain infrastructure. From an industrial perspective, our results are of utmost importance for businesses operating blockchain nodes, including Google, ConsenSys, and many other major blockchain companies.
