Blockchain: Byzantine Fault Tolerant
What’s the Byzantine Generals Problem?
A Byzantine fault, also known as Byzantine General’s Problem, is a condition that can be seen in a computer system with specific distribution. It involves one or more components failing and exhibiting inconsistent behavior. The system sends conflicting information to all parts. The Byzantine generals problem abstractly describes the coping strategies for these failures. Imagine a Fortress that is surrounded by Byzantine generals. They are separated geographically and can only communicate via messages. They can attack or retreat. They can either retreat or attack.
All generals must agree on one decision: retreat or attack. A few generals could attempt a tepid attack, which would only make the situation worse than either a coordinated attack or coordinating retreat. As traitors try to prevent generals reaching an agreement, the complexity of the situation increases.
Two solutions are available to this problem
Each t number. There should be at least 3t+1 generals for every traitor. All messages should be signed and unforgeable. This will allow any number of generals to deal with a large number of traitors.
What is Blockchain?
Only a central authority can log transactions and update balances in a traditional banking/finance system. This prevents double-spending. Double-spending is when you spend the same amount twice. It could be accidental, or malicious. The first application of Blockchain technology is Bitcoin. It’s a peer to peer digital cash system that has a network consisting of trustless nodes (peers), and no central authority. Peer-to-peer systems are not governed by a central authority. This makes it difficult to prevent Double-spending attacks and other malicious attempts at tampering with transactions or balances.
These types of attacks are prevented by Bitcoin using asymmetric cryptography, a consensus algorithm, Proof Of Work (POW), and asymmetric cryptography.
Asymmetric Cryptography
Each transaction is signed cryptographically using a public-private key pair. It is then verified by the nodes. The Merkel tree, Hashing algorithms and the Merkel tree make each block tamperproof so that traitors can’t break in.
Proof-Of-Work
Each node must race to solve a complicated mathematical puzzle of varying difficulty. Only the first node to solve it wins the right to add the block to the blockchain. They also receive a reward and transaction fees. All other nodes have to agree to update their local copies. POW stipulates that any malicious or traitor nodes trying to alter any block, or double spend, would need to solve the complicated mathematical puzzle and create every block in the chain. This will prove to be extremely expensive and practically impossible. To force an invalid block on the blockchain, you must own at least fifty percent of the computing nodes. This is a difficult task considering the number of nodes within the network.
Proof-Of-Stake
POS, another consensus algorithm, is used. A validator is chosen based on how many tokens it has staking. The higher the stakes, the greater the chance of being selected as a validator. A validator is any node that adds a block to the blockchain. It must also commit tokens to the network for a specified period of time, a process called staking. When validators stake their tokens, they act in good faith and receive block rewards for a successful addition. Many popular cryptocurrencies use the POS consensus mechanism. Ethereum 2.0 will use POS.
source https://www.blockchain-council.org/blockchain/blockchain-byzantine-fault-tolerant/