VISA is capable of thousands of transactions per second (TPS), but anybody can achieve those numbers on centralized systems. Problems start to arise when you want to decentralize your data and have a trustless scheme. A trustless and immutable data architecture is achieved when lots of people all simultaneously have a copy of the data. The bigger the data holder’s pool, the more trustless the system becomes. Scalability is the golden goose in the world of “trustless” and “immutable”.
The Bitcoin protocol could be considered the first implementation of a decentralized, trustless and immutable system that allows for the transfer data representing value. Satoshi Nakamoto designed Bitcoin with a data structure called Blockchain. Despite the fact that discussing Blockchain is outside the scope of this article, we will see briefly how it works, and why it will never scale to VISA levels.
Scalability problems in Blockchain are simple to grasp: you have linear blocks containing a discrete amount of transactions (i.e. people sending Bitcoin), added to a chain every x time. For Bitcoin, the x variable is 10 minutes, and the amount of transactions that fit into each block only allows a current maximum of 5 TPS. This creates an inherent bottleneck.
While other cryptocurrencies apply variations to the Blockchain variables in order to achieve increased TPS, they all have this inherent bottleneck in common, preventing them from approaching VISA’s processing numbers. It is fair to say that Satoshi’s method of achieving a decentralized system for digital money does not seem to be ideal for everyday payments. If you have more than 4 users willing to pay for a coffee with Bitcoin at the same time, you have a problem.
Get rid of the chains
Sergey Ivancheglo, David Sonstebo, and Serguei Popov knew that Blockchain had this inherent limitations when they started thinking about a new way to achieve decentralization and immutability in the year 2015. It was clear to them that the amount of devices needing to transact with each other was going to increase significantly, and also that the world was entering a “green era” in terms of energy consumption and sustainability. Thus, a Blockchain model was not the solution for various reasons.
Their answer came in the form of a DAG based data structure called “Tangle”. Basically, this allowed them to get rid of the blocks and the chain. Users perform their own mining as a requisite to place their own transaction in the Tangle. This CPU based mining consists of a small amount of hashing work to approve two other transactions on the network, called tips. The more the merrier, and if you want your transaction to be sent, you will help other users to send theirs. This is how Amaranth was born. Yes, that was the project name until it ended up being IOTA.
Because IOTA was designed for the Internet of Things, Bitcoin fees were high enough to be prohibitive. The IoT era will usher in hundreds of thousands of small transactions with low or zero value. Fees can’t exist in such a system since they would end up costing more that what is being sent in the first place.
So, while still a proof of concept, the IOTA network grows while the team works on ways to improve confirmation rates. Stress tests show that the Tangle could be the solution for handling vast amounts of transactions in a decentralized manner. But there is still a problem to solve.
Let’s get back to “the more the merrier” expression. IOTA does not have limitations in terms of container size (as in Blockchain blocks), and seems to take advantage of a high transaction volume. One could think that this 1*2 factor, and the lack of limits allows infinite scalability, meaning that the Tangle is ready to handle hundreds of thousands of transactions.
But there’s something else to consider. IOTA allows immutability in the same way that Blockchain does: when new data is added to the ledger, the ledger is checked for consistency by running it against all the ledger copies distributed on nodes around the world. As you can imagine, these nodes have limitations in terms of the amount of data they can process and serve given by the fact that they transmit over limited bandwidth. We will refer to this as the throughput limitation. If you gave copies of your data to 1000 people around the world, it would necessarily take some amount of time to eventually reach consistency across all of those nodes.
Even with a perfect mechanism that guarantees the most efficient confirmation with the 1*2 factor, IOTA as we know it today will never be able to handle all the transactions of the IoT world. This is not a limitation on the data structure, but rather a limitation in the way immutability is achieved. A transaction is valid if the sender has the amount of funds in the transaction, and this verification must be performed in every single full node database to see that everyone has the same value. This is what makes DLTs trustless.
The throughtput issue, delineated above, needs to be solved in order to serve the massive IoT transactional needs. This is where economic clustering enters the picture.
Imagine yourself in an IoT world with small devices transacting data via IOTA. Let’s say your fridge has access to funds and authorization to order some groceries when running low. Does this transaction need to be validated across thousands of nodes around the world to be trustless? Couldn’t we just take a subset of nodes in our area to validate this kind of operations retaining the trustless character?
The answer is yes and that’s what Economic Clustering is all about. You get to have subtangles (clusters) in different areas with their own nodes taking care of that zone’s validations. This way you deal with the throughput limitation by avoiding loading nodes in China with validation of your milk order transaction at a New York grocery store. This allows the user to only need confirmation checks for transactions on local cluster nodes, reducing latency and mitigating systemic transaction volume to prevent bottlenecks. Scalability at last.
You deal with bottlenecks by getting a lot of bottles
According to a recent post by Sergey Ivancheglo, titled “Economic Clustering and IOTA”, the Tangle as we know it today will be one of many clusters. Because it is the first one, it is reffered to as “Cluster 0”, and it will probably always be the biggest. What we know for sure is that this first Cluster will be global and allow for transactions by any user connected to the internet from anywhere in the world.
The whole idea behind EC is that there will be an economic interest in having subtangles based on geographical proximity. Depending on the amount of transactions involved, clusters could be bigger or smaller, as they must attend to the node throughput limitations and to the demand of transactions (you will probably have zones in which a very low amount of transactions won’t justify having a Cluster and will need to use “Cluster 0” for those cases).
Hit the cluster Jack
Let’s quickly take the roadtrip example to illustrate a bit how this EC would be in a real scenario. We have a car with a wallet and are about to travel through a few cities. We want our IOTA balance to be enough to pay for highway tolls, parking and even a traffic ticket (we’re planning for the worst here).
We should transfer some IOTA from our personal wallet to the car’s wallet. This first operation would be processed on “Cluster 0”. As we start moving forward in our trip, we go through different regional clusters. Each time we are about to enter a new cluster, our car’s wallet balance will be resent to the new cluster. We will need our funds to be registered on the proper cluster before being able to spend that balance. Despite the fact it is not yet explained, one would assume that this continuous stream of cluster-to-cluster transactions will be made automatically. Since IOTA has no fees, they can be resent as many times as needed without causing any problems.
EC is key for IOTA to become protocol of Internet of Things. It allows for truly infinite scalabilty via the 1*2 factor, and elegantly deals with bandwidth, the only limitation of an internet based system.
Because of the partition tolerance of IOTA, it’s possible to have subtangles without creating a forks. Other projects based on Blockchain will need some sort of workaround for this (a band-aid, in CFB’s words) to find their way into a solution similar to Economic Clustering. This will likely be the only way in which they will be able to deal with bandwidth limitations and achieve true scalability.