Let me share with you some of the Issues in the Blockchain Ecosystem that we face today.
In fact, that was my very first Talk that I did in public. It was very challenging as you all know Blockchain isn't an easy topic, but at the same time, it was very rewarding and fun.
Everybody in the world is talking about how great the Blockchain is and how it will change the world, but in reality, we are far away from this happening. Beforehand we need to solve many issues that we currently face and it might be a long road.
When we speak about Blockchain we need to know that there are only two operations that we can perform in the Blockchain.
The first operation that we can perform is the Read Operation.
Read operation is very simple to understand as the Blockchain is public and free for everybody.
Currently, this operation is one of the rare parts of the Blockchain that we have no issues with and that is because of the following properties:
- Completely free.
- No limits on how much you want to read from the Blockchain.
- Anyone can do it.
- Anyone can verify that the information is correct and not corrupted.
The second operation is a lot more tricky than the previous one and that is the Write Operation.
We can simply say that most of the Scaling problems in the Blockchain are coming from this operation.
This is because of the fact that trying to change the State of data in the Blockchain is very hard and difficult process.
Many validations are performed when we want to simply change the data state, purely because you need to be sure that the information you are writing is actually the correct one as the Blockchain is immutable.
Here is the first major problem that we face.
We have all experienced going out with friends and having a hard time agreeing on where we should go, while in real life we can just play a game of Rock-Paper-Scissors and the winner chooses, in Blockchain, you can imagine that this is a very hard process. That is why we have Consensus Algorithms with which we decide what will happen with the data and who will create the next block.
The most Popular Consensus Algorithm is Proof of Work.
In Proof of Work, we give a very hard puzzle to everybody to race and complete, while the winner has the right to create the new Block and receive the rewards for doing so.
Their many problems with Proof of Work such are being very expensive, very slow and the fact that there might be many winners of the Puzzle Solving competition which can create problems (Forks).
Ok, now we had some brief introduction to what Blockchain is and its time to start checking out the problems.
When we talk about Blockchain scalability issues we have few metrics with which we can measure the problem. Which are the following:
- Transactions Throughput
- Transactions Latency
- Transactions Fees
- Data Storage And I am going to use these metrics to point out some issues.
This is basically the maximum rate at which the system can write transactions to the Blockchain. So we measure Transactions Throughput by the number of transactions per second (tps) that the network can handle. To calculate the transactions per second of Blockchain isn't that hard and that is because of the fact that every block has a size limit and takes a certain amount of time to be created.
In the case of Bitcoin, the block size is measured by actual size and it is 1 MB per block, which puts Bitcoin at an average of 7 tps.
While in Ethereum it is measured by Gas Limit, as there we have Smart Contracts and their computation time is also concerned when creating a new block. The Gas limit of Ethereum is currently (When the Article was written) 7,996,070 and usually, the network produces from 10 to 15 tps.
Of course we have a lot faster networkers then this two, but in reality, they achieve this by sacrificing something else, while Bitcoin and Ethereum are looking for full solution or solutions that only improve the network and have no bad impacts at all.
This is very slow and the business needs, a bigger throughput. For example, many people compare Blockchain Transactions Throughput to what Visa can handle, but I really don't like that comparison, because of the fact that Visa is able to do that with very hight Fees and we don't want that.
That's why I will just shoot and say that we should be aiming for over 100 000 tps in a case that we really want to use Blockchain to change the world.
This might sound really high, but I like the quote from W. Clement Stone which says "Aim for the moon. If you miss, you may hit a star."
I already mention that each block takes a certain amount of time to be created and this is basically called Block Time. Which is a necessary evil, as it takes time for every Node in the network to hear about a new block and in case of superfast Block Interval, we will be seeing a lot of Forks.
This Transactions Latency is also connected to the Consensus Algorithm as its the algorithm job to keep the Block Interval at the same pace.
In Bitcoin, we have a new block every 9-10 minutes and in Ethereum we have a new block every 10-15 secs.
This interval is very slow as in reality every single transaction is being executed at Block Creation. This is very important to be known as many people miss understand the measurement thing "Transactions per second" and think that transactions are executed each second when they are not.
This latency is even bigger when the possibility of Forks exists, as most business currently wait for 6 blocks confirmations to accept your transaction and in case of Bitcoin that we will put you at 1 Hour wait.
In some cases, transactions fees can be bad and good. The reason behind that is that you decide what fee you are going to give. You are free to choose to give a fee as little as 0.10$ or as much as 50,000$ but giving a higher fee will increase the chance of your transaction being included in the next block.
That's because of the few things we already covered like blocks having a limited size and the Proof of Work being very expensive.
Your fee is basically bribing the Miners (People that solve the Proof of Work puzzle) as they are the one deciding which transaction will get into the block.
The issue is when the network is loaded and there many pending transactions, then the average fees can get pretty nasty and hit over 40$ in Bitcoin which is a lot. While in Ethereum there was a game called Cryptokitties which loaded the network so much that the transactions skyrocket to 4$ when a normal transaction was being processed for 0.10$ previously.
Currently, all of the Blockchain is being stored at every single Node and you can imagine that this is not really good as the information is being duplicated thousands and thousands of time. The information being store everywhere is not the main issue here.
The main issue is the fact that all the Networks do is grow and that's because of their properties of being immutable. That makes it so at some point the Blockchain will be hard to store and will take enormous time to download, which reduces the Decentralization part of the chain by a lot.
For the network to be fully Decentralized everyone on the world should be able to download and connect to the network without any trouble and having chains being over 500 GB makes this harder, which reduces the number of people being able to participate and leads to Centralization.
Data Storage is as well a blocker of many easy solutions to all of the previously mentioned problems. Such solution can be just increasing the Block Size that will lead to bigger transactions throughput and lower fees, but in that way, we will be storing way more data and we will get really fast to 500 GB+, which will be really bad for the health of the network.
When we talk about the solutions we aim to find ones that fix everything without creating bad impact at all and such solutions exist and are being developed constantly. Some of them are:
- Lightning Network
I am going to cover each of these scalability solutions in a later article, so if you are curious about them you can stay tuned by following me on my website http://Nikolaytech.com :)
Soft skills are as critical as technical skills for a software engineer. No one works in isolation. Each person has to deal with teammates, colleagues, managers, etc. Therefore team interpersonal skills are essential too. Soft skills include things like good communication, honesty, teamwork, integrity, organization, empathy, etc.