Les maths ont toujours fasciné un grand nombre, de par leur complexité et leur exigence. Dans l'univers d'Algorand, l'aléatoire est la base pour prendre les bonnes décisions… et tout fonctionne parfaitement.
Plongeons-nous ensemble dans cet univers paradoxal et essayons de comprendre comment Algorand redéfinit la blockchain traditionnelle.
Contexte
Dans les années 2009, le monde découvre le Bitcoin, première cryptomonnaie décentralisée (créée par une personne ou un groupe dont nous ignorons encore aujourd’hui l’identité, tout ce que nous savons, c’est le pseudonyme, Satoshi Nakamoto).
L’Objectif est de permettre des paiements pair-à-pair sans intermédiaire, sans banque et sans autorité centrale, mais concentrons-nous ici sur la blockchain. La blockchain de Bitcoin est un registre public qui enregistre toutes les transactions depuis la création du réseau. Celle-ci s’est imposée comme une technologie offrant de multiples avantages : transparence, immuabilité et confiance distribuée.
Toutefois, il reste la question du « Comment atteindre un record entre des participants non fiables et en grand nombre ? ».
Les premières blockchains se sont basées sur le système du Proof-of-Work (PoW), Malheureusement, vite limité, le PoW, par sa manière de fonctionner, est victime d’une consommation énergétique gourmande et d’un faible débit transactionnel. Pour contrer ces limites, va naître, Algorand, une blockchain créée par Silvio Micali (lauréat du prix Turing 2012, avec Shafi Goldwasser pour leurs travaux en cryptographie.).
Micali propose l’algorithme suivant : le Pure Proof-of-Stake (PPoS).
Cet algorithme est prometteur, il allie la sécurité, l’efficacité et la véritable décentralisation promue par le Bitcoin, c’est une véritable prouesse dans l’écosystème blockchain.
De plus, plusieurs figures influentes soutiennent PPoS, en particulier on peut citer, Vitalik Buterin, le fondateur d’Ethereum, en défendant la décision de transitionner d’Ethereum d’un modèle PoW à un PoS, en relevant que le Proof-of-Stake pourrait « résoudre les problèmes environnementaux des cryptos ».
Entrons donc maintenant, dans le vif du sujet en découvrant comment fonctionne PPoS, puis comprenons ses objectifs, ses mécanismes internes et finissons sur ses avantages et ses limites dans l’environnement blockchain.
Fonctionnement de PPoS et objectifs
Comme nous l’avons expliqué plus haut, il a fallu créer un nouvel algorithme de consensus, car même si le PoW garantissait la sécurité par la puissance de calcul, la contrepartie était une consommation énergétique pharaonique et un risque bien réel de centralisation (on parle ici de mining pools).
Pour pallier ce problème, viennent en premier les versions classiques du Proof-of-Stake, offrant la réduction de consommation, mais hélas souffrant de plusieurs failles, comme le fait d’avoir une concentration des pouvoirs entre les plus gros détenteurs de tokens (ou « jeton », actif numérique émis sur une blockchain, transférable entre participants, sans le besoin d’un ou plusieurs intermédiaire(s).).
On parle du ‘’nothing at stake ‘’, incitant les validateurs à signer plusieurs chaines, ce qui a pour résultat la possibilité de corruption si un attaquant malveillant parvient à cumuler assez de tokens.
PPoS d’Algorand est la solution à ces limitations : il offre un système où le pouvoir est proportionnel à la quantité de tokens, mais là où le PPoS d’Algorand dépasse ses prédécesseurs, c’est qu’il sélectionne les validateurs aléatoirement, et cette sélection, nous ne pouvons ni l’anticiper ni la manipuler, ni la corrompre.
Mécanismes Internes
Revenons plus en détail sur le principe du Pure-of-Stake. Le cœur même du PPoS repose sur le concept appelé « cryptographic sortition ».
La sélection des participants qui vont proposer ou valider un bloc étant entièrement aléatoire et totalement vérifiable par tous. Chaque détenteur d’ALGO (référence aux participants du réseau Algorand) a une chance de participer à la validation, proportionnelle à la quantité qu’il possède, mais sans qu’aucun ne sache à l’avance qui sera sélectionné. Cela signifie plusieurs choses : il n’y aura pas besoin de verrouiller des fonds (principe de stacking classique), ni de validateurs permanents, pas de compétition entre nœuds (nœud désignant un ordinateur ou un participant connecté à la blockchain), cela offre donc un très haut niveau de résistance aux attaques.
L’algorithme se déroule en rounds, un round permet de proposer et confirmer un bloc. Chaque round vit deux phases : premièrement, la sélection du proposeur de bloc et, deuxièmement, la sélection d’un comité de validation.
La "cryptographic sortition", ou "tirage au sort cryptographique" en français, est la clé de cet algorithme. L'idée est la suivante : chaque utilisateur lance une fonction vérifiable appelée VRF (Verifiable Random Function).
Cette fonction va prendre en entrée une clé privée et un seed aléatoire provenant du bloc précédent, elle retourne un ‘’score aléatoire’’ (ici il est plus question de pseudo-aléatoire).
De ce fait, si ce score est inférieur à un seuil établi par l’algorithme lui-même (proportionnel au nombre d’ALGO possédés), l’utilisateur est sélectionné soit en tant que proposeur, soit comme membre du comité de validation. La sélection se fait de manière individuelle, le participant sait à l’instant t s’il a été sélectionné, et ce sans que cette information soit révélée aux autres membres. Les membres n’apprendront cette information que lorsque le membre choisi publiera un message contenant sa preuve VRF.
Concernant le déroulement d’un round PPoS, un seul participant est choisi comme proposeur, ensuite il diffuse un message contenant l’intégralité des transactions en attente ainsi que sa preuve VRF.
Les autres nœuds vont vérifier : que la preuve est correcte et que le participant sélectionné avait bien la quantité d’ALGO lui permettant d’être sélectionné.
Note :
Il est intéressant de mentionner le cas, très rare, où il y a plusieurs proposeurs. Le processus se déroule alors de cette manière : un bloc est déterminé comme prioritaire en fonction d’un critère lié au score aléatoire. Plus précisément, le bloc est choisi si le proposeur de ce dernier possède le meilleur score aléatoire par rapport aux autres. Selon la convention choisie, il s'agit soit de celui qui a le plus petit ou le plus grand score.
Ensuite l’algorithme va former un comité de validation aléatoire, il sera composé d’un grand groupe, sa mission sera d’approuver ou rejeter le bloc proposé. Le processus se déroule en 3 grandes étapes : les membres valident ou rejettent la structure du bloc et les transactions.
S'il existe plusieurs blocs validés, un tri par priorité écarte les blocs non retenus. Et enfin l’étape finale est le vote final, un second comité vote pour certifier le bloc. Si 2/3 de l’ensemble du comité l’emportent, le bloc est additionné à la chaîne.
Contrairement au Bitcoin ou même à l'Ethereum, où plusieurs blocs peuvent être candidats et où la finalité est probabiliste, PPoS offre une finalité immédiate. Dès qu’un bloc est certifié, il est irréversible, il n’existe pas de forks durables, la chaîne progresse de manière stable.
Soulignons ce qu’offre PPoS en termes de sécurité : il rend impossible d’anticiper qui sera validateur.
En effet, attaquer nécessiterait de corrompre une grande partie de la communauté et ce simultanément et instantanément, et prenons le cas suivant : l’attaquant possède une part minoritaire des tokens, il n’aura quand même aucune chance de contrôler les comités, car ils sont tirés au sort à chaque round.
De plus, les rounds sont créés de sorte à ne valider qu'un seul bloc, éliminant les risques de chaînes concurrentes (on parle de forks).
Avantages et limites
Les avantages du Pure Proof-of-Stake nous paraissent évidents maintenant, il n’y a pas de calculs intensifs comme nous l’avons vu, énergétiquement, cet algorithme est très efficace. De plus, tout le monde participe, il y a une réelle décentralisation. PPoS offre une sécurité robuste contre les attaques et la corruption ciblée.
L'autre atout majeur est la non-modification des transactions dans un bloc, il n’est plus question de risque de ‘’fork’’ ou de renversement. Enfin, l’algorithme supporte énormément de transactions (le réseau peut atteindre un débit de l’ordre de 10 000 transactions par seconde).
Malgré ces avantages, PPoS a ses limites et nous pouvons critiquer cet algorithme. Nous sommes dépendants du réseau, la rapidité dépend de la communication entre les nœuds. Bien que robuste, il en demeure qu’il a moins été éprouvé que PoW, et surtout si une grande part des ALGO est concentrée, cela amenuise la diversité potentielle des validateurs.
Conclusion
Ainsi, Algorand peut être vue comme une blockchain qui est conçue pour apporter vitesse, sécurité et une véritable décentralisation grâce au mécanisme de Pure Proof-of-Stake (PPoS). Elle combine à la fois un consensus rapide, basé sur le tirage cryptographique (utilisation des VEF), qui permet d'assurer des transactions quasi instantanées et assure également une résistance face aux attaques.
Quelques ressources :
- Wikepedia : https://fr.wikipedia.org/wiki/Algorand
- Algorand: A secure and efficient distributed ledger : https://www.sciencedirect.com/science/article/pii/S030439751930091X
- Proof-of-Stake in Algorand : https://dl.acm.org/doi/abs/10.1145/3550197
- Pure Proof-of-Stake expliqué : https://algorand.co/technology/pure-proof-of-stake
Auteurs :
- Mohamed Oukas
- Riad Sabir