Un graphe orienté acyclique, ou Directed Acyclic Graph (DAG) en anglais, est une structure de données conceptualisée depuis plusieurs siècles, qui est utilisée dans certaines technologies de registre distribué (DLT) pour valider les transactions sans recourir à la création de blocs. Contrairement à la blockchain, les DAG ne nécessitent pas de mineurs pour valider les transactions.
Le DAG est une structure en forme de graphe arborescent qui relie les transactions nouvellement émises aux précédentes. Cette structure est acyclique, ce qui signifie qu’il n’y a pas de boucles ou de cycles dans la chaîne de transactions. Elle est également orientée, signifiant que les transactions s’établissent les unes sur les autres dans une même direction, ce qui permet de les orienter dans le temps. Chaque « noeud » dans le graphe correspond à un sommet et représente une transaction. Les transactions se construisent les unes sur les autres selon un ordre chronologique. Ainsi, au lieu de créer des blocs, le DAG permet aux transactions d’être validées et confirmées au fur et à mesure qu’elles sont effectuées.
Dans un DAG, il existe plusieurs chemins possibles puisque la configuration en graphe permet de paralléliser une simple chaîne. L’émission d’une nouvelle transaction nécessite de s’attacher à plusieurs transactions antérieures. Un algorithme peut permettre de sélectionner les transactions antérieures à privilégier, généralement en choisissant celles qui ont accumulé le plus de transactions confirmées sur leur chemin.
La confirmation de la transaction implique qu’une nouvelle transaction s’est attachée à la transaction en attente de confirmation. Dès lors, la transaction est confirmée, et les confirmations s’effectuent ainsi transaction après transaction. Publier une transaction implique de confirmer des transactions plus anciennes.
Il peut néanmoins exister des problèmes de conflits puisque plusieurs transactions peuvent être confirmées simultanément. Les DAG sont par ailleurs très complexes et donc difficile à mettre en place sur un réseau d’envergure.
Le DAG est utilisé dans plusieurs projets tels que IOTA (avec le consensus de Tangle), ou encore Hedera Hashgraph, qui cherchent à améliorer l’efficacité et la vitesse des transactions en éliminant le besoin de mineurs pour valider les transactions. Cette approche permet à ces projets de traiter un grand nombre de transactions simultanément, tout en réduisant les coûts énergétiques associés à la création de blocs dans la blockchain.