Tout sur le Bitcoin et les Altcoins
Les crypto monnaies s’appuient sur la révolution Blockchain au coeur de laquelle se trouve la notion essentielle d’Algorithme de Consensus. Un tel algorithme est crucial pour une crypto monnaie puisqu’il permet de la prémunir contre le risque de "Double-spending", c’est-à-dire qu’il évite qu’un même token soit dépensé plus d’une fois. Ce risque existe car un token n’est en fait rien d’autre qu’un fichier digital qui, dans l’absolu, peut être dupliqué ou falsifié.
Cette problématique de "Double-spending" a longtemps été un frein historique dans la conception et le déploiement de monnaies virtuelles. La technologie Blockchain avec son grand livre de comptes, qui ne peut être écrit qu’en mode ajout, a apporté une réponse satisfaisante à ce problème comme nous l’avons vu dans "La Blockchain pour les Nuls". Toutes les transactions réalisées sur la Blockchain étant publiques, il est nécessaire qu’un Algorithme de Consensus soit utilisé pour vérifier que les transactions envoyées sur le réseau sont valides.
Un Algorithme de Consensus est donc un processus informatique servant à atteindre un accord au sein d’un système distribué sur la valeur unique de données.
Les Algorithmes de Consensus des crypto monnaies ont été conçus afin de garantir la fiabilité des données d’un réseau engageant plusieurs noeuds dont certain peuvent ne pas être fiables. Puisque certains noeuds peuvent potentiellement ne pas être fiables et que certains échanges peuvent être tout simplement perdus, les Algorithmes de Consensus se doivent d’être tolérants aux erreurs. Ils vont donc partir du postulat que seulement une portion de noeuds du réseau va répondre mais que sur cette portion au moins 51% vont renvoyer la même réponse.
La satisfaction de ce problème de consensus est essentielle pour garantir la sécurité des transactions en crypto monnaies au sein d’une Blockchain.
Alors que plus de 1500 crypto monnaies existent actuellement, il y a globalement 5 implémentations principales d’Algorithmes de Consensus. Chaque implémentation apportant son lot d’avantages et d’inconvénients. Dans cet article, nous vous proposons un rapide tour d’horizon des Algorithmes de Consensus suivants :
La Preuve de Travail est l’Algorithme de Consensus historique puisqu’implémenté avec succès dans la Blockchain Bitcoin depuis bientôt 10 ans. Ce modèle de consensus a été retenu par de nombreuses autres crypto monnaies par la suite à commencer par Ethereum, le concurrent le plus sérieux du Bitcoin, Litecoin, Zcash ou encore Monero, la monnaie virtuelle intraçable.
La Preuve de Travail nécessite que les participants exécutent des calculs informatiques particulièrement exigeants en puissance machine. Dans le cas du Bitcoin, les mineurs rentrent en compétition afin d’ajouter au grand livre de comptes un ensemble de transactions regroupé au sein de blocs. Pour réaliser avec succès cet ajout, un mineur doit être le premier à résoudre une énigme informatique. Cette énigme consiste à trouver la valeur "nonce" qui est le nombre à ajouter à la fin d’une chaîne de caractères pour créer le hash commençant par le nombre de zéros requis par la Blockchain. Pour plus de détails, sur le sujet, nous vous invitons à lire notre article expliquant comment fonctionne le minage de Bitcoins. En outre, notre article détaillant comment créer sa propre Blockchain en 30 minutes constitue une ressource particulièrement intéressante sur la question.
Le fait que la Proof of Work fonctionne avec succès depuis bientôt 10 ans est probablement l’argument le plus fort en sa faveur. En effet, les autres Algorithmes de Consensus que nous allons vous présenter ici ne peuvent en dire autant. Néanmoins, la Proof of Work est un algorithme très coûteux en puissance machine et donc en énergie. La durée de validation devenant de plus en plus longue avec le temps, les transactions mettent de plus en plus de temps à être validées ce qui est rédhibitoire pour une adoption en masse du Bitcoin en tant que système de paiement par exemple.
Il existe plusieurs formes d’implémentation de la Preuve d’Enjeu dans les Blockchains actuelles. Cependant, quelle que soit l’implémentation considérée, il est nécessaire que les participants mettent en jeu une partie des tokens qu’ils possèdent dans le but de valider les transactions. Le fonctionnement est donc différent des Blockchains basées sur la Preuve de Travail au sein desquelles les mineurs valident les blocs en réalisant des calculs complexes.
L’équivalent des mineurs participant à la validation des transactions dans la Preuve d’Enjeu est appelé "minters" en Anglais. Afin de valider une transaction, les minters sont sélectionnés à partir des critères suivants :
Comme nous avions pu le voir dans notre article mettant en exergue ce qui différencie la Preuve de Travail de la Preuve d’Enjeu, la Proof of Work va s’avérer extrêmement consommatrice en puissance de calculs et en énergie alors que la Proof of Stake va plutôt décourager les mauvais comportements en mettant le travail de vérification aux mains des personnes les plus fidèles et les plus importantes d’un réseau. Ces derniers ayant le plus intérêt à ce que le réseau réussisse.
Il est bon de préciser que les minters mettant en jeu des tokens pour chaîner des blocs vont perdre ces tokens si les blocs sont frauduleux. On comprend donc bien l’intérêt d’éviter tout mauvais comportement lorsque l’on met en jeu ses tokens. Actuellement, la Preuve d’Enjeu est en cours d’implémentation dans la crypto monnaie Ethereum qui souhaite donc se séparer de la Preuve de Travail afin d’augmenter le nombre de transactions maximum qu’elle peut valider à la seconde.
Pour conclure sur la Proof of Stake, on retiendra qu’il s’agit d’un Algorithme de Consensus beaucoup moins consommateur d’énergie, et donc moins coûteux, que la Proof of Work. En sus, il est théoriquement meilleur que ce dernier pour détecter et prévenir les attaques du réseau. Néanmoins, il est plus récent et n’a pas encore fait ses preuves à grande échelle comme la Proof of Work avec le Bitcoin.
De par son nom, la Preuve d’Enjeu Déléguée devrait être proche de la Preuve d’Enjeu mais, en réalité, les détails de son implémentation sont différents de manière significative. Dans la Delegated Proof of Stake (DPoS), les participants à la validation des blocs ne vont pas mettre en jeu des tokens. A contrario, les possesseurs de tokens vont voter pour sélectionner un groupe d’utilisateurs qui seront en charge de la validation des blocs.
A la lecture de ce mode de fonctionnement, on peut se demander si la DPoS est réellement décentralisée puisque seul un groupe désigné va valider les transactions. En réalité, le côté décentralisé est conservé pour la sélection des délégués, en charge de la validation des blocs, puisque n’importe quel participant au réseau peut participer au vote de désignation. Le côté centralisé se retrouve dans le fait que seul un petit groupe va prendre la décision de valider ou non les blocs. Ce choix permet d’augmenter la vitesse de validation des transactions.
Afin de garantir une très grande qualité dans les délégués élus, les implémentations de la DPoS vont permettre d’associer une réputation à chacun d’entre eux ce qui permettra à chaque participant au réseau d’effectuer le meilleur choix possible à chaque élection. En outre, un système de brassage permet de changer de validateurs régulièrement ce qui permet de maintenir des délégués fiables et honnêtes.
La Delegated Proof of Stake est un algorithme particulièrement scalable qui permet une validation ultra rapide des transactions. Des crypto monnaies plus récentes comme Steemit, EOS ou BitShares l’utilisent au sein de leurs Blockchains. Le fait que cet algorithme rende les Blockchains l’utilisant plus centralisées et que son mode de gouvernance n’ait pas été réellement éprouvé dans la durée pose cependant question. Il faudra observer avec attention son efficacité avec EOS qui se veut être un Ethereum-killer et qui est désormais dans le Top 5 des crypto monnaies en ce mois de Mai 2018.
La Byzantine Fault Tolerance, ou BFT, est un algorithme particulièrement technique dans lequel des généraux (les validateurs en rapportant au contexte Blockchain) vont gérer l’état de la Blockchain en échangeant des messages jusqu’à l’obtention d’un consensus afin de garantir que les transactions enregistrées sont valides.
L’Algorithme de Consensus BFT est utilisé par Ripple, une crypto monnaie qui a le vent en poupe, ou encore Stellar, qui se voit en système bancaire du futur. Dans le cas de Ripple, les validateurs sont présélectionnés de manière arbitraire par la fondation Ripple ce qui rajoute encore un niveau de centralisation supplémentaire. Dans la Blockchain Stellar, en revanche, n’importe quel utilisateur peut devenir validateur et le choix se fait au niveau de la communauté.
BFT est un algorithme avantageux par le degré important de scalabilité qu’il confère aux Blockchains l’utilisant avec des frais de transactions très faibles mais là encore, cela vient au prix d’une centralisation plus grande.
L’Algorithme de Consensus Delegated Byzantine Fault Tolerance, ou DBFT, est l’implémentation spécifique de la BFT réalisée par NEO pour sa Blockchain. Se voulant la Blockchain de la "Smart Economy", NEO a adapté l’algorithme BFT en rajoutant une notion de consensus obtenu aux deux tiers des noeuds délégués, les "Bookkeeping Nodes". Là encore, il y a un degré de centralisation supplémentaire puisque la validation est réalisée par un groupe désigné de validateurs. La désignation se réalisant via un vote des membres du réseau NEO. Pour plus de détails, nous vous invitons à lire notre introduction complète sur le fonctionnement de l’Algorithme de Consensus de NEO.
Un Algorithme de Consensus étant essentiel au bon fonctionnement et à la puissance d’une Blockchain, la recherche d’améliorations dans le domaine ne s’arrête jamais. De fait, certains nouveaux projets de Blockchains n’hésitent pas à proposer de nouvelles approches innovantes. Certaines pouvant, peut-être, un jour prendre le pas sur les Algorithmes de Consensus les plus répandus actuellement.
Dans ce contexte, l’approche de consensus basée sur les graphes acycliques décentralisés, ou Decentralized Acyclic Graphs (DAG) en Anglais, est prometteuse et reçoit une attention certaine actuellement. Nous y reviendrons dans un futur article. Parmi les crypto monnaies s’appuyant sur cette approche, on pourra citer Hashgraph, Block lattice ou encore le fameux Tangle au coeur de la crypto monnaie IOTA. Il faudra suivre l’évolution de ces algorithmes dans les prochains mois.
A la lecture de cet article, vous aurez compris, qu’à l’heure d’aujourd’hui, les Algorithmes de Consensus des Blockchains sont un compromis subtil entre scalabilité et degré de centralisation. L’avenir du domaine s’annonce donc particulièrement fascinant et nous verrons quelles solutions seront imaginées pour obtenir des mécanismes de consensus permettant un haut niveau de scalabilité tout en garantissant une décentralisation maximum. De même, il sera intéressant de voir comment les communautés derrière les projets des principales crypto monnaies arriveront in fine à incorporer ces éventuelles évolutions à leurs plateformes techniques.