IOTA reached 15 billions in capitalisation this Christmas. That’s a lot of money and, to be honest I didn’t expect it at all. I really felt bad for not buying any even though the advertising was there for everyone to see.
Scalability will unlock next-gen blockchains
The faint throughput of current blockchains clearly stifles any ambition to become a new universal payment system. Looking at the graph Bitcoin does not even register when compared to Visa. All considering that Bitcoin is currently at its peak capacity while Visa says it can handle bursts of 56’000 transactions per second.
This immediately implies that there is a backlog of unconfirmed transactions which makes Bitcoin not only slow but also randomly dropping your transactions. And since people want to see their transactions confirmed faster, they are ready to pay more and more commission fees. You can see at this point that the 5 transactions that do go through every second are quite expensive.
To ensure network security we need a decentralised consensus on the status of the blockchain. This is in form of Proof of Work (PoW) calculations. PoW requires real-world electrical power and in many cases expensive specialised hardware. This in turn creates a barrier to entry. Miners (people who produce PoW) try to lower this barrier by joining mining pools, then they share the profit. You can see in the graph below that the end result is a high degree of centralisation in which more than half of the computing power is in the hands of three entities.
IOTA vs Bitcoin
Bitcoin along with most blockchains is a singly linked list that consists of big blocks with many transactions. A new paradigm is emerging, which I like to call nano-blockchains. Blocks are getting smaller to the point of containing a single transaction and the chain is generalizing the list. In IOTA case it’s a Directed Acyclic Graph (DAG), advertised as “Tangle”.
Everyone is a miner
We said that in the Bitcoin network a small group of miners centralize the network, in IOTA instead, the users are all equally responsible for the consensus. A user sending a transaction needs to approve two previous transactions. In this way everyone is a miner because it creates a new singleton block, containing only his transaction. This transaction links to two other blocks which are now deeper in the DAG and thus closer to confirmation because they have more approval.
In the above image we can get a sense of how this confirmation operates. The green boxes on the left represent “confirmed” transactions: that’s because you can find a path to each grey box if you traverse the arrows in the reverse direction. The red boxes on the other hand are not fully confirmed, because there are grey boxes that can’t reach them following the arrows.
This is a bit of a simplification so keep in mind that there could be unconfirmed transactions (grey boxes) that we can’t see right now or ever. The status of young transactions is therefore more subjective. Moreover, the algorithm used to decide which transactions are confirmed is not deterministic in the presence of a large number of unconfirmed transactions.
No transaction fees
A huge difference with other blockchains is that IOTA does not have transactions fees. From a socio-economic point users are mining their own transaction: their reward is their transaction acceptance. Since people have usually vested interest in actually transferring value they will gladly contribute to secure the network.
IOTA is a decentralized complex system. The properties that drive it are emergent and they stem from simple primitive operations.
In order to issue a transaction a node does the following:
- Signing. Sign the transaction with the node’s private key
- Tip Selection. An algorithm (MCMC) selects randomly two unconfirmed transactions
- Proof of Work. A PoW that requires about a minute is generated to prevent spam.
In the IOTA whitepaper they pay a lot of attention to point (2) on how to actually select the two transactions to approve. This is important mainly because we want to avoid approving invalid transactions. An invalid transaction is a form of double-spending attack in which a malicious actor sign and transmits two transactions that spend the same input. If we approve such a transaction by mistake, people will ignore it because it would indirectly approve the invalid one: their transaction in turn would approve an invalid one, and so on.
The Markov Chain Monte Carlo algorithm is used to mitigate this risk. The main idea is to create some particles on random places in the DAG and let them crawl to the tips by a process called random walk. By assigning the right transition probabilities from one node to the next, this algorithm selects genuine transactions more frequently.
Security is always client side
The scalability of this system is mainly given by the fact that the key security features are distributed with high homogeneity. This in turn is possible because the algorithm at play have high locality. It is possible to perform much of the node tasks without having a comprehensive view of the Tangle. This allows for sub-tangles to go offline for a bit and reach an eventual consistency at a later time. On the real network peaks of 30 transactions per second have been observed.
IOTA is centralized!
A thing to remember for now is that the actual main network is centralized. This has been done to protect the initial growth of the network according to the IOTA developers. Every minute or so, a milestone transaction is issued by a coordinator server. Only transactions indirectly approved by these milestones are currently considered confirmed by the reference client. Note that a modified client that doesn’t require milestones should be compatible with the current network, and so, in a sense, the switch off button for the coordinator is ready for everyone to use.
IOTA managment is a bit shady
On the other hand, there is no proof that without this centralization the system will still work. They set a precedent to show that the management of IOTA is not fully transparent. In 2017 the MIT discovered an apparent vulnerability in the code, IOTA said that it was not a bug but a feature. Then proceeded removing the “feature” with the justification that it was not a secret anymore, so there was no use in keeping the backdoor. This gave the impression that IOTA was not collaborative with academic institutions at the very least.
IOTA recognizes the protocol is far from perfect anyways
Last November a simulation by the IOTA foundation on their own system revealed a small problem that has not found solution yet. Every now and then nodes miss a legitimate transaction in the tangle. These orphan transactions grow linearly in time proportionally to the tangle size. A client would have to reissue the transaction to have it approved.
IOTA markets itself primarily for applications in the Internet of Things. The number of devices connected to the Internet is growing exponentially and will reach billions in a few years. Speed of traditional blockchains is insufficient for such a scale. Moreover, IOTA is developing a second layer similar to lighting network to further speed up the network.
Security of a device is ultimately the responsibility of the device manufacturer and the user. The IOTA foundation could never prevent the device from storing private keys in plain text for example.
Having said that, IOTA can work not only as a mean of payment but also as a mesh network for applications of data integrity, supply chain and delivery. Bosch purchased a significant amount of token they plan to use in devices that tracks the temperature of shipped goods.
Bandwidth, computing and data on demand is another obvious application in which small devices exchange tokens for remote computational power. This would allow cellphones to become more powerful without impacting on size or batteries.
Also, any grid of sensors of mesh network could benefit from a DAG blockchain.
How to buy IOTA
If you would like to buy IOTA I would consider opening an account on Bitfinex which also accepts euros as fiat.