Documentation
DAG-based consensus

DAG-based Consensus

In the context of blockchain technology, Byzantine Fault Tolerant (BFT) consensus involves n validators, up to f of whom may act maliciously, working to agree on an ever-expanding sequence of transactions. The concept behind DAG-based BFT consensus, as seen in protocols like HashGraph (opens in a new tab) and Aleph (opens in a new tab), is to decouple the network communication layer from the consensus logic. Each message comprises a set of transactions and references to previous messages. Collectively, these messages form a continuously expanding Directed Acyclic Graph (DAG) – with each message as a vertex and its references as edges.

DAG

One of the key advantages of DAG-based consensus is that it introduces zero additional communication overhead. Each validator independently examines its local view of the DAG and fully orders all vertices without sending any extra messages. The structure of the DAG itself is interpreted as the consensus protocol, where a vertex represents a proposal and an edge signifies a vote.

A significant challenge in this context arises from the asynchronous nature of the network, meaning that different validators may see slightly different DAGs at any given time. The primary difficulty lies in ensuring that all validators ultimately agree on the same total order of transactions.

2024 Scalaris