Algorithmes de consensus de la blockchain expliqués
Les blockchains ont été rendues possibles grâce au développement d'un mécanisme crucial appelé algorithme de consensus, qui facilite la coordination entre utilisateurs ou machines dans un environnement distribué. La fonction principale de cet algorithme est de garantir que tous les agents du système peuvent s'accorder sur une seule source de vérité, même si certains agents échouent. Cette tolérance aux pannes est essentielle au succès du système.
Contrairement à une configuration centralisée, où une entité unique a le contrôle total du système et peut effectuer des modifications à sa guise, un format décentralisé présente un défi important. Dans le cas d'une base de données distribuée, par exemple, comment décider quelles entrées doivent être ajoutées ?
La réponse réside dans la mise en place d'un système de gouvernance complexe qui permet à des inconnus qui ne se font pas confiance de parvenir à un consensus. Surmonter ce défi a été une étape majeure dans le développement des blockchains, qui reposent sur des algorithmes de consensus pour garantir l'intégrité du système.
Algorithmes de consensus dans la crypto
La blockchain sert de base de données aux cryptomonnaies en enregistrant les soldes des utilisateurs. Tous les nœuds du réseau doivent conserver une copie identique de la base de données pour éviter les informations contradictoires, ce qui compromettrait l'objectif même du réseau de cryptomonnaie.
La cryptographie à clé publique est utilisée pour garantir que les utilisateurs ne peuvent pas dépenser les pièces des autres. Cependant, une source unique de vérité reste nécessaire pour que les participants du réseau puissent déterminer si des fonds ont déjà été dépensés.
Pour coordonner les participants dans Bitcoin, son créateur Satoshi Nakamoto a proposé un système de Proof of Work (Preuve de travail), que nous expliquerons bientôt. Mais avant cela, examinons les traits communs des algorithmes de consensus.
Premièrement, les validateurs qui souhaitent ajouter des blocs doivent fournir une mise (stake), ce qui décourage les comportements malhonnêtes. La mise peut prendre la forme de puissance de calcul, de cryptomonnaie ou de réputation. S'ils trichent, ils perdront leur mise. Une récompense est disponible, constituée de la cryptomonnaie native du protocole, qui comprend les frais payés par d'autres utilisateurs, des unités nouvellement générées, ou les deux.
Enfin, la transparence est vitale pour détecter la triche. Il devrait être coûteux pour les validateurs de produire des blocs, mais peu coûteux pour les autres de les valider. Cela garantit que les validateurs sont contrôlés par les utilisateurs ordinaires.
Les algorithmes de consensus les plus courants
Proof of Work
La Proof of Work est un algorithme de consensus ancien popularisé par Bitcoin mais qui existait déjà auparavant. Cet algorithme exige que les validateurs, appelés mineurs, hachent les données qu'ils veulent ajouter à la chaîne jusqu'à trouver une solution spécifique. Un hash est une chaîne de lettres et de chiffres générée lorsque des données sont passées par une fonction de hachage, et modifier même un petit détail produira une sortie complètement différente.
Le protocole Proof of Work impose certaines conditions pour qu'un bloc soit considéré valide. Par exemple, un bloc dont le hash commence par 00 pourrait être considéré comme valide. Pour créer un bloc qui correspond à ces critères, les mineurs doivent tester par force brute des entrées, en ajustant des paramètres de données jusqu'à obtenir le bon hash. Sur les blockchains majeures, le niveau requis est très élevé, et les mineurs ont besoin de beaucoup de matériel de hachage spécialisé et d'électricité pour être compétitifs.
Dans le système Proof of Work, les mineurs doivent fournir une mise sous la forme du coût des machines et de l'électricité nécessaire pour miner. Les ASICs, ou matériels de minage spécialisés, sont coûteux et n'ont pas d'utilité en dehors du minage de cryptomonnaie. Cependant, le minage peut rapporter des récompenses significatives pour l'ajout réussi d'un nouveau bloc à la blockchain.
Il est facile pour le réseau de vérifier si un mineur a créé un bloc valide. Même s'ils ont essayé des billions de combinaisons pour obtenir le bon hash, le réseau n'a besoin d'exécuter la fonction de hachage qu'une seule fois sur les données. Si les données produisent un hash valide, le mineur obtient la récompense ; sinon, le réseau rejettera le bloc.
Proof of Stake
Une alternative à la Proof of Work, connue sous le nom de Proof of Stake (Preuve d'enjeu), a été proposée dès les premiers jours de Bitcoin. Elle élimine le besoin de matériel spécialisé, de consommation énergétique massive et de mineurs. À la place, elle exige que les stakers détiennent un montant minimum de cryptomonnaie pour être éligibles au staking.
Une fois éligible, le staker verrouille ses fonds dans un portefeuille et s'accorde avec d'autres validateurs sur les transactions qui constitueront le prochain bloc. Le protocole choisit ensuite un bloc, et le valideur dont le bloc est sélectionné reçoit une part des frais de transaction proportionnelle à sa mise. Plus de fonds sont verrouillés, plus le profit est élevé. La triche entraîne la perte d'une partie ou de la totalité de la mise.
La Pure Proof of Stake n'a été utilisée que dans des cryptomonnaies plus petites, et sa viabilité comme alternative crédible au PoW reste incertaine. En général, il n'y a pas de pièces fraîchement créées faisant partie de la récompense pour les validateurs. La monnaie native de la blockchain doit donc être émise d'une autre manière, comme une distribution initiale (par exemple une ICO ou IEO) ou en lançant le protocole en PoW avant de migrer ensuite vers PoS.
La transition vers le PoS est un terrain de jeu pour la théorie des jeux et les incitations financières. Elle ne sera faisable que sur un réseau en activité, car quiconque aurait le savoir-faire pour "pirater" un système PoS ne le ferait que si cela lui rapportait.
Autres algorithmes de consensus
Il existe une variété d'algorithmes de consensus en dehors de la Proof of Work et de la Proof of Stake. Ces alternatives ont chacune leurs avantages et leurs inconvénients. Voici une liste de certains d'entre eux :
- Delayed Proof of Work
- Leased Proof of Stake
- Proof of Authority
- Proof of Burn
- Delegated Proof of Stake
- Hybrid PoW/PoS Consensus
Conclusion
L'utilisation de mécanismes de consensus est vitale pour le fonctionnement des systèmes distribués. On considère largement que l'innovation la plus significative de Bitcoin a été l'introduction de la Proof of Work, qui facilite l'accord entre utilisateurs sur un ensemble partagé de faits.
Les algorithmes de consensus sont le fondement des systèmes de monnaie numérique et des blockchains, permettant aux développeurs d'exécuter du code sur un réseau distribué. Ils constituent un élément fondamental de la technologie blockchain, et la viabilité à long terme des réseaux existants en dépend.
La Proof of Work reste l'algorithme de consensus le plus répandu, et aucune alternative plus fiable ou plus sûre n'a encore émergé. Néanmoins, un énorme volume de recherche et développement est consacré au remplacement du PoW, et de nouvelles alternatives devraient apparaître dans les années à venir.