Issues in the Blockchain Ecosystem;
Tags: blockchain, issues, scalability, crypto
Published: 2018-07-29 18:20:53

---
title: Issues in the Blockchain Ecosystem;
published: true
description: 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.
tags: blockchain, issues, scalability, crypto
---
Let me share with you some of the **[Issues in the Blockchain Ecosystem](http://nikolaytech.com/blockchain-ecosystem-issues/)** 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.

#Issues in the Blockchain Ecosystem
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**.

###Read Operation
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.**

###Write Operation
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.

###Validations
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.

###How do we get into Consensus of what to be recorded in the Blockchain?
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.

###The problems of Proof of Work Consensus
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.

##Scalability
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**.

###Transactions Throughput
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](http://nikolaytech.com/blockchain-ecosystem-issues/) 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."**

###Transactions Latency
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.

###Transactions Fees
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.

###Data Storage
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.

##Scalability Solution
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**
* **Raden**
* **Casper**
* **Sharding**


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](http://nikolaytech.com) :)