How Bitcoin Solved The Byzantine Generals’ Problem
Due to the decentralized nature of the blockchain, it becomes difficult to reach conclusions regarding certain activities on the network. For the computation of any data that the blockchain is processing, there needs to be a common conclusion regarding the state of data among all participants. This conclusion, known as consensus, is one of the most important parts of the blockchain architecture. However, due to its inherent distributed nature, participants on the blockchain will be functioning according to what incentivizes them. The decisions they take will also be based on the various kinds of information that they have on hand. To ensure the frictionless functioning of the blockchain in a network where there are multiple discrete actors, consensus needs to be reached consistently. This is done by solving a long standing problem known as the Byzantine Generals Problem. What Is The Byzantine Generals Problem? The Byzantine Generals Problem is a term used in computing to denote a situation wherein certain components of a system may fail if participants don’t agree on a ‘concerted strategy’ to deal with the problem. The problem assumes that some of the participants are corrupt, spreading misinformation or unreliable in some way. The problem can also be described as such. If there exists a city which can only be taken over only by the concerted attack of multiple armies, the armies are required to collaborate and attack the city. However, in a situation where there are an odd number of armies, common consensus must be reached among all the participants in order to successfully mount the attack. However, certain generals of some armies choose to disagree on attacking the city, leading to a critical system failure. The required task is not undertaken due to disagreement by unreliable actors. This failure is known as a Byzantine Fault, and represents a situation in computing where it is unclear whether a component in a network is working properly or not. This is generally extended to blockchains as each node is considered a ‘general’ who contributes to the consensus of a network. Solutions To Achieving Byzantine Fault Tolerance (BFT) There are multiple solutions that were proposed before the implementation of a true Byzantine Fault-tolerant consensus mechanism in the form of Bitcoin’s Proof-of-Work algorithm. One of the first BFT systems is only possible if the number of malicious actors is not more than 1/3rd of the total number of actors on the network. Another BFT system also adds unforgettable message signatures to ensure that messaging is verified. This can be conducted through public-private key encryption. This led to the creation of many BFT algorithms such as the Practical BFT algorithm proposed by Miguel Castro and Barbara Liskov in 1999. The PBFT algorithm spawned multiple other BFT algorithms that improved on it in many ways. Why Is Consensus Required In A Blockchain? BFT is one of the most important parts of ensuring that a blockchain functions smoothly, as the chain will undoubtedly have multiple actors. In the case of Bitcoin, BFT was required in order to reach a common conclusion regarding the order of transactions. For example, if A has a balance of 1 BTC and sends 1 BTC to Z, and then tries to send 1 BTC to X, the second transaction should not be processed. The order has to be decided in a unified way so as to not allow the double-spending of the 1 BTC by A, which would undermine the purpose of the network. Moreover, in the case of the network not being BFT, a malicious party could broadcast transactions that are not legitimate, which takes away from the usability of the system as a payment mechanism. To combat this, the network nodes that process the transaction, known as miners, agree upon a single version of truth of transaction ordering. They do this through a ‘game’ of mathematical chance that is fair and equal to all the players, requiring a set amount of computing ‘work’ to be done in order to decide the order. In the words of Satoshi Nakamoto, the creator of Bitcoin, “They use a proof-of-work chain to solve the problem. The proof-of-work is so difficult, it’s expected to take 10 minutes of them all working at once before one of them finds a solution. Once one of the generals finds a proof-of-work, he broadcasts it to the network, and everyone changes their current proof-of-work computation to include that proof-of-work.” This offers a verifiable method of seeing the work done by the chain, as the proof-of-work is visible to everyone on the network. This process requires a lot of computing power that continues to increase as the number of participants on the network increase. Even as there were other BFT mechanisms, the execution of Bitcoin is one of the more novel methods of ensuring that BFT is maintained. Moreover, it represents one of the first real, sustainable and scalable models of BFT for a real-world purpose.
Due to the decentralized nature of the blockchain, it becomes difficult to reach conclusions regarding certain activities on the network. For the computation of any data that the blockchain is processing, there needs to be a common conclusion regarding the state of data among all participants. This conclusion, known as consensus, is one of the […]
Due to the decentralized nature of the blockchain, it becomes difficult to reach conclusions regarding certain activities on the blockchain. For the computation of any data that the blockchain is processing, there needs to be a common conclusion regarding the state of data among all participants.
["Bitcoin", "Blockchain", "mining"]
["Go", "Bitcoin", "Blockchain", "programming_languages:R", "AI", "programming_languages:Go", "Scala", "Git", "mining", "ViT", "programming_languages:Scala", "R"]
["AI", "R", "Go", "Scala", "Git", "ViT", "programming_languages:R", "programming_languages:Scala", "programming_languages:Go"]
I am an AI enthusiast and love keeping up with the latest events in the space. I love video games and pizza.