Explication du protocole de consensus d'Algorand (PPoS)

Introduction à Algorand (PPoS)

Algorand a été fondée en 2017 par Silvio Micali, lauréat du prix Turing en 2012, co-inventeur du chiffrement probabiliste, des fonctions aléatoires vérifiables ou encore lauréat du prix Gödel en 1993.
Cette blockchain se présente comme la solution au trilemme des blockchains en améliorant la scalabilité, la sécurité et la décentralisation. En effet, elle peut exécuter plus de 10.000 transactions par secondes, elle crée des blocs en moins de 3,3 secondes, elle est protégée des attaques de protocole et des attaques de partitions et de plus elle permet à n’importe qui de participer au consensus.
Algorand utilise un protocole d'accord byzantin décentralisé qui s'appuie sur une preuve d'enjeu pure (Pure POS). Cela signifie qu’elle tolère les utilisateurs malveillants et parvient à un consensus sans autorité centrale.
Avant de présenter le protocole de consensus, il est nécessaire de présenter deux méthodes essentielles à Algorand : la fonction aléatoire vérifiable et les clés de participation.

Fonction aléatoire vérifiable

La VRF prend une clé secrète et une valeur et produit un résultat pseudo-aléatoire, avec une preuve que n'importe qui peut utiliser pour vérifier le résultat. Cette VRF fonctionne comme une loterie influencée par le nombre d’algo sur un compte et permet de choisir les leaders qui proposeront un bloc et les membres qui voteront un bloc. Plus un compte à d'algo, plus il a de chance d’y participer, cela résout en principe qu’un utilisateur ne prend aucun avantages à obtenir plusieurs comptes.

Clés de participation

Pour qu’un utilisateur participe au protocole de consensus, il doit nécessairement être sur le réseau. Pour résoudre le problème de la confidentialité, l’utilisateur n’utilise pas ses clés de transactions mais génère une clé de participation pour un certain nombre de tours et génère une collection de clés éphémères, une pour chaque tour, signe ces clés avec la clé de participation, puis supprime la clé de participation. Chaque message d’un tour est signé par une clé éphémère et est supprimé à la fin du tour. Cela permet de garantir la sécurité des jetons d’un utilisateur.

Le protocole de consensus

Il nécessite trois étapes : proposition de blocs, vote doux et certifier le vote.
Ici le procole est présenté dans l'hypothèse idéal où il n’y a pas d’utilisateurs malveillants et où le réseau n’est pas un dysfonctionnement par exemple à cause d’attaques DDoS. De plus, chaque message est signé avec la clé de participation d’un utilisateur et est vérifié grâce au VRF.

Proposition de blocs

A l'intérieur de chaque nœud se trouve une boucle qui parcourt chaque compte en ligne qui dispose de clés de participation et vérifie avec VRF si le compte est sélectionné pour proposer le bloc. Comme dit précédemment plus un compte à d’algo plus il y a de chance d’être sélectionné dans la loterie. Une fois sélectionné, le nœud propage le bloc au réseau avec la sortie du VRF pour vérifier que le compte est un proposant valide.
Schéma sur la proposition de blocs

Vote doux

Dans la phase précédente chaque nœud proposer un bloc, cette phase à pour but de réduire ce nombre de blocs à un seul. Pour se faire, chaque nœud qui reçoit un bloc vérifie tout d’abord la signature du message et le valide avec la preuve VRF. Ensuite, le nœud compare le hachage de la preuve VRF et propage le bloc dont le hachage VRF est le plus bas. Ce processus a une durée déterminée pour permettre aux votes de se propager dans le réseau.
Schéma sur le vote doux (Parti 1)
Ensuite, chacun des nœuds exécute le VRF pour choisir plusieurs comptes qui participeront au vote doux. Le vote d’un compte est pondéré par le nombre d’algo qu’il possède et est envoyé aux autres nœuds avec la preuve VRF. Les votes d’un nœud se basent sur le bloc VRF qui à le hash le plus bas calculée. Ce processus est répété plusieurs fois avec à chaque fois un nouveau comité de taille différente. Et un quorum de votes est nécessaire pour passer à l’étape suivante.
Schéma sur le vote doux (Parti 2)

Certify Vote

Lors de cette dernière étape, un nouveau comité vérifie que la proposition du bloc. S’il est validé, alors un nouveau comité est créé pour certifier le bloc de la même manière que le vote doux. Comme le vote doux, une fois qu’un quorum est atteint (généralement les ⅔), chaque nœud crée un certificat pour le bloc et inscrit le bloc dans la blockchain. Et le protocole de consensus recommence.
Schéma sur la certification du vote
Source :
https://coinacademy.fr/algorand-algo-fondamental/
https://algorandtechnologies.com/
https://dl.acm.org/doi/pdf/10.1145/3132747.3132757
https://arxiv.org/pdf/1607.01341.pdf
https://algorandtechnologies.com/news/proof-of-stake-vs-pure-proof-of-stake-consensus
https://developer.algorand.org/docs/get-details/algorand_consensus/
https://developer.algorand.org/docs/

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now