Introduction
Lorsque l’on pense à la cryptomonnaie, les termes « blockchain » ou « technologie du grand livre distribué » viennent probablement à l’esprit. Depuis le lancement du Bitcoin, des centaines d’autres cryptomonnaies ont été créées. La plupart d’entre eux s’appuient 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 croissante de blocs. Chaque bloc est connecté au précédent par une sorte de lien cryptographique (plus précisément, un hachage). Dans chacun de ces blocs se trouvent les transactions récentes qui ont été diffusées par les utilisateurs.
Mais il y a souvent un délai 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 d'autres personnes en attente (transactions en attente), vous ne pourrez peut-être même pas prendre le prochain train. 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 décent. Après tout, il offre un très haut degré de sécurité sans recourir à un coordinateur centralisé. Pour d’autres, la technologie blockchain a une date d’expiration. Les détracteurs estiment qu’à long terme, les problèmes d’évolutivité auxquels est confrontée la technologie blockchain empêcheront son adoption massive.
Certains pensent que l’avenir des réseaux de paiement en crypto-monnaie réside dans une architecture totalement différente : les graphes acycliques dirigés (ou DAG).
Qu’est-ce qu’un DAG ?
Un DAG est un autre type de structure de données : considérez-le comme une base de données qui relie différentes informations entre elles. "Graphique acyclique dirigé" est un terme chargé, alors commençons par le décomposer.

Un graphique acyclique dirigé.
Conceptuellement, les DAG ressemblent à ce qui précède. Ils sont constitués de sommets (les sphères) et d'arêtes (les lignes qui les relient). Ils sont dirigés parce qu'ils se dirigent dans une direction (vous pouvez le voir illustré par les flèches). Ils sont acycliques (c'est-à-dire non cycliques) car les sommets ne reviennent pas sur eux-mêmes – si vous commencez à un point et suivez le graphique, vous ne pouvez pas revenir à ce même point. Cela deviendra plus clair sous peu.
De telles structures de données sont généralement utilisées pour modéliser des données. Vous pouvez vous appuyer sur un DAG dans les domaines scientifiques ou médicaux pour observer la relation entre les variables et déterminer leur impact les unes sur les autres. Par exemple, vous pouvez 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 afin d'établir comment ils affectent un patient.
Pour nos besoins, nous nous intéressons davantage à la manière dont ils peuvent contribuer à parvenir à un consensus dans un réseau de crypto-monnaie distribué.
Comment fonctionne un DAG ?
Dans une crypto-monnaie basée sur DAG, chaque sommet de la structure représente une transaction. Il n'y a pas de notion de blocs ici, et le minage n'est pas nécessaire pour étendre la base de données. Ainsi, au lieu de regrouper les transactions en blocs, chaque transaction est construite sur une autre. Néanmoins, une petite opération de preuve de travail est effectuée lorsqu'un nœud soumet une transaction. Cela garantit que le réseau n'est pas spammé et valide également 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 reconnue, cette transaction doit faire référence aux précédentes. Un peu comme la façon dont un bloc dans Bitcoin fait référence à celui qui l’a précédé, mais plusieurs transactions sont référencées.
Dans certains systèmes, un algorithme sélectionnera les transactions (ou « astuces ») sur lesquelles une nouvelle transaction doit s'appuyer. Les pourboires les plus susceptibles d’être sélectionnés sont ceux qui ont accumulé le plus de poids – une mesure du nombre de confirmations du chemin vers le pourboire.
Les transactions sur lesquelles Alice s'appuiera ne sont pas confirmées. Mais une fois qu'Alice y fait référence, ils se confirment. La transaction d'Alice n'est plus confirmée, donc quelqu'un d'autre doit s'appuyer sur elle avant qu'elle ne soit acceptée.
Les utilisateurs sont plus susceptibles de confirmer les transactions avec un poids « plus lourd » afin que le système continue de croître. Sinon, rien n’empêcherait les utilisateurs de continuer à s’appuyer 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 rejetteront tout bloc contenant des transactions conflictuelles. Comme il est très coûteux pour les mineurs de produire des blocs, ils sont incités à jouer équitablement.
Les DAG disposent également d’un mécanisme pour éviter les doubles dépenses. C'est un peu similaire, mais sans mineurs. Lorsqu'un nœud confirme des transactions plus anciennes, il évalue tout un chemin 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 invalide, 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 s’étendre sur cette voie particulière.
Cela semble peu intuitif au premier abord : ne pourriez-vous pas vous retrouver dans une situation où il existe plusieurs branches qui ne se connaissent pas ? Alors, les gens ne pourraient-ils pas dépenser les mêmes fonds dans ces différentes branches ?

C'est effectivement une possibilité, mais elle est résolue grâce à un algorithme de sélection qui favorise les pourboires ayant un poids accumulé plus important. Cela signifie qu'au fil du temps, vous vous retrouverez avec une branche beaucoup plus solide que les autres. Les plus faibles seront abandonnés et le réseau continuera à s’appuyer sur le plus lourd.
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 pourriez théoriquement « annuler » un bloc Bitcoin ou Ethereum, annulant ainsi toutes les transactions qu'il contient. Plus il y a de blocs ajoutés après celui dans lequel se trouve votre transaction, plus vous pouvez avoir confiance en celle-ci. C'est pourquoi il est recommandé d'attendre six confirmations avant de dépenser des fonds.
Dans un DAG tel que Tangle de IOTA, il existe une idée 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 astuces sélectionnées. 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 à se soucier de sélectionner les bonnes pointes du graphique. Sous le capot, son portefeuille pourrait faire ce qui suit :
Sélectionnez les pourboires importants (rappelez-vous que ce sont ceux avec le plus de confirmations accumulées).
Suivez le chemin des transactions précédentes pour vous assurer que les pourboires ont un solde suffisant à dépenser.
Une fois satisfaits, ils ajoutent leur transaction au DAG, confirmant ainsi 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 lors de la création d'une transaction.
➠ Vous cherchez à vous lancer dans la crypto-monnaie ? Achetez du Bitcoin sur Binance !
Avantages et inconvénients des graphiques acycliques dirigés
Avantages des DAG
Vitesse
Sans restriction de temps de blocage, n'importe qui peut diffuser et faire traiter ses transactions à tout moment. Il n'y a aucune limite sur le nombre de transactions que les utilisateurs soumettent, à condition qu'ils confirment les plus anciennes comme ils le font.
Pas d'exploitation minière
Les DAG n'utilisent pas les algorithmes de consensus PoW comme nous en avons l'habitude. Leur empreinte carbone ne représente ainsi qu’une fraction de celle des cryptomonnaies qui s’appuient sur le minage pour sécuriser leur réseau blockchain.
Aucun frais de transaction
Puisqu’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 somme modique soit versée à des types particuliers de nœuds. Des frais faibles (ou mieux, zéro frais) sont attrayants pour les micropaiements, car leur objectif est contrecarré par des frais de réseau importants.
Aucun problème d'évolutivité
Sans contraintes de temps de blocage, les DAG peuvent traiter beaucoup plus de transactions par seconde que les réseaux blockchain traditionnels. De nombreux partisans pensent que cela les rendra utiles 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é
Les protocoles qui s'appuient sur les DAG comportent divers éléments de centralisation. Pour certains, il s'agit censément 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’exposent à des vecteurs d’attaque qui pourraient éventuellement paralyser leurs réseaux.
Non testé à grande échelle
Bien que les crypto-monnaies basées sur DAG existent depuis quelques années, il leur reste encore un long chemin à parcourir avant d’être largement utilisées. En tant que tel, il est difficile de prédire quelles pourraient être les incitations des utilisateurs à exploiter le système à l’avenir.
Pensées finales
Les graphes acycliques dirigés sont certainement une technologie intéressante pour construire des réseaux de cryptomonnaies. Jusqu’à présent, relativement peu de projets utilisent la structure de données, et ils n’ont pas encore complètement évolué.
Cela dit, s’ils parviennent à exploiter leur potentiel, ils pourraient alimenter des écosystèmes extrêmement évolutifs. La technologie DAG présente une multitude de cas d'utilisation dans des domaines qui nécessitent un débit élevé et aucun frais, comme dans l'Internet des objets (IoT) et les micropaiements.



