Algorithme de consensus
Un algorithme de consensus est un mécanisme qui permet aux utilisateurs ou aux machines de se coordonner dans un cadre distribué. Il doit garantir que tous les agents du système peuvent se mettre d'accord sur une source unique de vérité, même si certains agents font défaut. En d'autres termes, le système doit être tolérant aux pannes (voir également : La tolérance aux pannes byzantine expliquée).
Dans une configuration centralisée, une seule entité a le pouvoir sur le système. Dans la plupart des cas, elle peut apporter des modifications à sa guise - il n'y a pas de système de gouvernance complexe pour parvenir à un consensus entre de nombreux administrateurs.
Mais dans une configuration décentralisée, c'est une toute autre histoire. Imaginons que nous travaillions avec une base de données distribuée : comment parvenir à un accord sur les entrées à ajouter ?
Surmonter ce défi dans un environnement où les étrangers ne se font pas confiance a peut-être été le développement le plus crucial ouvrant la voie aux blockchains. Dans cet article, nous allons voir comment les algorithmes de consensus sont essentiels au fonctionnement des crypto-monnaies et des grands livres distribués.
Algorithmes de consensus et crypto-monnaies
Dans les crypto-monnaies, les soldes des utilisateurs sont enregistrés dans une base de données - la blockchain. Il est essentiel que chacun (ou plus précisément, chaque nœud) conserve une copie identique de la base de données. Sinon, on se retrouverait rapidement avec des informations contradictoires, ce qui compromettrait l'objectif même du réseau de crypto-monnaies.
La cryptographie à clé publique garantit que les utilisateurs ne peuvent pas dépenser les pièces des autres. Mais il faut quand même une source unique de vérité à laquelle les participants au réseau se fient pour déterminer si les fonds ont déjà été dépensés.
Satoshi Nakamoto, le créateur de Bitcoin, a proposé un système de preuve de travail pour coordonner les participants. Nous verrons bientôt comment fonctionne le PoW. Pour l'instant, nous allons identifier certains traits communs aux nombreux algorithmes de consensus existants.
Tout d'abord, nous demandons aux utilisateurs qui veulent ajouter des blocs (nous les appellerons les validateurs) de fournir un enjeu. L'enjeu est une sorte de valeur qu'un validateur doit mettre en avant, ce qui le dissuade d'agir de manière malhonnête. S'il triche, il perd son enjeu. Il peut s'agir par exemple de puissance de calcul, de crypto-monnaies ou même de réputation.
Pourquoi se donneraient-ils la peine de risquer leurs propres ressources ? Eh bien, il y a aussi une récompense disponible. Il s'agit généralement de la crypto-monnaie native du protocole et elle est constituée de frais payés par d'autres utilisateurs, d'unités de crypto-monnaie fraîchement générées, ou des deux.
La dernière chose dont nous avons besoin est la transparence. Nous devons être en mesure de détecter si quelqu'un triche. Idéalement, il devrait être coûteux pour eux de produire des blocs, mais peu coûteux pour quiconque de les valider. Cela garantit que les validateurs sont contrôlés par les utilisateurs réguliers.
Types d'algorithmes de consensus
Besoin d'aide ?
Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !