WELCOME BACK TO FLASH LEARN!
Your weekly dose of blockchain knowledge!
This week we are going to explore CONSENSUS models. Consensus models are a key part of blockchain technology, which ensures that the information stored on the distributed ledger is accurate, valid and honest.
Reaching an agreement between just a few parties who know each other can be already difficult.
Imagine, that in a blockchain environment thousands of members who do not know each other need to find an agreement. There is no central entity to resolve disputes. The nodes need to find a way to reach a common truth.
The Byzantine Generals Problem
One of the main problems we face when deciding with distant parties is the Byzantine Generals Problem. Let’s suppose there is a large Byzantine army which encircled a city, and they are deciding whether or not to attack. The army has several generals, based all around the city far away from each other. An optimal outcome can only be reached if the big majority of generals decide to attack or to retreat. The problem is worsened by treacherous generals, who may decide to vote against everyone or even selectively send different responses to parties.
Putting this into technology, the generals become the computer nodes.
Image credit: Medium
Consensus protocols were designed to:
- Define a way to accept transactions
- Settle the current version of the blockchain as valid and true
- Incentivize members in the decision-making process
- Prevent from one or few parties taking control and derailing the blockchain
These protocols are a set of rules and actions, which a block needs to follow to be accepted. They are designed to be difficult to replicate, hard to perform, or in need of stake, and at the same time easy to prove by other members. Consensus protocols also provide incentives for the nodes validating transactions. This is crucial, as nodes need to have compensation for the computing power necessary to grow the blockchain.
Nodes need to collectively agree on the same value of the data, even if some members are unreliable or unavailable. Let’s take a cryptocurrency example! A malicious node spends some Bitcoin, then tries to update the other nodes with his version of the truth: where the spending is not recorded. Nodes need to decide in this case which version of the blockchain is true- where the spending did or did not happen. There is only one malicious node with the fake version of the blockchain where the spending did not happen. The majority of nodes see that the spending did happen, and that version of the blockchain will be validated and accepted as common truth.
There are different consensus models used in by blockchain applications which vary in method, efficiency, speed, and safety. There is, even more, to come: consensus protocols are constantly developing, as developers aim to find better ways to reach an agreement.
Next week we are going to explore and compare the 3 most common consensus models: Proof of Work, Proof of Stake, and Byzantine Fault Tolerance.
Stay tuned, and join us again next week for Flash Learn!