What is IOTA?
Last updated
Last updated
IOTA is a distributed ledger technology that allows devices in an IOTA network to transfer immutable data and value (IOTA tokens) among each. The purpose of IOTA is to serve as the backbone of the Internet of Things.
IOTA is one of the first crypto projects that took the idea of a distributed ledger to a whole new level. One could say that it is a next generation blockchain, but without blocks and without a chain. It is the next step in the evolution of the idea of distributed ledger technologies.
In the previous chapter we explored the characteristics of distributed ledgers, such as being immutable, trust-less, pseudonymous, and cryptographically secure, and having no middlemen, amongst others. We have also stated that these properties came with a cost - scalability. We can imagine a blockchain as a series of blocks linked together. These blocks get added at the end of the series periodically and always at a constant time. Each block can only hold a certain amount of transactions. The more transactions there are, the more of them try to fit into the next block. This is where the problem lies. The more demand, the higher the fee to fit a transaction into the next block. We have seen this happen multiple times throughout history. For example, in December 2017 we saw Bitcoin fees go as high as 50$ per transaction. Such a model cannot scale and is not sustainable.
IOTA came into existence with this problem in mind. It solves the scalability problem by default. Instead of a blockchain, it uses its own architecture called a Directed-Acyclic Graph (DAG) which they named the Tangle.
On the above image we can see what the Tangle looks like. As the name itself suggests, it is an acyclic graph, heading in one direction. The nodes on the graph (squares) are transactions and the edges (paths) between the transactions are references. So we have a graph composed of transactions and their references. On the left side of the graph are the older transactions while on the right side of the graph are the newer transactions. As time goes on, more and more transactions are added to the end of the graph. Transactions can be in one of the three different states: confirmed, pending or tip.
Confirmed (green): Transactions are deemed confirmed when they are directly or indirectly referenced by all the tips (gray).
Pending/unconfirmed (red): These are transactions waiting to be confirmed.
Tip (gray): Tips are transactions that were never verified by any other transactions.
This is just a very short summary of the tangle. For a more in-depth look into the details of how the tangle works and the relevant research being carried out, we can visit the IOTA research website.
On the above image we can see the difference between a blockchain and the Tangle. Each square in the upper image (blockchain) represents a block that contains a certain amount of transactions. As we can see, no matter how big the activity is, the blocks are always coming out at the same periodic intervals. If we look at the Tangle on the other hand, the more activity there is, the more validation is taking place, the wider the entire graph, and the higher the output.
The Tangle works in such way, that each new transaction needs to confirm two other transactions. So if we, as users want to issue a transaction, we need first to do some minimal computational work to approve two older transactions. This "work" takes about a second or even less, depending on the hardware, and can be considered negligible. And that is basically how Tangle works. On first sight, it might not seem much but this actually gives the Tangle some outstanding properties. First and foremost that means there are no miners anymore. Because there is no mining, nor any heavy computations required, it makes the process very green and environmentally friendly. Furthermore, if there are no miners, then there are no fees. That being the case, each and every transaction within the IOTA network is completely free, in contrast to the blockchain networks, where there will always be fees no matter what. The mechanism of confirming two older transactions before emitting a new transaction creates a scenario whereby the bigger the influx of new transactions, the faster older transactions are approved. In other words - the more users, the faster, more reliable and secure the Tangle grows. And this is how IOTA solves the scalability problem.
On the above graph, we can see that blockchain network capacity diminishes greatly in correlation with the increase of user activity, while Tangle capacity increases the more network activity there is. Theoretically the Tangle can scale infinitely and is limited only by the physics of the network bandwidth. To achieve this infinite scalability IOTA relies on the concept of clustering the network. It is unnecessary and undesirable for each node and each network participant to at all times be connected with the whole network. Nodes, groups of nodes and other network participants can come "online" in the network when necessary, after participating in a "side Tangle".
Besides absence of miners, having zero fees, infinite scalability and near instant transactions, IOTA possesses a few more properties that make it very unique. One of them is sending only data transactions. It is the only project in the entire crypto space that allows for the sending of data, without any token value. Let's stop for a moment and think about the concept of the Internet. Internet revolutionized everything that we know today, but it is missing one very important feature and that is a built-in native payment system. To substitute this missing feature we, today, have middlemen like PayPal, Visa, and other financial services that take a big cut for each transaction. IOTA is as close as it gets to being the next generation Internet, allowing transmission of data and/or sending its built-in native currency for free, as it is the only protocol in the world enabling this. Consequentially, this opens an unimaginable number of doors to potential use cases which are currently impossible, not even on blockchain. One of these doors are micro payments. This was one of the missing pieces of the puzzle within the idea of the Internet of Things, where we have billions of edge devices communicating with each other on a decentralized platform, sending data between themselves and making payments to each other, all autonomously.
Another feature of IOTA is quantum resistance. With the evolution of quantum computers, we can expect big threats when it comes to security on the Internet. The Internet depends on encryption to allow devices to communicate over it safely and privately. Most of the commonly used encryption schemes today, such as RSA, elliptic-curve (used in blockchain), asymmetric encryption algorithms, etc. are vulnerable to quantum computers, which are able to do computations that classical computers cannot. Quantum computers can break cryptographic keys quickly by calculating or searching all private keys exhaustively using algorithms such as Shor's and Grover's algorithms. IOTA is deemed to be resistant to quantum computers because it uses the Winternitz one time signature scheme for signing messages instead of Elliptic-curve cryptography used in blockchains such as Bitcoin, which is known to not be quantum resistant.
IOTA also uses trinary base system instead of binary. 3 is closer to the universal optimum 2.71 than 2. One trinary digit, a trit, can represent 1.58 bits. The amount of wiring necessary for a trinary system can therefore be reduced to about 64% of an equivalent binary system, resulting in a corresponding energy reduction. Moreover, in the future, it is expected that the devices in the IoT space will be running for many, many years without the need to replace their batteries. That being said, energy consumption is of high importance when it comes to device longevity. IOTA uses a balanced trinary system, which means it uses -, 0 and + as trits. A trit (bit in binary) is a digit in a base 3 number system and since it's balanced it can take values of -1, 0 and +1. A tryte (byte in binary) consists of 3 trits. A tryte can be in one of the 27 states. In IOTA these states are often named with the (26) uppercase letters ABCDEFGHIJKLMNOPQRSTUVWXYZ
and the (+1) number 9
so in total 27 states. The main reason why they've added the number "9" as the last state instead of for example number "0", it's because "0" would be often confused with the letter "O". In summary: with trinary we can do more than binary, whilst decreasing energy consumption, which is crucial for IoT devices.
So far we have mentioned the many unique properties of IOTA, namely that IOTA has no miners, no fees, is completely free to use, permission-less, infinitely scalable, decentralized and distributed, has near instant transactions, is quantum resistant, uses trinary base, is ready for quantum processors and allows the sending of data-only transactions, without the need to send token value.
So far we have explored many pros of IOTA, so now it would be appropriate to see some of the cons. If you paid close attention to the topic of scalability, you may have noticed a potential problem. The more network activity, the better for the network. The problems arise when network activity is low. More precisely, it is really easy to carry out double-spend attacks via parasite chains, network- splitting attacks and others. This is why the IOTA Foundation has put a centralized application in place called Compass that sends milestone transactions to an IRI node at periodic intervals. The Compass is just a temporary measure that is required at the current point in time to keep the network protected against malicious actors. Compass acts as the training wheels on a bike, remaining until the network is large enough to sustain itself and run safely. To protect the network, Compass sends bundles at periodic intervals that contain a signed zero-value transaction called a milestone. Because of it, the current network consensus is that each transaction that is directly or indirectly being referenced by a milestone is deemed to be confirmed. There has been a historically big backlash to this temporary measure as the implication is that it makes the network partly centralized. Why partly? Because nodes within the network can freely opt-out of referencing it, although the majority of community members choose to opt-in for everybody's safety. Currently, the IOTA Foundation has been allocating an enormous amount of human resources into research and development on how to safely and efficiently remove Compass as soon as possible. This task is by no means easy, as they have only one chance. One mistake and the project could be over. In summary: The problem is low network activity and while it is low, the IOTA Foundation has a centralized application in place called Compass that keeps the network safe.
Another con is the technical implementation of the main software that IOTA nodes employ - the IRI. IRI stands for IOTA Reference Implementation and is the piece of software that node owners in an IOTA network run.
In the above image is a nice example of IOTA's network topology. Each one of those computers run the IRI software and each is connected to a few neighbor IRI nodes (optimally 3). By doing so, they create a peer-to-peer network: the Tangle. The current problems of the IRI are all of a technical nature, as it requires a lot of optimizations. As of now, it is unable to handle more than double-digit or low triple-digit levels of TPS (transactions per second). This is quite far from the premise of being able to handle thousands upon thousands of TPS. It is important to mention that there are always going to be technical limitations to how many transactions a node or a group of nodes will be able to process. This is why IOTA relies on the previously mentioned network clustering which solves the problem.
These two issues are the main cons of IOTA as of now. There are other minor ones as well, such as the fact that only a few development libraries are currently well supported (Javscript, Java, Go, etc.) while the rest are still being built, mostly by the community. These few issues are expected to be resolved in the very near future.
To conclude this chapter, I would like to invite you to check out the presentation below given by Terry Shane, as it is definitely one of the best presentations on IOTA out there.
In this chapter we have explored the differences between blockchain and the Tangle, we have explained what the Tangle is and how it works, we have also listed all the main pros and cons of IOTA and described each from a big picture perspective without going into the low level details. In the next chapter, we will take a closer look into the development category and see how to incorporate IOTA and use it in one of the modern languages - C#.