A Directed Acyclic Graph (DAG) is a type of graph in which it's impossible to come back to the same node by traversing the edges.
In graph theory, a graph is a structure consisting of nodes that are connected by edges. You can think of the nodes as points and the edges as lines drawn from point to point.
'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 of the graph and come back to it by following the edges. 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.
A Gentle Introduction To Graph Theory - basecs - Medium
Can someone explain in simple terms to me what a Directed acyclic graph is?
Forum discussion, multiple authors
Directed Acyclic Graph (DAG) Overview & Use Cases | Hazelcast
Everything You Need to Know About Directed Acyclic Graphs (DAGS) - Coin Bureau
Going Beyond Blockchain with Directed Acylic Graphs (DAG)
Documentaries, videos and podcasts
- Computer scienceComputer science is the study of the theoretical foundations of information and computation as well as the practical concerns for designing and building computers.
- CryptocurrencyA cryptocurrency (or crypto currency) is a digital asset designed to work as a medium of exchange using cryptography to secure the transactions and to control the creation of additional units of the currency. Cryptocurrencies are a subset of alternative currencies, or specifically of digital currencies.
- IOTA (cryptocurrency)IOTA is a distributed ledger technology based on a structure called the "tangle". It was developed to enable decentralized transactions for the internet of things.
- ByteBallByteball is a decentralized database that makes it easy for users to create and maintain smart contracts.
- NXTNXT is a digital currency and decentralized platform for building applications and financial services.
- Hedera HashgraphSwirlds is a distributed ledger platform for distributed applications. Swirlds uses a unique consensus algorithm called hashgraph, developed by Leemon Baird.
- Nano (cryptocurrency)Nano, formerly RaiBlocks, is a cryptocurrency designed with a directed acyclic graph block-lattice architecture using a delegated Proof-of-Stake (PoS) consensus.