Towards an Analysis of Network Partitioning Prevention for Distributed Ledgers and Blockchains
Michael Kuperberg · 2020
Distributed Ledgers and Blockchains involve decentralized networking technologies such as peer-to-peer networks. Both permissioned and unpermissioned blockchains are designed to tolerate and to overcome the failure of individual nodes, which need to update themselves once they reconnect to the blockchain network. At the same time, it is important to avoid accidental network partitioning, since partitioning can lead to inconsistent "multiple truths" and violate the shared consensus about the global state, which must be maintained across all active and re-emerging nodes. In general, reconciling inconsistent "multiple truths" would require the deletion of information which was persisted to the blockchain (in one of the network partitions), and such removal violates the core blockchain principle of audit-proof and tamper-proof "write once read many" access (WORM). However, current mainstream implementations such as Ethereum do not protect against network partitioning (either by accident or caused by an attack), and there is no research on how the consensus implementations behave in the presence of network partitioning. Given the differences in design and implementation across ledgers and blockchains, a systematic analytic approach must be established before partitioning prevention in specific products is studied. The contribution of this paper is a foundational analysis of enterprise-grade consensus protocols, including design recommendations for partitioning avoidance for Proof-of-Authority in Hyperledger Fabric. We also survey related work and lay out next research steps.