This post is the seventh post in a series dedicated to demystifying blockchains. The previous post introduced the permissioned blockchains based on Byzantine Fault Tolerant (BFT) protocols. BFT-consensus is faster than lottery-based consensus. This post attempts to explain why lottery-based consensuses are inherently slow.
First, we need to explain the concept of a temporary fork. As the consensus is a lottery, sometimes two nodes win at the same time. The consequence is that at a given time there are two different instances of the blockchain, so-called forks. Depending on the spreading speed of the information of the wining block and the number of validation nodes, the two forks may grow independently. The consensus algorithm decides that the longest fork wins. The shorter fork is abandoned. The transactions of the “abandoned” fork that were not approved in the winning fork are returned to the pool of “not yet approved” transactions. This strategy is the reason why Bitcoin approves a transaction finally only once there are at least five following blocks in the chain.
Temporary forks are inherent to lottery-based consensus protocols. BFT-based consensus protocols do not have temporary forks because their consensus is deterministic. All the faithful nodes take the same decision.
For the sake of completion, there are two other types of fork: hard forks and soft forks. They are due to the evolution of the protocol and are independent of the consensus mechanism. Thus, they are out of the scope of this post. We will come back to these forks in a future post.
Let us use Bitcoin to illustrate the issue. Bitcoin validates a block every ten minutes (average time). The difficulty of the Proof of Work drives this duration. (see Blockchain: Proof of Work). As a block holds a maximum number of transactions, this average time of validation defines the blockchain’s throughput. Currently, Bitcoin’s capacity is about seven transactions per second.
How to increase this throughput? An “obvious” solution seems to decrease the average validation time by reducing the difficulty of the cryptographic puzzle. For instance, should the average duration be halved, then the throughput would double, isn’t it? Unfortunately, it is not so simple. If we reduce the difficulty of the challenge at constant global calculation power, the duration is reduced. Another consequence is that the probability to solve the puzzle rises. The easier the challenge, the higher the likelihood to solve it. Thus, the probability to create a temporary fork increases also. The shorter the average validation time, the more temporary forks. Should the duration decrease drastically, the system would end up with a pandemonium of temporary forks. Unfortunately, abandoned temporary forks inject back many “seemingly-approved” transactions in the pool of “not-yet-approved” transactions. In other words, the global throughput is decreasing, and the predictability of when a transaction may be approved finally is impacted. Of course, Sato understood this crucial aspect of his protocol and chose ten minutes rather than one minute.
Conclusion: Lottery-based consensus protocols need to have “long” approval duration to avoid the proliferation of temporary forks.