In this second post in the series, we offer some further insights into the exact nature of the IOTA ledger as a Directed Acyclic Graph (DAG). This exercise is particularly useful because these differences help explain the overall future vision for IOTA, as well as the path to Coordicide.
On a conceptual level, blockchains and DAGs have some similarities. Both are distributed ledger technologies, which allow users to obtain eventual consensus over the state of a ledger, in a decentralized manner. However, they do differ somewhat in their underlying mechanisms, and more importantly, have some key differences in their scaling properties and their potential use cases.
But what’s wrong with blockchains?
Given that blockchains already exist, and that they appear to reliably maintain a ledger state, this is a valid question. Why reinvent the wheel? The main motivation is scalability.
Let’s take Bitcoin as our blockchain case study. It is limited to around 7 transactions per second (TPS) globally regardless of how much demand or computational power are involved in the system. In addition, the time it takes for a transaction to reach finality, even with no congestion, is around an hour, which limits many potential use cases. Fully describing the blockchain scaling problem is beyond the scope of this blog post, and we recommend this article by Preethi Kasireddy as a good starting point to the Bitcoin scaling problem.
One of the blockchain bottlenecks is the necessity for every node to reach consensus before releasing a new block. If this synchronicity is not maintained, we get many orphan blocks. These blocks do not contribute to the overall throughput and therefore waste both bandwidth and proof-of-work resources. Orphan blocks are also known as temporary forks.
In a DAG, we accept that these orphans and forks are an inevitable consequence of a high rate of TPS. However, unlike in blockchain systems, these orphans are merged back into the system, and are therefore not a waste of resources. Theoretically, this is the major advantage of DAGs.
How consensus is reached
The terms blockchain and DAG refer to the data structures used to store the ledger state, rather than the consensus mechanisms. Blockchains can use, for example, proof-of-work (PoW), proof-of-stake (PoS), or a quorum to reach consensus. Similarly, different DAGs can have different consensus mechanisms. In this section we will focus on comparing a PoW blockchain, like Bitcoin, and IOTA.
In a PoW-based DLT, there are two fundamental questions to be answered:
- Where should a new block connect?
- How do we determine when a transaction is considered confirmed?
Bitcoin and IOTA provide different, but analogous answers to these two questions. These can be summarized as follows.
- Longest-chain rule: somewhat of a misnomer, but this rule states that a new block should approve the chain with the largest accumulated PoW.
- Six-block rule: if a block is at least six blocks deep and part of the longest chain, it can be considered confirmed.
(If these concepts are unclear, we recommend 3Blue1Brown’s excellent introduction to Bitcoin video, or an equivalent introductory-level blockchain lesson.)
IOTA’s answers, as proposed in the Tangle whitepaper:
- MCMC tip selection: a new transaction chooses 2 previous transactions to approve, using an MCMC weighted random walk.
- Confirmation confidence: a transaction is confirmed if its confidence is very high, meaning almost all legitimate tips approve it.
While IOTA doesn’t use blocks, we can imagine transactions as blocks of size one, and the analogy holds. This description is an over-simplification of both systems, but hopefully transmits the main idea of how blockchain consensus is related to the Tangle.
How can we enforce MCMC?
IOTA is a distributed system. There is no way for the IOTA Foundation, or anyone, to enforce approval of a particular transaction. We also cannot enforce the use of the MCMC algorithm we recommend. The best we can do is show that it is in the user’s best interest to follow our suggestion, or her transactions will be less likely to be approved by others.
This is the same story in Bitcoin. If miners think there is more profit to be had by forking the main chain rather than extending it, they will certainly go for it. See for example this recent article, which claims Bitcoin’s incentive system may be insufficient to stabilize it in the absence of block rewards. A more concrete example comes from Ethereum, in their hard fork proceeding the DAO hack: if there is an economic incentive to ignore the longest-chain rule, it will be ignored.
In the face of these uncomfortable truths, the best and most sensible approach is to give users the freedom to choose whom to approve, and which transactions they consider as confirmed. There is only one basic rule in IOTA: each transaction must approve exactly two previous transactions. If users believe it is in their best interests to follow the recommended tip selection algorithm, they will do that, and it is up to us to show that indeed this is the best strategy to follow.