IOTA 3.0 – Additional improvements
The coordinator is shut down and the IOTA network is fully decentralized. This topic collects the subsequent improvements to the protocol.
IOTA nodes have an upper limit on transactions per second (TPS) they can process. Through a form of database partitioning (breaking a very large database into smaller ones) into more manageable segments (shards) each shard would contain a unique set of account balances and nodes would then be assigned to individual shards to validate transactions.
The goal is to increase transaction throughput by splitting the Tangle into more manageable segments. The trilemma will continue to exist within individual shards, but as soon as the network throughput exceeds the processing capacities of the nodes in a single shard, another shard will be formed dynamically (fluid sharding). Due to the novel very flexible sharding, theoretically infinite high transaction speeds are possible with IOTA.
It is becoming apparent that On Tangle Voting (a.k.a. Multiverse) will be introduced with the Coordicide, so that the opinions of the nodes will no longer be queried by the Fast Probabilistic Consensus (FPC).
However, FPC will not disappear completely. Together with On Tangle Voting a mechanism will be created that the IF internally calls OTVFPCS (On Tangle Voting with Fast Probabilistic Consensus on a Set). FPCS is used as a mechanism to break metastability, which can be applied in addition to OTV. Generally, in IOTA 2.0, reaching a high approval weight is the finality criterion. If the approval weight is high enough, the message / transaction is finalized. With OTVFPC the initial opinion is created with OTV. If after some time the opinions of the nodes are still split, for whatever reason, FPC is activated to break this metastable state. The finality of value transactions should thus be achieved more quickly.
The basic ideas behind the Multiverse consensus (OTV)
Blockchain tracks a single ledger state of a single long chain. Blocks are valid only if they do not contain double-spends. Block producers act as gatekeepers controlling which messages are added to the ledger state. Nodes track the “consensus outcome.”
In a DAG-based DLT, such as IOTA, there are no block producers and anyone can add anything to the underlying data structure at any time without asking anyone else for permission – even duplicate outputs. Each duplicate issue introduces a different version of the ledger state, which may or may not be compatible with other versions introduced by other transactions. IOTA has developed a data structure – the parallel reality-based ledger state – that allows all these different versions (realities) to be efficiently tracked simultaneously. It tracks the ledger state “before consensus.”
Since duplicate issues can occur in the underlying data structure, IOTA, similar to other DAG-based DLTs, uses a voting mechanism (FPC) where nodes exchange opinions to come to an agreement on which messages should be “accepted” by the Tangle.
Due to its unique ledger state, unlike other DAG-based DLTs, IOTA does not need to vote on non-conflicting messages, but only on the conflicting ones, which significantly reduces message overhead.
Multiverse consensus (OTV) now goes a step further and uses the underlying data structure itself as a voting mechanism. Each message issued by a node already contains the opinion of that node, since it issues certain funds belonging to a certain reality, and it also approves two or more other messages in the DAG that also belong to a certain reality. So the opinion of the issuing Nodes is already known without having to ask them. In theory this allows the IF to get rid of the additional voting mechanism (FPC) that would set the message overhead for voting to 0. Currently this is already being researched and tested.
This is equivalent to the “original vision” of IOTA where the only thing nodes need to do is issue messages and consensus is reached automatically.
To hedge the tangle, nodes with a lot of weight (Mana) in the consensus process can send a single transaction now and then, which is replicated via gossip, rather than having to respond to requests from a potentially unlimited number of other nodes. This is not only much more efficient, but also much safer, since each node has the same view of things and the nodes can never come to a different conclusion.
According to Hans Moog the main advantages of the Multiverse Consensus are:
- Less “moving parts” and much easier to implement
- Orders of magnitude more secure
- Smaller message overhead
- No need for re-attachments and promotions
- Completely partition tolerant and resilient against large scale network splits
- Works in the IoT and mesh net environment
- Independent of the amount of “bad nodes” in the network
- Does not require a specific network topology
You can view Hans coding a version of his Multiverse Consensus. Especially the first 35 minutes are very interesting when he talks about problems of the Tangle in the past and how these will change.
“The consensus algorithm is not going to drastically change. We currently use the approval weight to confirm messages and transactions, and we will still use the same in future iterations. There is this misconception that the subcomponents we are using at the moment, namely FCoB and FPC do not work just because we are exploring alternatives (On Tangle Voting and FPC on a set respectively). In reality, the consensus works just fine even now (with all the limitations of course, due to missing components such as reorg). What we are really doing is just improving upon what we have researched and built to increase performance, minimize the communication overhead as well as simplify the implementation. And this should be seen as a collective result from the collaboration between IF and the community. So the question is not if this or that does not work, rather how to make this or that more efficient and clean. That is an important step of the development as it marks the beginning of a different phase focused on improving the overall quality.” – Angelo Capossele [IF], 20.07.2021, 18:28, Discord #goshimmer-discussion
Last Updated on 17. September 2021