A Directed Acyclic Graph (DAG) is a type of graph structure in which it's impossible to move across the entire graph by starting at one edge.

In graph theory, a graph is a structure consisting of nodes that are connected by edges. You can think of the nodes as point on the graph and the edges as lines. Or in terms of a spreadsheet, the nodes would be the cells, with the edges being the outlines of the cells.

'Directed' means that the edges of the graph only move in one direction, where future edges are dependent on previous ones. For example, if you were to graph the process of cooking and eating a meal consisting of rice and chicken, the tasks involved would need to be topologically ordered (or topologically sorted). Before you can eat the meal, you must prepare the food, so the edge would necessarily be directed from preparation forward to eating. But before you can prepare the food, you must buy the ingredients, so again the edge must go from the earlier event to the later event. Supposing that the rice was bought in a separate event from the chicken, there would be two separate edges for the grocery shopping events that are not connected to each other, but which converge at the event of preparing the food.

'Acyclic' means that it is impossible to start at one point, or edge, of the graph and the traverse the entire graph. Whereas a cycle comes back around to it's original starting point like a circle, an acyclic graph continues moving in a linear direction and never does circle back to the starting point. To continue with the earlier example of chicken and rice dinner, you can't move on the graph from buying the rice to preparing the food to buying the chicken, as that would require moving backwards across the graph. It's impossible to prepare the chicken if you haven't yet purchased it.

DAGs are probabilistic graphical representations of Bayesian networks that aim to model conditional dependence (e.g. eating the meal depends on preparing it first).

Several cryptocurrencies use DAGs rather than blockchain data structures in order to process and validate transactions. With blockchains, all of the nodes in a network build on the same single blockchain with each block referencing the one that came before it. A possible downside to this structure is that it puts a limit on the network's transaction throughput, as there are only so many transactions that can fit in a single block and only so many blocks that can be validated in a given time. In a DAG network, transactions are directly linked to each other rather than grouped into blocks, and transactions can be processed simultaneously with others. The result is a lessened bottleneck on transaction throughput.

## Timeline

## People

## Further reading

A Gentle Introduction To Graph Theory - basecs - Medium

Vaidehi Joshi

Web

Can someone explain in simple terms to me what a Directed acyclic graph is?

Forum discussion, multiple authors

Web

Everything You Need to Know About Directed Acyclic Graphs (DAGS) - Coin Bureau

Web

## Documentaries, videos and podcasts

Bitcoin Q&A: Directed acyclic graphs (DAGs) and IOTA

February 26, 2018

Graphs-Directed Acyclic Graphs - Data Structures & Algorithms

September 28, 2015

## Companies