From Blockchain Consensus Back to Byzantine Consensus
In this paper, we present the largest experiment of a blockchain system to date.
Consensus is a fundamental problem of distributed computing. While this problem has been known to be unsolvable since 1985, existing protocols were designed these past three decades to solve consensus under various assumptions. Today, with the recent advent of blockchains, various consensus implementations were proposed to make replicas reach an agreement on the order of trans-actions updating what is often referred to as a distributed ledger. Very little work has however been devoted to explore its theoretical ramiﬁcations. As a result existing proposals are sometimes mis-understood and it is often unclear whether the problems arising during their executions are due to implementation bugs or more fundamental design issues. In this paper, we discuss the mainstream blockchain consensus algorithms and how the classic Byzantine consensus can be revisited for the blockchain context. In particular, we discuss proof-of-work consensus and illustrate the differences between the Bitcoin and the Ethereum proof-of-work consensus algorithms.