Table des matières
Introduction
Qu'est-ce qu'un graphe acyclique orienté ?
Comment fonctionne un graphe acyclique orienté ?
Avantages et inconvénients des graphiques acycliques dirigés
Avantages des graphiques acycliques dirigés
Inconvénients des graphiques acycliques dirigés
Résumer
Introduction
Lorsque l’on pense aux crypto-monnaies, des concepts comme la blockchain ou la « technologie du grand livre distribué » nous viennent immédiatement à l’esprit. Depuis l’avènement du Bitcoin, des centaines de crypto-monnaies ont émergé sur le marché, et la plupart reposent sur une architecture de réseau similaire. Les utilisateurs peuvent transférer de la valeur ou interagir avec des applications décentralisées via ces structures de données.
Dans une blockchain, de nouveaux blocs sont régulièrement ajoutés à la chaîne en croissance. Chaque bloc est connecté au bloc précédent avec une sorte de lien cryptographique (un hachage, pour être précis). Chaque bloc contient les dernières transactions publiées par l'utilisateur.
Cependant, il y a généralement une période d'attente entre la publication d'une transaction et son inclusion dans un bloc, semblable à attendre un train à la gare. Selon la taille du wagon (taille du bloc) et le nombre de passagers en attente (transactions en attente), il se peut que les passagers ne parviennent pas à monter dans le prochain train, et même dans le suivant. Le temps d'attente pour la confirmation des transactions varie de quelques secondes à plusieurs heures.
Pour beaucoup, cela en vaut la peine. Après tout, ce moyen est très sécurisé et ne dépend pas d'une autorité de coordination centralisée. D'autres estiment que la technologie blockchain sera finalement obsolète. Les opposants pensent qu'à long terme, les problèmes de scalabilité entraveront l'adoption à grande échelle de la technologie blockchain.
Les partisans croient fermement que les futurs réseaux de paiement en cryptomonnaie seront construits sur une architecture complètement différente, c'est-à-dire sur des graphes orientés acycliques (ou 'DAG').
Qu'est-ce qu'un graphe orienté acyclique ?
Un graphe orienté acyclique est une structure de données radicalement différente, pouvant être considérée comme une base de données reliant différentes informations. 'Graphe orienté acyclique' est un concept riche en informations, décomposons-le étape par étape.

Graphe orienté acyclique.
Conceptuellement, un graphe orienté acyclique est similaire à celui illustré ci-dessus, composé de sommets (sphères) et d'arêtes (lignes). Les deux ont une orientation, pointant dans une seule direction (comme le montre la flèche), et ils sont acycliques, c'est-à-dire qu'il n'y a pas de boucle, les sommets ne retournent pas au point de départ initial, ce qui signifie que si nous commençons à un point, en suivant le graphe, nous ne pouvons pas revenir au même point. Nous continuerons à expliquer cela en détail.
Cette structure de données est généralement utilisée pour la modélisation des données. Dans les domaines scientifique ou médical, les graphes orientés acycliques sont utilisés pour observer les relations entre les variables et déterminer leurs interactions. Par exemple, nous utilisons ce graphe pour établir des liens entre la nutrition, les cycles de sommeil et les symptômes corporels, afin de déterminer l'impact de ces indicateurs sur les patients.
Nous sommes donc plus préoccupés par la façon d'utiliser ce graphe pour atteindre le consensus dans un réseau de cryptomonnaie distribué.
Comment fonctionne un graphe orienté acyclique ?
Dans une cryptomonnaie basée sur un graphe orienté acyclique, chaque sommet de la structure représente une transaction. Il n'y a pas de concept de blocs, ni de minage nécessaire pour étendre la base de données. Ainsi, les transactions ne sont pas regroupées dans des blocs, mais se construisent sur une autre transaction. Lorsqu'un nœud soumet une transaction, il existe encore une petite quantité de preuve de travail, ce qui garantit que le réseau n'est pas perturbé par les spams, tout en vérifiant les transactions précédentes.
Pour ajouter une nouvelle transaction, elle doit être construite sur une transaction antérieure. Supposons qu'Alice crée une nouvelle transaction. Pour obtenir une confirmation, cette transaction doit faire référence à des transactions antérieures, ce qui est quelque peu similaire à la référence d'un bloc à un bloc précédent dans Bitcoin, sauf qu'ici, il doit référencer plusieurs transactions.
Dans certains systèmes, l'algorithme choisit sur quelles transactions (ou 'extrémités') la nouvelle transaction doit être construite. Plus le poids cumulatif des extrémités est élevé, plus il est facile d'être sélectionné. Le poids cumulatif peut mesurer le nombre de confirmations sur le chemin menant aux extrémités.
Alice est sur le point de créer une transaction sur la transaction ci-dessus qui n'est pas encore confirmée. Cependant, une fois que ces transactions sont référencées par Alice, elles obtiendront une confirmation. La transaction actuelle d'Alice n'est pas encore confirmée, donc d'autres doivent créer des transactions au-dessus avant que cette transaction ne soit acceptée.
Les utilisateurs préfèrent confirmer les transactions ayant un poids 'plus élevé', permettant ainsi au système de continuer à se développer. Sinon, les utilisateurs créeraient sans réserve des transactions sur d'anciennes transactions.
La blockchain peut facilement prévenir les problèmes de double dépense. Un même fonds ne peut pas être utilisé deux fois dans un bloc, et les nœuds peuvent facilement détecter de telles tentatives et refuser tous les blocs contenant des transactions conflictuelles. Le coût de la production de blocs pour les mineurs est très élevé, donc le mécanisme les incite à rivaliser équitablement.
Les graphes orientés acycliques peuvent également prévenir les problèmes de double dépense, le mécanisme étant similaire, mais sans participation des mineurs. En confirmant des transactions plus anciennes, les nœuds évaluent le chemin complet jusqu'à la première transaction du graphe orienté acyclique pour s'assurer que le solde de l'expéditeur est suffisant. Il peut y avoir de nombreux chemins, mais il suffit de valider un seul chemin.

Si un utilisateur construit sa transaction sur un chemin invalide, cela entraînera l'ignorance de sa transaction. Peut-être que les transactions de ces utilisateurs sont valides, mais en raison de l'invalidité de la transaction précédente, personne ne souhaite étendre ce chemin.
À première vue, cela semble peu intuitif - ne peut-il pas y avoir une situation où plusieurs branches différentes ignorent complètement l'existence des autres ? Alors, un utilisateur pourrait-il dépenser les mêmes fonds sur différentes branches ?

Il y a effectivement une telle possibilité. Cependant, en renforçant le poids cumulatif des extrémités par un algorithme de sélection, ce problème peut être résolu. Cela signifie qu'avec le temps, une certaine branche prospérera plus que les autres. Les branches plus faibles seront abandonnées, et le réseau continuera à se développer sur la branche ayant le poids le plus élevé.
Comme dans le cas de la blockchain, ce réseau n'a pas de confirmation absolue, et nous ne pouvons jamais être complètement certains qu'une transaction ne sera pas renversée. Bien que la probabilité soit très faible, en théorie, les blocs de Bitcoin ou Ethereum peuvent être 'annulés', entraînant l'inversion de toutes les transactions qu'ils contiennent. Plus il y a de blocs ajoutés après la transaction, plus la sécurité de cette transaction devient rassurante. C'est pourquoi nous conseillons aux utilisateurs d'attendre six confirmations avant d'investir des fonds.
Dans des graphes orientés acycliques comme le tanglement d'IOTA, il existe un concept appelé 'confiance de confirmation'. L'algorithme de sélection exécute 100 fois et calcule le nombre de transactions directement ou indirectement approuvées parmi les extrémités sélectionnées. Plus le pourcentage est élevé, plus la confiance que la transaction reste dans l'état 'réglementé' est grande.
Cela semble cependant entraîner une détérioration de l'expérience utilisateur. Mais ce n'est pas le cas. Si Alice envoie 10 MagicDAGTokens à Bob, elle n'a pas à s'inquiéter de savoir si elle a choisi la bonne extrémité dans le graphe, car son portefeuille exécutera les opérations suivantes en arrière-plan :
Choisir des extrémités à fort poids (rappelez-vous, ce sont celles ayant le plus d'informations de confirmation cumulées).
Suivre le chemin pour revenir aux transactions précédentes afin de s'assurer que l'extrémité dispose de suffisamment de fonds pour le paiement.
Si ces conditions sont remplies, la transaction sera ajoutée au graphe orienté acyclique, et la transaction créée sera confirmée.
Pour Alice, c'est le processus habituel de fonctionnement des cryptomonnaies. Elle saisit l'adresse de Bob et le montant qu'elle souhaite payer, puis appuie sur envoyer. La liste ci-dessus est le travail de preuve de travail que chaque participant doit exécuter lors de la création d'une transaction.
➠ Vous voulez commencer votre voyage dans les cryptomonnaies ? Rendez-vous sur Binance pour acheter du Bitcoin !
Avantages et inconvénients des graphes orientés acycliques
Avantages des graphes orientés acycliques
Vitesse
Il n'y a pas de limite de temps pour la création de blocs, tout le monde peut publier et traiter des transactions à tout moment. Tant que les transactions plus anciennes sont confirmées, les utilisateurs ne sont pas limités dans le nombre de transactions qu'ils soumettent.
Pas de minage
Les graphes orientés acycliques n'utilisent pas d'algorithme de consensus basé sur la preuve de travail conventionnelle. Comparé à la cryptomonnaie qui dépend du minage pour maintenir le réseau blockchain, l'empreinte carbone des graphes orientés acycliques est minime.
Pas de frais de transaction
Puisqu'il n'y a pas de mineurs, les utilisateurs n'ont pas à payer de frais pour publier des transactions, bien qu'ils puissent parfois devoir payer de petits frais à certains types de nœuds. Des frais bas (de préférence gratuits) sont très attrayants pour les utilisateurs de paiements de faible montant, car des frais réseau élevés pourraient les faire travailler en vain.
Pas de problèmes de scalabilité
Comparé aux réseaux blockchain traditionnels, les graphes orientés acycliques ne sont pas soumis à des limites de temps de création de blocs, et le nombre de transactions traitées par seconde est beaucoup plus élevé. De nombreux partisans croient que cela rend les graphes orientés acycliques plus précieux dans divers cas d'utilisation de l'Internet des objets (IoT) où plusieurs machines interagissent.
Inconvénients des graphes orientés acycliques
Pas entièrement décentralisé
Les protocoles basés sur des graphes orientés acycliques ont diverses caractéristiques centralisées. Certains estiment qu'il s'agit d'une solution à court terme pour lancer le réseau, mais il reste à voir si les graphes orientés acycliques peuvent prospérer sans intervention de tiers. En cas d'échec, cela ouvrirait la porte aux vecteurs d'attaque, ce qui pourrait gravement nuire au réseau.
Pas encore testé à grande échelle
Bien que les cryptomonnaies basées sur des graphes orientés acycliques aient été lancées depuis quelques années, leur large adoption prendra encore du temps. Il est donc difficile de prédire quel type de mécanisme d'incitation les utilisateurs auront à l'avenir en utilisant ce système.
Résumé
Il ne fait aucun doute que les graphes orientés acycliques représentent une technologie passionnante pour construire un réseau de cryptomonnaie. Jusqu'à présent, les projets utilisant cette structure de données sont relativement rares et n'ont pas encore atteint leur maturité.
Cela dit, tant que les graphes orientés acycliques réalisent leur potentiel, ils devraient fournir une source d'énergie pour de nombreux écosystèmes scalables. Dans des domaines nécessitant un haut débit et une gratuité, la technologie des graphes orientés acycliques a d'innombrables cas d'utilisation, tels que l'Internet des objets (IoT) et les paiements de faible montant.
