- The IOTA Foundation has revealed the secret of how the IOTA Tangle will scale to an infinite number of transactions per second in the long run.
- The sharding solution is fundamentally different from previous approaches within the crypto industry, such as Ethereum’s.
In a series of blog posts, the developer of the IOTA Foundation, Hans Moog, presented the sharding solution for the IOTA Tangle. Although the technology is still being researched, he said it is mature enough to be openly discussed. As Moog notes, IOTA faces different challenges than Ethereum, for example.
Because of the fee-of-charge structure of the IOTA Tangle, developers do not face the problem of rising transaction costs when the network is heavily loaded, but there is still the problem that each IOTA node can only process a maximum of transactions per second (TPS). In the crypto industry there are currently two approaches to solve this problem.
Either the calculations are performed by a small set of very powerful nodes (e.g. hashgraph, EOS) or each node only has to perform a subset of the total work (sharding). According to Moog, the former is only a short-term solution, while sharding poses security problems, among others, which is why “this traditional way of sharding […] is not an answer to the IOTA vision”:
IOTA’s vision is to provide a DLT platform that can automatically keep pace with the growing adoption by offering higher and higher throughput that scales with the number of nodes in the network. At the same time, the mechanism used needs to be flexible and fast enough to respond to things like supply and demand shocks in network throughput, so that the network can remain operational without the nodes having to decide on fees to process which transactions to charge.
How IOTA sharding works
The way IOTA sharding works is probably very complex for outsiders, but as Moog points out, it is actually very simple. Since the Tangle is not limited by a block size, it can basically process an unlimited number of transactions. When network throughput exceeds the processing capacity of the nodes, transactions are distributed among the nodes so that individual nodes no longer see the entire Tangle.
The process of splitting the Tangle is recursive. Shards that cannot process the load are broken up into additional shards. When the network load decreases, the shards dissolve:
Different network segments will shard at different times depending on the actual throughput and more or less instantly without having to engage in complicated negotiations about when and where to shard. It simply depends on the transactions the nodes can process (agent-centric approach). Once the load drops, the different tangles are in theory (see problems below) able to merge back together, resulting in a system that is able to dynamically react to different network conditions and growing adoption.
However, this simple approach has some problems, the biggest problem being the double spend issue. However, as Moog notes, the reason for this is not the structure of the DAG itself, but the fact that the Tangle is essentially completely uncontrolled and randomly sharded, which is why the IOTA Foundation has developed a solution to make the fragmentation deterministic.
Each node and transaction gets a tag that defines to which shard it belongs. This prevents double output. In addition, a geographical mapping is made, which translates the shards into specific coordinates on earth. The fragmentation by geographical regions around the world further increases the performance of the network:
This way, nodes that are physically close to each other will be part of the same shard. This will not only reduce the network latencies within a shard, but it will also reduce the amount of inter-shard communication to an absolute minimum as most economic activity happens locally
In order to reach a consensus on when and where the shards will be split off, IOTA will use “fluid sharding”. This will give each node the complete freedom to choose in which part of the DAG they want to participate.
Example: A person living between East and West Berlin, could decide to “follow” half of East and half of West Berlin, whereas a person living in the center of West Berlin could decide to only follow West Berlin instead.
The blog post by Hans Moog with a much more detailed explanation of the IOTA Sharding approach can be found under this link.