Blockchain Consensus and Network Topography.
Why should crypto users in New York care about crypto in Kenya?
This seems to be an area that confuses a lot of people, discussing transactions per second, trade analysis and so forth is never ending, but the base of how transactions and consensus is achieved seems not to be discussed.
So let’s start with that what are the steps for a transaction to go through
- A transaction is done and is broadcasted to all Nodes in the Network.
- A signed candidate block needs to be sent to all nodes.
- If there is a competing candidate block, that block will be sent to all nodes
- If there are multiple competing Blocks they also need to be sent to all nodes.
This is where it gets exiting, let’s say that there are 1000 nodes and that they are spread globally so some are in Kenya and some are in NY.
The data packets of the transaction and Blocks needs to be transmitted to all Nodes inside of the given timeframe of the block.
As all nodes has the right to sign and verify blocks the connections speeds of these nodes are of course of the outmost importance, as a transaction can enter the system at any Node and needs to be distributed from that Node.
The more nodes that are connected means more data needs to be transmitted.
So for fun we can do some math.
Let’s say a signed transaction is 1000 Bytes and we want to build a Blockchain with the normal 51% consensus structure, and achieve 1000 transactions per second, what bandwidth will be required at each Node.
Each Node will need to receive 1000x1000x8 bit per second of transaction data.
That means that each Node will need to be receiving 8 Mega bits of transaction data per second.
Then we need to add the block data, that will be 8 Mega Bits of additional data per second, there is a slight overhead but we can ignore that in this exercise.
So each Node will need to receive 16Mega bits per second to be able to create consensus, that might not sound like a lot, but remember this is per second and every second 24/7, stability of the connection is a huge factor, and some areas have less stability and network capabilities than other areas, and will, therefore, affect the transaction throughput.
And this was just the receive speed, the download, and many times the transmit speed, the upload is lower than the download, and the same amount of data will need to be uploaded per second.
If there are more block candidates then the data rates go up, with the blocks needed bit rate per second, until a consensus is achieved.
For fun, you can calculate on what bitrates are needed to achieve 100k TPS, with a 500 Byte transaction size, with or without conflicting blocks.