Aller au contenu Aller à la barre latérale Atteindre le pied de page

Lorsque vous pensez aux crypto-monnaies, les termes “blockchain” ou “technologie de registre distribué” vous viennent probablement à l’esprit. Depuis le lancement du bitcoin, des centaines d’autres crypto-monnaies ont été créées. La plupart d’entre elles reposent sur une architecture de 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 croissance. Chaque bloc est relié au précédent par une sorte de lien cryptographique (plus précisément, un hash). 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 du bloc) et du nombre de personnes qui attendent (transactions en attente), il se peut que vous ne puissiez même pas prendre le prochain train. Ou même celui d’après. Vous pouvez attendre de quelques secondes à plusieurs heures que la transaction soit confirmée.

Pour beaucoup, il s’agit d’un compromis acceptable. Après tout, elle offre un très haut degré de sécurité sans dépendre d’un coordinateur centralisé. Pour d’autres, la technologie blockchain a une date d’expiration. Ses détracteurs estiment qu’à long terme, les problèmes d’évolutivité rencontrés par la technologie blockchain empêcheront son adoption massive.

Certains pensent que l’avenir des réseaux de paiement en crypto-monnaies 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 différent de structure de données – pensez-y comme une base de données qui relie différents éléments d’information entre eux. L’expression “Graphe orienté acyclique” est un terme chargé, alors commençons par le décomposer.

D’un point de vue conceptuel, les DAG ressemblent à l’image ci-dessus. Ils sont constitués de sommets (les sphères) et d’arêtes (les lignes qui les relient). Ils sont dirigés car ils vont dans une seule direction (vous pouvez le voir illustré par les flèches). Ils sont acycliques (c’est-à-dire qu’ils ne sont pas cycliques) 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. Cela deviendra plus clair dans un instant.

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

En ce qui nous concerne, nous sommes davantage intéressés par la façon dont ils peuvent aider à obtenir un consensus dans un réseau de crypto-monnaies distribué.

Comment fonctionne un DAG ?

Dans une crypto-monnaie basée sur un DAG, chaque sommet de la structure représente une transaction. Il n’y a pas de notion de blocs ici, et il n’est pas 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. Il y a tout de même une petite opération de preuve de travail qui 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 les transactions précédentes. Supposons qu’Alice crée une nouvelle transaction. Pour qu’elle soit reconnue, cette transaction doit faire référence aux transactions précédentes. C’est un peu comme la façon dont un bloc dans bitcoin fait référence à celui qui l’a précédé, mais il y a plusieurs transactions référencées.

Dans certains systèmes, un algorithme sélectionne les transactions (ou “tips”) sur lesquelles une nouvelle transaction doit s’appuyer. Les pointes les plus susceptibles d’être sélectionnées sont celles qui ont le plus de poids accumulé – une mesure du nombre de confirmations du chemin vers la pointe.

Les transactions sur lesquelles Alice va s’appuyer ne sont pas confirmées. Mais une fois qu’Alice les a référencées, elles deviennent confirmées. La transaction d’Alice n’étant pas confirmée, quelqu’un d’autre doit la compléter avant qu’elle ne soit acceptée.

Les utilisateurs sont plus enclins à confirmer les transactions ayant un poids “plus lourd” afin que le système continue de croître. Sinon, rien n’empêcherait les utilisateurs de construire continuellement sur des transactions plus anciennes.

Avec les blockchains, la protection contre les doubles dépenses est assez simple. 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 contradictoires. Étant donné que la production de blocs est très coûteuse pour les mineurs, ceux-ci sont incités à jouer franc jeu.

Les DAGs ont également un mécanisme pour empêcher les doubles dépenses. C’est un peu la même chose, mais sans les mineurs. Lorsqu’un nœud confirme des transactions plus anciennes, il évalue un chemin complet en remontant jusqu’à 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 construisent sur un chemin non valide, ils courent le risque que leur propre transaction soit ignorée. Leur transaction pourrait être légitime, mais comme la précédente ne l’était pas, personne ne voudra prolonger ce chemin particulier.

Cela semble peu intuitif à première vue – ne pourrait-on pas se retrouver dans une situation où il existe plusieurs branches qui ne sont pas conscientes les unes des autres ? Dans ce cas, les gens ne pourraient-ils pas dépenser les mêmes fonds sur ces différentes branches ?

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

Comme avec 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 pourriez théoriquement “défaire” un bloc de bitcoin ou d’Ethereum, en annulant toutes les transactions qu’il contient. Plus il y a de blocs ajoutés après celui où se trouve votre transaction, plus vous pouvez avoir confiance en elle. 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 y a une idée de la confiance de la 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 conduire à une mauvaise expérience utilisateur. Mais ce n’est pas le cas. Si Alice envoie à Bob 10 MagicDAGTokens, elle n’a pas besoin de se soucier de sélectionner les bons bouts du graphique. Sous le capot, son portefeuille peut faire ce qui suit :

  • Sélectionner les pointes lourdes (rappelez-vous, ce sont celles qui ont le plus de confirmations accumulées).
  • Suivre le chemin du retour à travers les transactions précédentes pour s’assurer que les pourboires ont un solde suffisant à dépenser.
  • Une fois satisfaits, ils ajoutent leur transaction au DAG, confirmant les transactions sur lesquelles ils sont construits.

Pour Alice, cela ressemblera au flux de travail habituel des crypto-monnaies. 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.

Avantages des DAGs

Vitesse : Sans restriction par les 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 soumettent, à condition de confirmer les anciennes au fur et à mesure.

Pas de minage : Les DAG n’utilisent pas d’algorithmes de consensus PoW comme nous en avons l’habitude. Leur empreinte carbone est donc une fraction de celle des crypto-monnaies 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 à payer de frais pour diffuser leurs transactions. Cela dit, certaines exigent qu’une petite somme soit versée à des types de nœuds particuliers. Des frais peu élevés (ou mieux, des frais nuls) sont intéressants pour les micropaiements, car leur objectif est contrecarré par des frais de réseau importants.

Aucun problème d’évolutivité : Sans contrainte de temps de bloc, les DAG peuvent traiter beaucoup plus de transactions par seconde que les réseaux blockchain traditionnels. De nombreux partisans pensent que cela les rendra précieux dans les cas d’utilisation de l’Internet des objets (IoT), où toutes sortes de machines interagiront les unes avec les autres.

Inconvénients des DAG

Pas entièrement décentralisés : Les protocoles qui reposent sur les DAG comportent divers éléments de centralisation. Pour certains, il s’agit soi-disant d’une solution à court terme pour amorcer le réseau, mais il reste à voir si les DAG peuvent prospérer sans l’intervention de tiers. Dans le cas contraire, ils s’ouvrent à des vecteurs d’attaque qui pourraient éventuellement paralyser leurs réseaux.

Pas de test à l’échelle : Bien que les crypto-monnaies basées sur les DAG existent depuis quelques années, elles ont encore un long chemin à parcourir avant de connaître une utilisation généralisée. En tant que tel, il est difficile de prédire quelles incitations les utilisateurs pourraient avoir à exploiter le système à l’avenir.

Dernières réflexions

Les graphes orientés acycliques sont certainement une technologie intéressante pour la construction de réseaux de crypto-monnaies. Jusqu’à présent, il y a relativement peu de projets qui utilisent la structure de données, et ils doivent encore évoluer pleinement.

Cela dit, s’ils peuvent réaliser leur potentiel, ils pourraient alimenter des écosystèmes massivement évolutifs. La technologie DAG présente une myriade de cas d’utilisation dans des domaines qui nécessitent un débit élevé et l’absence de frais, comme dans l’Internet des objets (IoT) et les micropaiements.



Laisser un commentaire