Crypto Alphabet

What is a DAG (Directed Acyclic Graph)?

Scaling a blockchain has proved to be a daunting, complicated task. Bitcoin, a trailblazer for all digital currencies, has been a stagnant, low-throughput network for years for this very reason.

Currently, there are many initiatives circling around the crypto space that are aimed to enhance Bitcoin’s (and other platform’s) TPS. Some experts motion to have the block size increased, others want the processing time on the network to be reduced. There’s a great deal of debate as to which variable should be changed and, given how resentful the Bitcoin community is to any modifications, there’s no telling when the issue will be tackled.

Some projects, however, offer a more radical approach to remedy blockchain’s problems: they’ve built completely new networks which do not use the blockchain data structure at all. For example, IOTA (MIOTA). Instead of blockchain, it is seeking to implement something called Directed Acyclic Graph (DAG).

What is a DAG (Directed Acyclic Graph)?

As far as data structures go, Blockchains can be thought of as simple linked lists. Each entry on Bitcoin or Ethereum (or other networks) is put on top of the previous one to which it holds a reference. That’s how we get a linear sequence of digital events that we call a chain.

Blockchains allow one to track down any record stored in a ledger’s history, but their sequential structure is also what hinders significantly their transaction throughput; the flat list nature of blockchains is the biggest bottleneck for their ability to scale.

A DAG operates differently. This data structure resembles a flow chart where all points are headed in one direction. You can compare a Directed Acyclic Graph (DAG) to a file directory structure where folders have subfolders that branch into other subfolders and so on; they are tree-like.

The word acyclic just means that no node in the graph can reference back to itself; it can’t be its own mother node.

How does IOTA use DAG?

IOTA, the “new generation” cryptocurrency is set out to eliminate completely the concept of a miner’s fee.

As you know, there are currently different roles for Bitcoin and Ethereum users; some submit transactions and others approve them. The fees are essential to such heterogeneous system as there’s always a need to incentivize validators to write to a blockchain’s history and secure the network.

Using DAG (which IOTA calls the Tangle), IOTA is able to assign the same exact duties to its every member; all the users on the network are both issues and transaction validators at the same time.

To have a transaction verified by IOTA, one has to approve two previous transactions (and ensure they’re not conflicting). Also, one needs to attach a tiny amount of proof of work as low difficulty computations are needed to prevent spam on the network.

This removes completely the need to pay fees to miners and thus opens up the possibility to execute microtransactions which could be worth as little as a few cents.

IOTA doesn’t support mining.

IOTA’s DAG data structure allows for the network’s easy scalability. Everyone is participating in reaching a consensus and, therefore, the more people are using IOTA, the faster the network becomes.

Apart from assets, the network allows attaching data to transactions; it has the potential to enable swift machine-to-machine transactions. Initially, IOTA was designed specifically to serve as a backbone for the Internet of Things (hence the name IOTA). But the features it has introduced can surely be utilized for endless other use cases.