Most Blockchains Functions as a Decentralized digital ledger, which is maintained by a distributed network of computers, Such a technology has allowed the creation of economic systems in which trust in third parties does not intervene("trustless"), and in which transnational financial transactions can be executed without the need for intermediaries. Since traditional banking and payment systems are highly dependent on trust.
Consensus Achievement
Cryptocurrencies are being embraced as a viable alternative, because they are supported by blockchain technology and are used within trust-free systems. Participants in a cryptocurrency network, regularly have to agree on the current state of the blockchain, this phenomenon we call Consensus Gaining.
However, reaching consensus in the distributed systems, in a safe and efficient way, is by no means an easy task.
How can a distributed network agree on a decision.
In a network if some nodes are dishonest? This is the Question of the Byzantine Generals Problem,which gave Birth to the concept of Byzantine Fault Tolerance or referred as BFT.
Byzantine Fault Tolerance
The Byzantine Generals Problem was conceived in 1982 as a logical dilemma, that illustrates how a group of Byzantine Generals could have communication problems when trying to agree on their next move. Imagine that each General has an army and each group is deployed in different locations around the target city. These Generals must agree on the attacking or retreating. it doesn't matter if they attack or retreat, as long as they all agree on the common decision. so we may consider the following requirements.
- Each General must decide and vote on whether to attack or retreat.
- After the vote is made, they cannot change it.
- All Generals must agree to the same decision and execute it in a coordinated manner.
- However,they can only communicate through messages. The main challenge of the Byzantine Generals Problem is that the messages can somehow end up delayed,destroyed or lost.
- Even if the message is successfully delivered, one or more generals may choose for whatever reason, to send a fraudulent message to confuse the rest. (leading to total failure).
If we apply the dilemma to blockchains, each General represents a network node, which need to reach consensus on the current state of the system. This means that the majority of participants in a distributed network must agree and perform the same action in order to avoid failure.
what is Byzantine Fault Tolerance ?
Byzantine Fault Tolerance is a property of systems that are capable of resisting the types of failures derived from the Byzantine Generals Problem. In other words, a Byzantine Fault Tolerant system is capable of continuing to operate even when some nodes fail to communicate or when they act maliciously. There are multiple ways to build a Byzantine Fault Tolerant Blockchain, which are related to different types of consensus algorithms.
Types of Consensus Algorithm
we can define a consensus algorithm, as the mechanism through which a blockchain network reaches consensus.
- Proof Of Work
- Proof Of Stake
- Delegated Proof Of Stake