Algorand, une Blockchain écologique ?

algorand-algo-napster-crypto-web3-1024x576.jpeg

Algorand à été fondé par Silvio Micali en 2017 dans l'ambition de "démocratiser la finance en reposant sur les promesses de la Blockchain". Silvio Micali est un professeur et chercheur au MIT au laboratoire d'informatique et d'IA. Il a notamment remporté le prix Turing en 2012 avec Shafi Goldwasser pour leurs travaux sur la cryptologie et la vérification de preuve basés sur la théorie de la complexité.

Le principal objectif de Algorand est d'être une infrastructure Open Source dédiée aux DApps (applications décentralisées) et aux DeFi (tendance actuelle d'une création de finance décentralisée et transparente au travers de la Blockchain). C'est donc une plateforme sans autorisations et reposant sur la Preuve d'enjeu pure (PPoS), depuis septembre 2021.

Ecosystème d'Algorand

Layer 1

Comme tout les systèmes Blockchain, Algorand est basée sur un réseau de partage pair à pair et chaîne de blocs.
La chaîne de bloc débute par le "genesis block" et le processus ce passe comme ceci :

Capture d’écran 2022-11-30 à 13.52.37.png

La graine aléatoire contenue par le bloc rend valide celui-ci.
Rappelons que la blockchain d'Algorand est décentralisée et chaque compte est détenu par unique utilisateur qui sont identifier par sa clé publique de session (Accont Public Key) qui est unique. Un utilisateur ne participe au protocole de consensus que s'il est connecté. À chaque bloc est associé un tableau des soldes qui contient l'ensemble des informations actuelles de chaque compte du système.

La sécurité d'Algorand repose sur plusieurs concepts:

  • Byzantine Fault Tolerance model : Ce modèle implique que plus des 2/3 des jetons soient détenus par des "détenteurs honnêtes » pour que l’algorithme puisse fonctionner correctement.

  • Hypothèse cryptographique : Algorand se sert de l'authentification par signature digitale pour les messages. Ce dernier se base sur les Verifiable Random Functions (VFR) et les fonctions de hachages avec sélection aléatoire des oracles lors du consensus.

Grâce à ces critères de sécurité, la durabilité de la Blockchain est assurée. En effet si on se donne 2 blocs finaux, l'un d'entre eux (celui dont le numéro de tour est le plus petit ) doit être le prédécesseur de l'autre.

L'historique des blocs et les certificats correspondants permettent aux nouveaux utilisateurs de se mettre à jour et ne sont pas nécessaires pour les utilisateurs qui sont déjà à jour avec le Ledger actuel. Par conséquent, Algorand distribue le stockage des certificats et des blocs entre les utilisateurs.
Pour N partitions, les utilisateurs stockent les blocs/certificats dont le numéro de tour est égal à leur clé publique modulo N. Cela à pour effet de réduire considérablement le stockage nécéssaire pour faire fonctionner la Blockchain.

Smart Contract & Machine Virtuelle : Algorand Virtual Machine (AVM) est la machine virtuelle d'Algorand avec qui peut exécuter les Smart Contracts. AVM supporte les langages Turing complets de même que le langage interprété Python (Via PyTeal). Les contrats intelligents sur Algorand (Algorand Smart Contracts ASC1) sont des petits programmes que l'on peut exécuter directement dans la layer 1. Il en existe 2 catégories : smart contracts et smart signatures qui peuvent être écrite en TEAL (Transaction Execution Approval Language) qui est un langage Turing-complet de type assembleur directement interpréter par AVM.

Layer 2

Algorand n'exige pas de la part de chaque participant au consensus de résoudre un problème cryptographique afin de valider un bloc (Contrairement au Bitcoin). En revanche la puissance de calcul de chaque utilisateur n'est utilisée que pour la vérification et la signature, n'engendrant que des opérations simple. La puissance de calcul nécéssaire au fonctionnement du consensus ne dépend donc que du nombre d'utilisateurs dans chaque bloc. Ainsi le protocole de consensus peut être utilisé à très grande échelle.

Grâce à sa machine virtuelle AVM qui supporte d'autres langage que le TEAL, Algorand est facilement programmable. En effet il assez facile de développer des applications décentralisées (dApp, vente/achat, smart contracts, NFT)

Tokenization : L'Algo est la monnaie "native" d’Algorand. Leurs détention donne accès au processus de consensus. Le solde minimum exigé est de 0.1 Algo cela pour limiter les attaques via des spams. L'Algo est également un "utility token", il permet donc l'accès à un produit/ service crée sur Algorand. Il permet de de payer les frais de transaction et de stockage lorsque qu'on souhaite créer un programme. Quand il y a une forte tension sur le marché (grande fréquence de blocs et blocs entièrement remplis), les frais sont calculés sur la taille de la transaction et il est possible d'ajouter des frais en plus pour faire passer la transaction en priorité et augmenter les chances d'acceptation dans des blocs. L'Algo est un jeton fongible.
On peut également créé d'autres jetons, implémentés comme des actifs standards d'Algorand (Algorand Standard Assets). Il suffit de spécifier quelques paramètres (quantité supérieur à 1 par exemple) et de joindre des méta-données afin que les propriétaires potentiels disposent des informations dont ils ont besoin pour valider l'intégrité de l'actif.

Zoom sur la PPoS

Pure Proof of Stake (PPoS) :

Algorand est une Blockchain reposant sur l'algorithme de consensus nommé la Pure Proof of Stake (PPoS). La Pure Proof of Stake (PPoS) est un algorithme répondant aux 3 problèmes posés par le "trilemme de la Blockchain".

L'algorithme tient un registre publique ne nécessitant pas d'autorité centrale, ce registre est constamment mit a jour par la communauté en procédant de la façon suivante :

Capture d’écran 2022-11-22 à 10.40.48.png

Pour être sélectionné il faut posséder des Algos. Les chances d'être sélectionné sont proportionnelles à la quantité d'Algos que l'on possède (l'enjeu).
Le processus s'effectue en tour, à chaque tour les utilisateurs utilisent un triage cryptographique, à l'aide de l'algorithme VRF et de la graine aléatoire du tour précédent chaque utilisateur regarde si il à été sélectionné en tant que proposeur. Les proposeurs choisis vont donc collecter les transactions, créer les blocs et les soumettre à plusieurs tours de vote du comité de valideurs.
Pendant la procédure de vote, chaque utilisateur utilise VRF pour voir si ils sont sélectionnés pour être valideur. Si c'est la cas ils disposent d'un vote de poids proportionnel à leurs nombre d'Algos. Les votes sont propagés dans le réseau de votants pour être validés puis ils sont compilés pour parvenir au consensus. Pour qu'un bloc proposé soit validé il est nécessaire d'obtenir un nombre de vote minimum.

Verifiable Random Functions VRF :

L'algorithme VRF (qui est en open source) prend en argument une clé privé et une valeur X et produit un hash "pseudo-random" et une preuve publique π attestant de sa véracité et permettant aux autres utilisateurs de vérifier le résultat.

Un hash est le résultat d’une fonction de hachage qui prend en entrée une donnée et calcule son empreinte numérique permettant une identification rapide de la donnée initiale. Elle est utilisée pour choisir les proposeurs et les valideurs.

On peut vérifier la validité du hash en utilisant la clé publique correspondant à la clé privé du calcul et la preuve publique : propriété d'asymétrie des applications des Blockchains.
Le hash obtenu à l'issu de VRF est utilisé comme graine dans le tour suivant.
La fonction VRF va sélectionner aléatoirement un groupe d'utilisateurs (de taille prédéfinie) en distribuant des "sub-users" en suivant une distribution Binomiale.

Le nombre sub-users est défini en fonction du nombre de jetons totale dans le système. Un sub-user est accordé à un utilisateur selon son nombre de jetons possédé par rapport au nombre de jetons total en respectant les règles de sécurité.
Les seules attaques possibles sur ce type d'algorithme sont les attaques exhaustives qui consistent à essayer chaque clés, ce type d'attaque demande une très grande puissance de calcul qui est, de plus, proportionnelle à la taille de la chaîne. VRF est également résistant aux collisions, il est donc difficile de trouver 2 entrées générant les mêmes fonctions de hachages.

Cryptographic Sortition :

La Cryptographic sortition à été crée par Algorand et permet aux utilisateurs de participer au protocole de consensus secrètement.

A chaque tour, après la sélection des proposeurs, le triage se fait de la façon suivante : Les proposeurs génèrent la nouvelle fonction de hachage avec VRF en concaténant la graine du tour précédent avec le numéro du tour n.

Tout cela est stocké dans la proposition de bloc et si celui-ci est accepté par la communauté de valideurs, le hash généré devient la graine du nouveau tour.
Ce triage réduit les inégalité entre utilisateurs. En effet, comme VRF est pseudo-random et résistante aux collisions, un petit changement d'entrée peut changer drastiquement la sortie. Il est donc difficile pour un utilisateur de performer plusieurs rôles dans le protocole. Il est également possible de pratiquer le triage plusieurs fois par tour pour permettre aux utilisateurs avec moins d'enjeu de participer.

Procédure de vote : Decentralized Byzantine Agreement

Un accord Byzantin est un protocole permettant aux utilisateurs d'atteindre le consensus en présence d'acteurs malveillants. Il leurs permet de prendre connaissance du registre en vérifiant les blocs proposés.

Au début de chaque tour de vote chaque utilisateur utilise VRF pour voir si il devient valideur.
Soft vote : Les valideurs produisent chacun un message de vote (indiquant leurs décision vis-à-vis du bloc). L'algorithme BinaryBA* récupère les informations et détermine si le comité à conclut à un consensus.
L'algorithme BinaryBA* va engendrer trois tour de vote pour assurer la sécurité face aux utilisateurs malveillants.
Certify Vote : un nouveau comité de votant (Choisi par VRF) vérifie que le hash final est bien le produit du consensus et conclut le tour.
Capture d’écran 2022-11-22 à 10.41.41.png

Améliorations apportées par PPoS

Le Trilemme de la Blockchain regroupe les 3 défis que la Blockchain doit relever :
La décentralisation : l'entièreté du pouvoir de l'organisation ne doit pas être détenu par une seule personne
La sécurité : Le réseau doit résister aux attaques.
La scalabilité : Le réseau doit être capable de prendre en charge de plus en plus de transactions par seconde.

  • La PPoS offre une grande performance à Algorand, en effet le réseau est capable de gérer des centaines de transactions par seconde. Son pic d'activité était le 4/02/21 avec une moyenne de 451 TPS et un pic à 1153 TPS. Un block est généré toutes les 4 secondes sur Algorand, c'est l'une des Blockchains les plus rapide du monde. De plus avec Algorand, un utilisateur à juste besoin de générer et signer des clés pour participer au consensus, ce processus à donc une faible consommation de puissance de calcul et permet à la Blockchain de passer facilement à l'échelle.

  • PPoS induit également un nouveau fonctionnement de clés. En effet, un utilisateur n'est plus dans l'obligation de dévoiler sa clé de dépenses (clés utilisées pour signé leurs transactions) pour participer au consensus. Il doit à la place générer une clé de participation, permettant de signer le message du tour actuel celle-ci garanti la sécurité même si le noeud du participant est compromis, cette clé est supprimée à la fin du tour. Cela assure également qu'on ne peut plus attaquer un bloc d'un tour précédent.

  • Algorand n'a pas de phénomène de fourchettes. Comme la plateforme utilise la PPoS, la communauté se met d'accord pour chaque bloc, il est donc impossible pour 2 mineurs de valider le bloc au même moment. De plus, le consensus est inévitable, donc dans le pire des cas, la Blockchain sera ralentie pour attendre cet accord de la communauté.
    L'absence de fourchette est un facteur décisif dans l'amélioration de la sécurité d'une Blockchain, il devient donc impossible qu'un chemin soit abandonné au profit d'un autre car la communauté Algorand n'emprunte qu'un seul chemin à la fois. Cela garantie donc que toutes les transactions validées seront finalisées.

L'une des principale amélioration de PPoS par rapport à PoS est la suppression de la "barrière" imposé par PoS. En effet, pour participer au processus de sélection, de validation et de transactions des blocs il est nécessaire de posséder un nombre suffisant de jetons fixé par l'algorithme. Dans PPoS, cette barrière n'existe plus, chaque utilisateur possédant un ou des Algos peut participer aux processus.

PPoS améliore la décentralisation de DPoS (Delegated Proof of Stake) car elle permet à chaque utilisateur de proposer et de voter pour un bloc avec un probabilité proportionnelle à leur enjeu. PPoS ne charge donc pas un petit groupe d'utilisateur de la direction de la Blockchain.

Limites de PPoS

On peut observer les mêmes inconvénients que PoS :

  • La communauté déplore la faible rémunération de staking (fait de cumuler des jetons)
  • La Blockchain reste quand même sensible aux utilisateurs malveillants si leurs proportions dépassent 1/3 des utilisateurs.
  • Les utilisateurs malveillants ne reçoivent aucunes pénalités, la communauté Algorand déplore alors le manque de menace pour ces utilisateurs.

Algorand, une blockchain écologique ?

La startup Algorand à annoncé son ambition de créer une Blockchain écologique, en effet, on à observer ces dernières années l'essor de Blockchain extrêmement énergivore : le Bitcoin consomme 97,11 TWh par an.

La question énergétique étant au centre des préoccupations, on à pu voir Tesla se retirer des échanges en Bitcoin dû à sa consommation, il est donc nécéssaire d'un point de vue écologique mais aussi financier pour une cryptomonnaie de prendre en compte ces questions énergétiques.

Grâce à sa PPoS les utilisateurs n’ont pas besoin de machines puissantes et énergivores en consommation pour le traitement des nœuds. Ainsi ils ont une consommation énergétique nettement plus faible comparé au minage du Bitcoin (la consommation annuel de 7 foyers). De plus la scalabilité de PPoS étant meilleure que PoS, Algorand anticipe son expansion et l'augmentation du nombre d'utilisateurs n'impactera pas la consommation d'électricité totale de la Blockchain.

Algorand travaille avec 3 sociétés :

  • Climate Trade, société effectuant des bilan de transparence et de traçabilité carbone et proposant aux entreprises de développer leurs marchés sans impacter l’environnement.
  • Global Carbon Holdings, société mettant en jeu des "crédits carbone" certifiés par les agences gouvernementales de protection de l'environnement et assurant un impact négligeable des société détenant ces crédits sur l’environnement.
  • Planet Watch, société qui produit un monitoring de la qualité de l'air dans le monde et des impact du numérique.

Grâce a ces sociétés, Algorand peut monitorer à tout moment son impact et proposer aux utilisateurs la meilleure alternative.

Pour assurer une impact négatif sur le climat, Algorand et Climate Trade vont implémenter un Oracle durable qui permettra de notifier l'empreinte carbone groupe de blocs. Avec ses Smart contracts, Algorand stockera la quantité équivalente de cet impact en ASA (Actif Standard de Algorand) qui seront stocké dans un trésor vert permettant au protocole de continuer de fonctionner avec un impact négatif sur l'environnement.

Article réalisé en collaboration avec @lionelagassi dans le cadre du cours de cryptomonnaies réalisé par @pboulet pour le M2 Mathématiques, Finance computationnelle et Actuariat.

Sources

Sort:  

!PGM
!PIZZA


ItharaGaian
Principauté du Bastion (@hive-143869 Community)
Curation Manuelle

BlasonPrincipautéBastionTransparentSmall.png

Sent 0.1 PGM - 0.1 LVL- 1 STARBITS - 0.05 DEC - 15 SBT - 0.1 THG - tokens to @itharagaian

remaining commands 4

BUY AND STAKE THE PGM TO SEND A LOT OF TOKENS!

The tokens that the command sends are: 0.1 PGM-0.1 LVL-0.1 THGAMING-0.05 DEC-15 SBT-1 STARBITS-[0.00000001 BTC (SWAP.BTC) only if you have 2500 PGM in stake or more ]

5000 PGM IN STAKE = 2x rewards!

image.png
Discord image.png

Support the curation account @ pgm-curator with a delegation 10 HP - 50 HP - 100 HP - 500 HP - 1000 HP

Get potential votes from @ pgm-curator by paying in PGM, here is a guide

I'm a bot, if you want a hand ask @ zottone444


🍕 PIZZA !

I gifted $PIZZA slices here:
@itharagaian(1/5) tipped @sdesaivres (x1)

Please vote for pizza.witness!

Congratulations @sdesaivres! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)

You received more than 50 upvotes.
Your next target is to reach 100 upvotes.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out the last post from @hivebuzz:

HiveBuzz World Cup Contest - Recap of Day 11
Be ready for the last Hive Power Up Month of the year!
Hive Power Up Day - December 1st 2022
Support the HiveBuzz project. Vote for our proposal!

Blogging in English can get you better support.