IOTA is a decentralized distributed ledger that was designed primarily for the Internet of Things. Unlike other cryptos based on the Blockchain technology, IOTA works on the Tangle Network technology— which is a Directed Acyclic Graph (DAG).
The Tangle Network enables IOTA to work in a faster and smarter way that was not possible with blockchains. In a more connected network, IOTA opens a variety of use cases that cannot be replicated with the blockchain technology.
IOTA is designed to make IoT achieve the next level of networking — think of connected devices with sensor technology, machine to machine communication, smart cities, pay on demand and other IoT concepts which were otherwise not very feasible with blockchains.
A Directed Acyclic Graph (DAG) is a finite graph with no cycles, and where the nodes have edges with a direction associated with them — the DAG that IOTA uses is called the Tangle. Instead of being a blockchain with many ‘miners’ who approve transactions, Tangle allows the participants of a transaction become the transaction approvers too.
Let’s compare IOTA to a blockchain to understand it better — on a Bitcoin blockchain, if a person A sends bitcoins to person B, the transaction will have to be validated by a miner and when a miner approves a transaction, it becomes sealed into the bitcoin ledger as part of the mined block, and the miners have incentives in the form of fees.
IOTA Tangle works a little differently: each sender and receiver has to be the approver of two previous transactions. Since there are no miners involved, the transactions are free. Instead, a node (sender/receiver) first approves two transactions according to an algorithm. It double checks if the two transactions it approves are not conflicting, and then solves a cryptographic puzzle to validate the transaction.
Let us look at it in more detail: The algorithm forces you to traverse the DAG by going to the same path indirectly. So, A cannot approve B’s transaction directly. However, if there is a path of at least two previous transactions that connect A and B, A will approve the two previous transactions while traversing this other path. Once both these transactions are approved, B’s transaction will be approved as well. As more and more of the transaction paths between A and B get approved by different nodes in the network, the transaction gets solidified.
Tangle is an asynchronous network. This means that conflicting transactions can exist in the network. However, when such a transaction comes forth, one will eventually have to be orphaned. So how does the network decide if one transaction will become orphaned and other will stay?
The network checks how ‘connected’ the pathway of transactions from A to B is. This means that the more ‘connected’ or ‘validated’ the previous two transactions for either of the conflicting transactions is, the more likely it is to stay. More validation leads to more ‘cumulative weight’ of the transaction. If transaction 1 has more cumulative weight than a conflicting transaction 2, transaction 1 will stay while transaction 2 becomes invalid.