A little introduction

Since Come-From-Beyond’s post on Economic Clustering, a lot of people started trying to understand what was this about: it seems to be related to IOTA’s future as it is the way in which scalability could be achieved.

The thing is that the article does not explain a lot and vaguely refers to economic clustering as a CFB’s hypothesis accepting that, by the end of the day, what really matters and can break consensus rules if needed is the economic majority.

So yes, the larger chain will be considered as valid by all the nodes and that is a consensus rule. But, if an attacker finds a way to hack whatever technology you run on and hurt those in posession of the majority of the goods, then an exception to that rule will be made. This is something we saw many times and will probably see again.

As I started seeking for data about Economic Clustering I understood that this was no new stuff. I know EC used to be in IOTA roadmap together with client logic sharding and other stuff, but apparently this goes back to Nxt days.

The following thread taken from Nxt Forum starts with CFB saying “Today I committed code related to Economic Clustering (EC).” and dates from May 2014. So guess what, not a new toy precisely.

Putting the pieces together

Because we do not have a lot of documentation on this, lets try to build the concept from what we do know.

Come-From-Beyond has updated his twitter status to reflect that Qubic provides a solution to Smart Contracts and is now working on Scalability. We know from several posts/comments that IOTA’s future scalability as standard protocol for IoT depends on this not-yet-documented Economic Clustering + Network Bound PoW.

Let’s imagine for a moment an IoT world with zillions of little devices running 24/7 to relay data or issue micropayments. The amount of transactions involved in this scenario is just too big so as to exist on the Tangle as we know it today.

Even if you manage to have little IoT devices doing PoW to confirm two other pending transactions and you snapshot frequently, think on the volume of txs involved by all the IoT devices of the world and remember that, somehow, all that data must be broadcasted to every single node on the Tangle and you got to deal with the throughput limitations.

Clusterize me

Early on this project we learned about CAP Theorem and the ability of IOTA of being partition tolerant, which basically means that you can split the Tangle into subtangles without producing a fork (as you would in blockchain).

As CFB addresses Economic Clustering, he introduces the concept of clusters. The Tangle as we know it now is called Cluster0 but, because IOTA allows to have subtangles -or clusters- you can extend this sort of main cluster by composing other clusters with their own devices and capabilities to deal with their transactions. This clusters may or may not be directly connected to the main cluster but they will need to dialogue with it at some point.

By the end of EC post, CFB says “this is for IoT-based IOTA” and I think this is the key to understand the reason of that piece. IOTA aims to become the standard protocol for IoT and that means to be able to deal with a massive amount of transactions around the globe. Because, as stated above, there is no way for this to happen in the Tangle as we know it today, clusters are needed as subtangles working independently of the main tangle and handling its own transactions (this independent condition is important).

So basically the nodes throughput issue is solved by this Cluster0-unconnected subtangles that are formed by geographical proximity in order to reduce latency and will deal with its own txs not compromissing Cluster0 resources. This makes sense because there is no reason for a microtransaction made by an IoT device in USA to be broadcasted to nodes in China. This is a kind of activity that should be solved in a regional cluster through a mechanism that guarantees descentralization and inmutability without the need of using the “main ledger”.

Cluster0land & the peripheria

Let’s illustrate this with an example. Say we are doing a car travel from Madrid to Berlin and we wanna have our car wallet with enough balance to pay for highway tolls, parking and even an eventual traffic ticket. So, we transfer an amount of tokens from our personal wallet to the car by using the Tangle or Cluster0. This transaction is done in the Tangle and, therefore, gets distributed amongst every single node in it. But it is going to be the last one of this kind for a while, as we will see.

As we drive accross Spain/France we start entering other IOTA Clusters in charge of local devices transactions. We could suppose that the first two are connected to the Tangle but the following ones are interconnected as rings in such a way that the third one is no longer connected to the Tangle but it is connected with the second.

This third cluster turns to be in charge of all the transactions made by the machine that will bill us for the highway toll near Zaragoza. Now we have a little problem: if we did not send our car wallet balance to this new cluster our IOTAs are not useful to pay (actually we won’t even see our wallet balance).

I guess you see the point: as we move forward on the car we will have to “change clusters” by sending the car wallet balance to ourselves from the cluster we were at to the one we are entering. That way, we will be able to use our tokens on the Cluster we are in without necessity of placing any transaction on the Tangle (because this regional clusters will be in charge of all the aspects related to making/confirming transactions).

This is how you can solve scalability in a world that will need to handle thousands of TPS: you divide all this activity amongst clusters created considering proximity that have a way to do at scale what the Tangle does.

We can speculate a lot about how this model solves scalability on an IoT world driven by IOTA but the truth is that more details on Economic Clustering and Network Bound Proof of Work are needed to dive deeper. I know IOTA Foundation is already working on the economic and technical aspects of EC and I trust we will soon have some official information.