Block propagation and block relay

Back To Home

·       The lack of scalability is known to be the foremost obstacle standing in the way of mass adoption of blockchain technology.

 

·       All existing blockchain projects look for solutions that could improve the performance of their network.

 

·       After the invention of decentralized peer-to-peer network Bitcoin, researchers got interested in what determines the limits of Bitcoin’s scaling.

 

·       Soon the core issue was determined and described in terms of block propagation time or block propagation delay.

 

·       It is an average time that is needed for the new block to reach most nodes in the network.

 

·       In a large-decentralized network like Bitcoin, whenever the new block is generated, it is broadcasted according to the Gossip protocol.

 

·       If some node has got the new valid block, it informs nodes connected to it about its new possession.

 

·       Then the node transfers this block to those nodes which asked it to do that. Before the block reaches each full-node in the network, it passes through 7 intermediary nodes.

 

·       It is important that every honest node verifies the block before relaying it to other peers.

·       It is important that even in the worst-case scenario, the propagation delay should be reasonable so that miners will keep their nodes synchronized most of the time and will always verify proposed blocks.

 

·       Whenever people talk about the scalability of the blockchain, they mention the transaction throughput of the system.

 

·       However, people forgot that improvements in transaction throughput shouldn’t compromise the network’s security or raise data storage requirements for nodes desiring to participate in the network.

 

·       These modifications could decrease the number of independent transaction validators in the network, thereby reducing decentralization.

 

·       Transaction throughput in Bitcoin could be easily calculated using the formula:

where

·       Bsize is the block size in bytes,

 

·       Tsize is the average size of transaction record in the block,

 

·       Btime is the average time between consecutive blocks in the blockchain.


 

Working with Consensus in Bitcoin

 

A blockchain is a decentralized peer-to-peer system with no central authority figure. While this creates a system that is devoid of corruption from a single source, it still creates a major problem.

·       How are any decisions made?

·       How does anything get done?

 

Think of a normal centralized organization.

 

All the decisions are taken by the leader or a board of decision makers. This is not possible in a blockchain because a blockchain has no “leader”. For the blockchain to make decisions, they need to come to a consensus using “consensus mechanisms”.

 

So,

1.    How do these consensus mechanisms work and why did we need them?

2.    What are some of the consensus mechanisms used in cryptocurrencies?

 


 

What are consensus mechanisms?

Consensus decision-making is a group decision-making process in which group members develop, and agree to support a decision in the best interest of the whole.

 

Consensus is a dynamic way of reaching agreement in a group. While voting just settles for a majority rule without any thought for the feelings and well-being of the minority, a consensus on the other hand makes sure that an agreement is reached which could benefit the entire group as a whole.

 

From a more idealistic point-of-view, Consensus can be used by a group of people scattered around the world to create a more equal and fair society.

 

A method by which consensus decision-making is achieved is called “consensus mechanism”.

 


 

Objectives of a consensus mechanism are:

Agreement Seeking:

A consensus mechanism should bring about as much agreement from the group as possible.

Collaborative:

All the participants should aim to work together to achieve a result that puts the best interest of the group first.

Cooperative:

All the participants should not put their own interests first and       work as a team more than individuals.

Egalitarian:

A group trying to achieve consensus should be as egalitarian as possible. What this basically means that each vote has equal weightage. One person’s vote cannot be more important than another’s.

Inclusive:

As many people as possible should be involved in the consensus process. It should not be like normal voting where people do not really feel like voting because they believe that their vote won’t have any weightage in the long run.

Participatory:

The consensus mechanism should be such that everyone should actively participate in the overall process.


 

We have defined what consensus mechanisms are and what they should aim for.

We need to think - which consensus mechanisms should be used for an entity like blockchain.

Before bitcoin, there were loads of iterations of peer-to-peer decentralized currency systems which failed because they were unable to answer the biggest problem when it came to reaching a consensus. This problem is called “Byzantine Generals Problem”.

Imagine that there is a group of Byzantine generals and they want to attack a city. They are facing two very distinct problems:

·         The generals and their armies are extremely far apart so centralized authority is impossible, which makes coordinated attack very tough.

·         The city has a huge army and the only way that they can win is if they all attack at once.

 

This is where we face a problem.

This has clear references to blockchain as well. The chain is a huge network; how can you possibly trust them? If you were sending someone 4 Ether from your wallet, how would you know for sure that someone in the network isn’t going to tamper with it and change 4 to 40 Ether?

List of consensus mechanisms which can solve the Byzantine Generals problem.

1.  Proof Of Work

2.  Proof Of Stake

3.  Delegated Proof Of Stake

4.  Delegated Byzantine Fault Tolerance (DBFT)

Back To Home