IOTA reached 15 billions in capitalization 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 that the network is properly secured there needs to be a decentralized consensus system 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 specialized hardware. This in turn creates a barrier to entry. Miners (people who produce PoW) try to lower this barrier by joining mining pools, in which the profit is then shared. You can see in the graph below that the end result is a high degree of centralization 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 be confirmed because they have more approval.
Tangle anatomy
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 of view this can be seen as users mining their own transaction, their reward is their transaction being mined. Since people have usually vested interest in actually transferring value they will gladly contribute to secure the network.
IOTA internals
IOTA is a decentralized complex system. The properties that drive it are emergent and they stem from simple primitive operations.
Transaction steps
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.
Tip selection
In IOTA whitepaper a lot of attention is given 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, our transaction could be ignored because it would indirectly approve the invalid one.
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 has the property that genuine transactions are selected 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. It must be noted 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. And a precedence is set to show that the management of IOTA is not fully transparent. In 2017 the MIT discovered what seemed to be a vulnerability in the code, IOTA responded saying 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 a legitimate transaction will be ignored by 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.
Use cases
IOTA was marketed primarily for applications in the Internet of Things. The number of devices connected to the Internet is growing exponentially and is expected to 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 token are exchanged by small device 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 are interested in buying IOTA I would consider opening an account on Bitfinex which also accepts euros as fiat.
Congratulations @gurghet! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of upvotes
Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP