Today, we are very glad to host the second intervention by Stefano Della Valle on IOTA. Iota is a very peculiar project and today we will have some greater insights about IOTA protocol design and technology. Enjoy the reading! HERE, if you missed it, you can find the first part of the series with the premises of IOTA project.
How IOTA work
The problem of the limited scalability in blockchain-based networks is essentially caused by the design of the mining system: since the widest possible consensus is required to validate a block proposed by a miner, it’s necessary to wait a certain time to allow both faster and slower miners to validate the previous block and decide to link it to the next one. This creates a process where all miners operate synchronously.
A synchronous system is intuitive, but it does not allow you to exploit the computing power of miners on different tasks (for example, on different blocks in parallel). The solution proposed by IOTA designers consists of two solutions:
Replace the data structure composed by a sequence of transaction blocks (the blockchain) with a structure composed of a mesh of blocks containing only one transaction. This data structure has been studied since the 1980s under the name Markow Chain or Direct Acyclic Graph, and in the IOTA project, it takes the slang name of “Tangle”.
Postpone the validation of a transaction until after it has been published in the distributed registry.
“The problem of the limited scalability in blockchain-based networks is essentially caused by the design of the mining system” – Stefano Della Valle
The introduction of the Tangle provides considerable advantages:
The mesh structure allows transactions to be entered into the Tangle not only in sequence but also in parallel, allowing a virtually unlimited number of transactions to be entered into the register at the same time.
It allows nodes to operate independently without the need to synchronize their activity.
The possibility to insert a transaction without it being validated in advance allows to enter transactions in the Tangle in real-time: as soon as the node has set it, it’s able to publish it and, if structurally correct (the timestamp is valid, the POW is correct and has the expected size), it’s distributed over the network.
The propagation of transactions in real-time is useful especially if they don’t move value (i.e., IOTA). Each transaction has a field designed to contain all or part of the signature necessary to validate the value shift, but if no value is moved, this field can be used to store arbitrary information on the register.
IOTA oracles may, therefore, produce data transactions with consent and allow other systems to receive them in real-time.
Another peculiarity of the IOTA is its “partial mesh” network. In synchronous networks, each node must be in contact with all the others in as direct a way as possible to avoid the loss of synchronicity. This is called “full mesh”. Since IOTA nodes operate asynchronously, they don’t need to be in contact in full mesh mode. Each node knows only part of the other nodes in the network and propagates to this subgroup the transactions it generates. Each node receives, stores, and re-propagates them to the other “neighbors”. In this one node can be both a public node, as it receives all the transactions generated by the other nodes, and a private node, because it doesn’t necessarily offer services to external clients.
With this greater view about IOTA network, the second part ends. Third part is coming… Don’t hesitate to ask if you have any question.. and have a nice day guys!