Qu'est-ce qu'un graphe orienté acyclique (DAG) dans le domaine des cryptomonnaies ?
Accueil
Articles
Qu'est-ce qu'un graphe orienté acyclique (DAG) dans le domaine des cryptomonnaies ?

Qu'est-ce qu'un graphe orienté acyclique (DAG) dans le domaine des cryptomonnaies ?

Intermédiaire
Publié le Jul 19, 2020Mis à jour le Aug 21, 2024
8m

Table des matières


Introduction

Lorsque vous pensez aux cryptomonnaies, les termes «  blockchain » ou « registre distribué » vous viennent probablement à l'esprit. Depuis le lancement de Bitcoin, des centaines d'autres cryptomonnaies ont été créées. La plupart d'entre eux reposent sur une architecture réseau similaire. Leurs structures de données permettent aux utilisateurs de transférer de la valeur ou d'interagir avec des applications décentralisées.
Dans une blockchain, un nouveau bloc est périodiquement ajouté à une chaîne de blocs en expansion. Chaque bloc est relié au précédent par une sorte de lien cryptographique (plus précisément, un hachage). Dans chacun de ces blocs se trouvent des transactions récentes qui ont été diffusées par les utilisateurs.
Mais il y a souvent une période d'attente entre la diffusion d'une transaction et son inclusion dans un bloc. Pensez-y comme si vous attendiez un train dans une gare. En fonction de la taille des wagons (taille des blocs) et du nombre d'autres personnes qui attendent (transactions en attente), il se peut que vous ne puissiez même pas prendre le train suivant. Ou même celui d'après. Vous pouvez attendre de quelques secondes à quelques heures que la transaction soit confirmée.
Pour beaucoup, il s'agit d'un compromis judicieux. Après tout, il offre un très haut niveau de sécurité sans faire appel à un coordinateur centralisé. Pour d'autres, la technologie blockchain a une date d'expiration. Les détracteurs pensent qu'à long terme, les problèmes de scalabilité rencontrés par la technologie blockchain empêcheront l'adoption de masse.

Certains pensent que l'avenir des réseaux de paiement en cryptomonnaies réside dans une architecture totalement différente : les graphes orientés acycliques (ou DAG).


Qu'est-ce qu'un DAG ?

Un DAG est un type de structure de données différent, comme une base de données qui relie différentes informations. « Graphe orienté acyclique » est un terme complexe, alors commençons par le décomposer.


Graphe orienté acyclique.


Conceptuellement, les DAG ressemblent à ce qui est décrit ci-dessus. Ils sont composés de sommets (les sphères) et d'arêtes (les lignes qui les relient). Ils sont dirigés parce qu'ils vont dans une seule direction (vous pouvez voir les flèches). Ils sont acycliques (c'est-à-dire non cyclique) parce que les sommets ne forment pas de boucle sur eux-mêmes. Si vous commencez à un point et suivez le graphe, vous ne pouvez pas revenir à ce même point. Tout cela sera bientôt plus clair.

Ces structures de données sont généralement utilisées pour modéliser les données. Vous pouvez vous appuyer sur un DAG dans des domaines scientifiques ou médicaux pour observer la relation entre les variables et déterminer leur impact mutuel. Par exemple, vous pourriez prendre des éléments tels que la nutrition, les cycles de sommeil et les symptômes physiques, afin de pouvoir établir des liens entre eux pour déterminer comment ils affectent un patient.

En ce qui nous concerne, nous nous intéressons davantage à la manière dont ils peuvent contribuer à l'obtention du consensus dans un réseau distribué de cryptomonnaie.


Comment fonctionne un DAG ?

Dans une cryptomonnaie basée sur un DAG, chaque sommet de la structure représente une transaction. Il n'y a pas de notion de bloc ici, et il n'est pas non plus nécessaire de miner pour étendre la base de données. Ainsi, au lieu de rassembler les transactions en blocs, chaque transaction est construite sur une autre. Cependant, une petite opération de preuve de travail est effectuée lorsqu'un nœud soumet une transaction. Cela permet de s'assurer que le réseau n'est pas pollué et de valider les transactions précédentes.

Pour qu'une nouvelle transaction soit ajoutée, elle doit s'appuyer sur des transactions plus anciennes. Supposons qu'Alice crée une nouvelle transaction. Pour qu'elle soit prise en compte, cette transaction doit faire référence aux transactions précédentes. Un peu comme la façon dont un bloc Bitcoin fait référence à celui qui le précède, mais avec plusieurs transactions référencées.

Dans certains systèmes, un algorithme sélectionne les transactions (ou « pourboires ») sur lesquelles une nouvelle transaction doit être effectuée. Les pourboires plus susceptibles d'être sélectionnés sont ceux qui ont plus de poids accumulé : une mesure du nombre de confirmations du chemin vers le pourboire.

Les transactions qu'Alice ajoutera sont non confirmées. Mais une fois qu'Alice les aura référencées, elles deviendront confirmées. La transaction d'Alice est maintenant non confirmée. Quelqu'un d'autre doit ajouter une nouvelle transaction pour qu'elle soit acceptée.

Les utilisateurs sont plus enclins à confirmer les transactions avec un poids « plus lourd » afin que le système continue de croître. Dans le cas contraire, il n'y aurait rien qui empêcherait un utilisateur de continuellement ajouter des nouvelles transactions à des transactions plus anciennes.

Avec les blockchains, il est assez facile de se protéger contre les double dépenses. Les mêmes fonds ne peuvent pas être dépensés deux fois dans un bloc : les nœuds peuvent facilement détecter toute tentative et rejeter tout bloc contenant des transactions en conflit. Puisque la production de blocs est si coûteuse pour les mineurs, ils sont incités à être honnêtes.

Les DAG disposent également d'un mécanisme pour éviter les doubles dépenses. C'est un peu pareil, mais sans les mineurs. Lorsqu'un nœud confirme des transactions plus anciennes, il évalue la totalité d'un chemin vers la toute première transaction du DAG pour s'assurer que l'expéditeur dispose d'un solde suffisant. Il peut y avoir plusieurs chemins, mais un seul doit être vérifié.



Si les utilisateurs utilisent un chemin non valide, ils courent le risque que leur propre transaction soit ignorée. La leur pourrait être légitime, mais comme la précédente ne l'était pas, personne ne voudra prolonger ce chemin.

Ce n'est pas intuitif aux premiers abords : ne pourriez-vous pas vous retrouver dans une situation où plusieurs branches qui ne sont pas conscientes les unes des autres existent ? Ne serait-ce donc pas possible de dépenser les mêmes fonds dans ces différentes branches ?



C'est effectivement une possibilité, mais elle est résolue par un algorithme de sélection qui favorise les transactions ayant un poids cumulé plus important. Cela signifie qu'au fil du temps, vous vous retrouverez avec une branche beaucoup plus forte que les autres. Les plus faibles seront abandonnées et le réseau continuera à se développer sur la plus lourde.

Comme pour les blockchains, il n'y a pas de finalité absolue : vous ne pouvez jamais être sûr à 100 % qu'une transaction ne sera pas annulée. C'est incroyablement improbable, mais vous pouvez théoriquement annuler un bloc Bitcoin ou Ethereum, ce qui annule toutes les transactions à l'intérieur de celui-ci. Plus vous ajoutez de blocs après la transaction, plus vous pouvez avoir confiance en votre transaction. C'est pourquoi il est recommandé d'attendre six confirmations avant de dépenser des fonds.
Dans un DAG tel que le Tangle de IOTA, il existe un concept de confiance de confirmation. L'algorithme de sélection est exécuté 100 fois, et vous comptez combien de fois votre transaction a été approuvée directement ou indirectement dans les conseils sélectionnés. Plus le pourcentage est élevé, plus vous pouvez être sûr que votre transaction restera réglée.

Cela peut sembler entraîner une mauvaise expérience utilisateur. Mais ce n'est pas le cas. Si Alice envoie à Bob 10 MagicDAGTokens, elle n'a pas à se soucier de sélectionner les bonnes transactions du graphe. En arrière-plan, son portefeuille peut réaliser les opérations suivantes :

  • Sélectionner les transactions les plus lourdes (rappelez-vous, ce sont celles qui ont le plus de confirmations accumulées).
  • Suivez la procédure de retour des transactions précédentes pour vous assurer que les transactions disposent d'un solde suffisant pour les dépenses.
  • Une fois que c'est fait, elle ajoute sa transaction au DAG en confirmant les transactions sur lesquelles elle a été effectuée.
Pour Alice, cela ressemblera simplement à la procédure habituelle pour une cryptomonnaie. Elle saisit l'adresse de Bob et le montant qu'elle souhaite dépenser, puis appuie sur Envoyer. La liste ci-dessus est la preuve de travail que chaque participant exécute lorsqu'il crée une transaction.



Avantages et inconvénients des graphes orientés acycliques

Les avantages des DAG

Vitesse

Sans être limité par des temps de bloc, tout le monde peut diffuser et faire traiter ses transactions à tout moment. Il n'y a pas de limite au nombre de transactions que les utilisateurs peuvent soumettre, à condition qu'ils en confirment d'anciennes lorsqu'ils le font.


Pas de minage

Les DAG n'utilisent pas les algorithmes de consensus PoW comme c'est le cas habituellement. Leur empreinte carbone est donc une fraction de celle des cryptomonnaies qui s'appuient sur le minage pour sécuriser leur réseau de blockchain.


Pas de frais de transaction

Comme il n'y a pas de mineurs, les utilisateurs n'ont pas besoin de payer de frais pour diffuser leurs transactions. Cela dit, certains exigent qu'une petite redevance soit versée à des types particuliers de nœuds. Des frais faibles (ou mieux, des frais nuls) sont intéressants pour les micropaiements, car ils ne sont pas envisageables sur des réseaux avec des frais importants.


Aucun problème de scalabilité

Sans contrainte de temps de bloc, les DAG peuvent traiter beaucoup plus de transactions par seconde que les réseaux blockchain traditionnels. Beaucoup de promoteurs pensent que cela les rendra précieux dans les cas d'utilisation de l'Internet des objets (IoT), où tous les types d'objet et machines interagiront entre eux.


Les inconvénients des DAG

Pas entièrement décentralisé

Les protocoles qui reposent sur des DAG ont différents éléments de centralisation. Pour certains, il s'agit probablement d'une solution à court terme pour initialiser le réseau, mais il reste à savoir si les DAG peuvent prospérer sans l'intervention de tiers. Si ce n'est pas le cas, ils s'ouvrent à des vecteurs d'attaque qui pourraient finalement paralyser leurs réseaux.


Non testé à grande échelle

Bien que les cryptomonnaies basées sur les DAG existent depuis quelques années, elles ont encore un long chemin à parcourir avant de voir leur utilisation se généraliser. Par conséquent, il est difficile de prédire les incitations que les utilisateurs pourraient recevoir pour maintenir le système à l'avenir.


Pour conclure

Les graphes orientés acycliques sont certainement une technologie intéressante pour construire des réseaux de cryptomonnaies. Jusqu'à présent, il y a relativement peu de projets qui utilisent cette structure de données, et ils n'ont pas encore évolué complètement.
Cela dit, s'ils peuvent exploiter leur potentiel, ils pourraient alimenter des écosystèmes extrêmement évolutifs. La technologie DAG présente une myriade de cas d'utilisation dans des domaines qui exigent un débit élevé et l'absence de frais, comme dans l'Internet des objets (IoT) et les micropaiements.