Instead of using a blockchain, IOTA uses something called a DAG or Tangle.
DAG is short for Directed Acyclic Graph and it is a storage system where individual items link to each other. Directed means that the link between items always have a direction and Acyclic means that you cannot create loops inside this structure. Below is an example of a Tangle.
Each square represents a single transaction and is called a Site. Each Site contains all the details about the transaction: such as the sender, the receiver and the amount of coins. It also has a connection to at least two other transactions. These are called the Edges and they validate the transactions. Near the end of our Tangle, we find a few transactions that don’t have two or more incoming edges. This means that these transactions are unconfirmed. These are called the Tips of the tangle.
How a new transaction to the tangle is added?
A new transaction to the tangle is added by attaching a Site to one of the tips of the tangle. An algorithm selects two of them at random and makes sure that the transactions don’t conflict with one another.
If one of the tips is a fake transaction, it is ignored and a new tip is selected. If everything checks out, a transaction is attached to the two tips which adds a transaction to the tangle and verifies the two other transactions. This way a transaction is now part of the tangle and becomes a new tip.
How do we know we can trust a transaction?
In traditional blockchains people often use the number of confirmations to check whether or not a block should be trusted. IOTA has a similar technique. Each site has a weight and this number signifies the amount of work that a node has done to make this transaction. In other words, a higher number means the node spent more time doing the proof-of-work for that transaction.
Each transaction also has a cumulative weight. This is the sum of it’s own weight plus the sum of the weights of all transactions that approve this transaction.
It seems quite complicated, but it really isn’t. Here is an example of a Tangle where every transaction has a weight of 1. We will put the weight of an individual transaction in the bottom right of each square.
Now let’s check how trustworthy this pink transaction is by calculating its cumulative weight. To do that, we sum up the weight of the two transactions that have approved it. But those transactions where approved by other transaction as well. So we keep summing up all these weights until we get to the end of the tangle. In this case, the accumulative weight of the site is 6.
Transactions with a high cumulative weight are usually older and have more direct or indirect verifications. So we can trust those transactions more then others.
How does tangle stack up against traditional blockchains?
Well, the tangle solves two big issue’s: Scalability and Miners.
As we’ve seen, IOTA’s network becomes faster when more transactions happen. This means that IOTA can handle almost an unlimited amount of transactions per second while traditional blockchains can only handle a few. But there is an other aspect to scalability that most people seem to forget and that is storage.
In a blockchain, you need a full copy of the chain before you can start adding new transactions. Right now the Bitcoin blockchain is almost 150GB in size and keeps growing very fast. Storing all this data is not something every device can do and will get harder over time.
IOTA’s Tangle is much more lightweight. You don’t need a full copy of the tangle to add transactions. You only need a small part of the tangle to create and verify transactions. This makes it much more future proof.