Avalanche et sa cryptomonnaie AVAX : tout ce qu’il faut savoir
Avalanche (AVAX) est une plateforme de smart contracts créée par Emin Gün Sirer et développée par la société Ava Labs. Particulièrement rapide et scalable, elle supporte des milliers de nœuds producteurs. Avalanche est aussi pleinement compatible avec Solidity, et intègre les outils de développement d’Ethereum.
Découvrons ensemble l’ambition de ce projet, ses caractéristiques et son fonctionnement.
L’équipe d’Ava Labs
Ava Labs est composé d’une équipe d’experts de classe mondiale. Le fondateur du projet est Emin Gün Sirer, professeur agrégé en informatique à l’Université de Cornell. Également co-directeur de l’IC3 (initiative pour les cryptomonnaies et les contrats intelligents), il est l’un des chercheurs les plus prolifiques en réseaux distribués.
Avant de cofonder Ava Labs, Kevin Sekniqi était candidat au doctorat en informatique à Cornell, effectuant des recherches sur les systèmes distribués, la cryptographie, la sécurité et l’économie. Il a précédemment fait de la recherche et du génie logiciel dans des organisations de premier plan, notamment Microsoft et la NASA.
Maofan « Ted » Yin, le troisième cofondateur, a quant à lui effectué de nombreuses recherches fondamentales dans le domaine des systèmes distribués. Passionné par la résolution de problèmes tels que la tolérance aux fautes, les inefficiences de consensus ou les systèmes pair-à-pair, ses travaux incluent le design des protocoles Snow/Avalanche, ou encore HotStuff (protocole de consensus utilisé par le Libra de Facebook).
De nombreux développeurs de tous horizons travaillent sur la plateforme, et pour les intéressés, Ava Labs recrute.
Avalanche (AVAX) : objectifs et fonctionnalités
Rapidité, fiabilité, scalabilité : ce sont les maîtres mots de la finance décentralisée sur Avalanche. La plateforme permettra ainsi de déployer des smart contracts et des applications décentralisées avec aisance, notamment grâce à sa compatibilité avec Ethereum.
Passons-donc en revue ses fonctionnalités essentielles !
Les smart-contracts
Avalanche est entièrement compatible avec les outils de développement pour Ethereum. Il est donc possible de développer et déployer des smart contracts en Solidity en utilisant les logiciels classiques que sont Remix, MetaMask, Truffle et consors. Il est d’ailleurs prévu que Solidity soit amélioré sur Avalanche (Solidity ++) afin de supporter le versionnage, l’arithmétique à virgule fixe, un meilleur système de saisie…
Les smart contracts peuvent être déployés suivant plusieurs modalités :
- Vérification on-chain et exécution off-chain ;
- Exécution parallèle des smart contracts sur différents subnets.
Avalanche, un réseau de blockchains
Avalanche est un réseau de blockchains paramétrables. Il y a trois blockchains principales (décrites plus bas), et déployer sa propre blockchain est une fonctionnalité native du protocole.
Il y a trois machines virtuelles sur Avalanche :
- La machine virtuelle interprétant le code des smart contracts du réseau est appelée l’AVM (Avalanche Virtual Machine) ou encore Timestamp VM ;
- Celle dédiée à Solidity s’appelle… L’EVM ;
- Enfin, la Platform Virtual machine (PVM) permet de sérialiser les transactions.
Cette structure confère à Avalanche une interopérabilité totale : la portabilité des blockchains existantes est une fonctionnalité de base. La plateforme sera à l’avenir compatible avec de multiples systèmes de scripts et machines virtuelles (exemples : WASM (Cosmos), ABCI VM…)
Les sous-réseaux (subnets)
Un sous-réseau est un ensemble de nœuds validateurs maintenant l’état – par consensus – d’une ou plusieurs blockchains. Les nœuds composant ces sous-réseaux font avant tout partie du Default Subnet, le réseau de base maintenant l’état des blockchains d’Avalanche. Pour participer au consensus, il suffit donc de mettre sous séquestre des tokens AVAX, comme dans tous les protocoles PoS.
Avalanche et DeFI : la conformité
Il est aussi possible de configurer les paramètres d’accès à un subnet donné, ce qui permet ainsi de créer des sous-réseaux conformes à des normes juridiques. Par exemple, les opérateurs d’un subnet peuvent requérir un ensemble de conditions, comme une localisation géographique, des procédures KYC, ou encore une licence spécifique.
Cette architecture permet également de créer des blockchains privées. Il est aussi possible de créer des sous-réseaux qui ne seront ouverts qu’à des nœuds présentant des spécifications hardware déterminées (CPU, RAM).
Fonctionnement d’Avalanche
Contrairement aux plateformes de smart contracts classiques, Avalanche est donc constitué d’un réseau de blockchains. Chacune d’entre elles peut être publique ou privée, et comporte son lot de nœuds validateurs. À l’instar d’Ethereum, Avalanche est doté d’une machine virtuelle, capable d’interpréter les instructions des smart contracts. Mais à la différence de son concurrent, les dApps sont déployées sur des blockchains indépendantes.
Avalanche est orienté vers la finance décentralisée : il est ainsi possible de créer tous les types d’actifs numériques sous forme de tokens.
Son consensus fonctionne sur le principe du proof of stake, tout comme Cardano ou Ethereum 2.0.
Rappels sur le proof of stake
Les mécanismes de consensus reposant sur le proof of stake ou preuve d’enjeu sont moins énergivores et plus scalables que les protocoles basés sur la preuve de travail.
Pour pouvoir valider les transactions, les producteurs de blocs doivent mettre de l’argent en jeu. Concrètement, ils placent des fonds sous séquestre : on appelle cela le staking. S’ils remplissent leur rôle de validateur/producteur, ils sont légèrement récompensés pour cela; si en revanche, ils se comportent mal, ils sont financièrement punis. Une des particularités d’Avalanche est que pour résoudre le problème du nothing at stake, le protocole n’utilise pas la méthode du slashing. Les fonds sont verrouillés de façon irréversible tant que la période choisie par le staker ne s’est pas écoulée.
L’avantage de ce mécanisme, outre sa faible consommation énergétique, est de rompre la symétrie entre le coût d’une attaque et le coût de la défense. En effet, avec la preuve de travail, il faut dépenser beaucoup d’énergie pour sécuriser le réseau. Le coût d’une attaque est proportionnel à l’énergie investie pour sécuriser le système. Le proof of stake est une méthode de consensus rendant un système distribué beaucoup moins coûteux à défendre qu’à attaquer.
Limitations des protocoles de consensus existants
Dans les systèmes distribués, tous les protocoles de consensus existants sont limités. Pour les concevoir, il faut faire un compromis entre les qualités désirées – sécurité, décentralisation, et scalabilité.
Une contrainte notable est celle du nombre de nœuds validateurs. Les algorithmes classiques assurent la finalité des transactions avec une probabilité égale à un, c’est-à-dire qu’une transaction est finalisée lorsque l’ensemble du réseau a établi son consensus. Qu’il s’agisse des algorithmes PBFT, du Hashgraph d’Hedera ou autres, de nombreux nœuds doivent tous communiquer les uns avec les autres. On parle de communication quadratique: cela limite le nombre de nœuds pouvant composer le système, et donc sa décentralisation.
Bien sûr, Satoshi Nakamoto a eu le génie d’utiliser la preuve de travail pour créer un algorithme de consensus probabiliste, très résistant à grande échelle. Même avec un très grand nombre de nœuds, la probabilité de réorganisation du registre est extrêmement faible. Plus il y a de blocs produits, plus elle diminue.
Mais le consensus de Nakamoto a des défauts : il consomme énormément d’énergie et la finalisation des transactions reste lente (10 minutes à une heure).
Le mécanisme de consensus d’Avalanche
L’idée est d’utiliser la conception probabiliste de la finalité des transactions amenée par Satoshi Nakamoto. L’algorithme de consensus d’Avalanche effectue ce compromis entre probabilité d’erreur minimale et performance : il permet de finaliser les transactions du réseau en une à deux secondes, tout en étant extrêmement décentralisé.
Ce mécanisme de consensus est également le plus sécurisé de tous : il peut tolérer 80 % d’acteurs malicieux, contre 51 % pour Bitcoin et 33 % pour les algorithmes PBFT classiques. Cette valeur peut-être ajustée.
Fonctionnement de la plateforme
La nouvelle famille de protocoles de consensus développée au sein d’Avalanche s’appelle Snow. Elle est inspirée par les protocoles de type gossip (bavardage) : bien qu’ils ne permettent pas d’arriver à un consensus, ces protocoles assurent la dissémination de l’information. Ils sont par exemple utilisés pour maintenir les graphes orientés acycliques d’IOTA.
Les graphes orientés acycliques (DAG)
Un graphe orienté acyclique est une structure de données permettant de modéliser des réseaux d’objets (dans notre cas, des transactions). Les DAG sont composés de sommets (ou nœuds) et d’arêtes (les liens entre ces sommets). Dans un graphe orienté, les arêtes ne sont pas symétriques : elles possèdent une orientation, et on les appelle des flèches.
Le graphe est dit acyclique s’il ne possède pas de circuit : il n’existe pas de chemin dont les extrémités sont identiques (« cycle »).
Chaque transaction en AVAX est alors un nœud (sommet) du graphe. L’avantage, par rapport à la structure en arbre des blockchains, est qu’il est beaucoup plus rapide de parcourir et de traiter les données. Le problème des plus courts chemins – trouver le chemin le plus court entre deux sommets – est ainsi résolu de façon linéaire.
Avalanche utilise de multiples instances où sont déployés ces algorithmes de consensus (appelées Snowballs). Le graphe orienté acyclique regroupe alors toutes les transactions.
Pour le maintenir, il faut un système pour arbitrer les transactions conflictuelles (comme les double-dépenses). Sur Avalanche, l’idée est d’échantillonner de façon aléatoire et répétée le réseau : c’est cela qui permet d’accéder à un état irréversible très rapidement, et de limiter le nombre de messages par nœud.
Voici un schéma de Collin Cusce synthétisant le fonctionnement du consensus d’Avalanche, extrait de son article Avalanche Consensus 101 :
Pour plus de détails sur le DAG d’Avalanche et sa fiabilité (notamment sa résistance aux fautes byzantines), veuillez consulter le whitepaper spécifique.
Structure du Default Subnet d’Avalanche
Le Default Subnet est le sous-réseau d’Avalanche, servant à maintenir ses trois blockchains natives.
- Premièrement, la X-Chain. Cette blockchain est dédiée à la création et au déploiement d’actifs numériques. Ainsi, tout comme avec les tokens ERC-20 sur Ethereum, qui permettent de représenter des actions, des droits de vote ou des commodités, Avalanche permet ainsi de « tokéniser » n’importe quel actif.
- Ensuite, vient la P-Chain. Elle permet de gérer les métadonnées du réseau Avalanche. Pour créer des subnets, y ajouter des validateurs et créer des blockchains, cela passe par son API.
- Enfin, la C-Chain permet de créer des smart contracts en Solidity : il s’agit d’une instance de l’Ethereum Virtual Machine.
Les capacités techniques d’Avalanche
D’après les tests, les capacités d’Avalanche sont exceptionnelles. Le réseau est capable de traiter 3400 transactions par seconde avec 2000 nœuds. Le temps de confirmation d’une transaction est au maximum de 1,35 seconde.
Cependant, la latence peut même être inférieure. Durant les tests, la plupart des transactions ont été finalisées en 300 ms. En effet, même en cas d’une proportion importante de transactions conflictuelles (25%), la latence ne souffre pas. Mieux encore, le délai de confirmation est réduit lorsque de nombreuses transactions conflictuelles sont traitées par le réseau !
Le token d’Avalanche : AVAX
L’AVAX est l’unité comptable du réseau, et ce jeton utilitaire a donc plusieurs fonctions.
Le staking d’AVAX sur Avalanche
Comme sur tous les réseaux en PoS, Avalanche récompense les validateurs qui consacrent des fonds à la sécurisation du système. Au départ, tous les nœuds sont récompensés, mais dans le futur, les nœuds devront présenter un temps de réponse correct pour recevoir des tokens. Voici comment fonctionne le staking sur Avalanche :
- Les récompenses sont proportionnelles au stake du validateur ;
- Les validateurs qui verrouillent leurs tokens longtemps reçoivent plus de récompenses ;
- Les validateurs sont incités à rester en ligne et à opérer correctement, l’uptime et l’exactitude des données déterminent les récompenses ;
- La supply totale d’AVAX est fixée à 720 millions. Cependant, les détenteurs du jeton gardent la main sur le taux de libération : AVAX est donc aussi un token de gouvernance ;
- Enfin, et c’est important, les frais de fonctionnement du réseau sont brûlés.
La gouvernance d’Avalanche via l’AVAX
N’importe quel nœud du réseau peut proposer des modifications des paramètres d’Avalanche. Le mécanisme de consensus ajuste alors ces paramètres de manière dynamique, les voici :
- La valeur de staking minimale : 2000 AVAX au bloc de genèse ;
- La durée de staking minimale : 2 semaines ;
- La durée de staking maximale : 52 semaines ;
- Les paramètres gouvernant la fonction de minting – la création des nouveaux tokens ;
- La structure des frais.
AVAX : les tokenomics en quelques mots
L’ICO menée par Ava Labs fut un succès : l’équipe a vendu pour 42 millions de dollars d’AVAX en quelques heures.
Sur la distribution maximale de 720 millions d’AVAX, 360 millions sont générés dès le bloc de genèse.
Ensuite, la fonction d’émission, similaire à celle de Bitcoin, définit comment forger l’autre moitié des tokens. Voici à quoi elle ressemble graphiquement, en fonction du nombre de tokens verrouillés sur le réseau :
Pour plus de détails, consulter le whitepaper du token AVAX.
Structure des frais
La structure des frais de fonctionnement d’Avalanche diffère de celle des plateformes existantes :
- Tout d’abord, les frais de staking : comme cela a été mentionné plus haut, sur Avalanche, les frais sont brûlés. Et cela joue donc de façon déflationniste sur la supply totale des tokens. Les récompenses sont alors allouées de façon globale par le protocole, et le fait de forger de nouveau tokens compense la déflation inhérente au système.
- Ensuite, viennent les frais de transaction : ces frais vont varier en fonction du type de transaction. Les transactions simples en AVAX présenteront des frais très faibles, tandis que les frais attachés aux nouveaux sous-réseaux seront plus élevés. Il est même possible de créer sa propre structure de frais au sein d’un subnet.
- Enfin, il faut mentionner les coûts glissants : les frais ne sont pas fixés par la libre appréciation de l’utilisateur, et c’est une fonction spécifique qui les gère. Cette sliding cost function (publique et vérifiable) ajuste les frais en fonction de la congestion du réseau.
Lancement du mainnet d’Avalanche et listing de l’AVAX
Ava Labs n’a dévoilé aucune date officielle, mais le mainnet devrait être déployé à la fin du mois d’août. Dès lors qu’il sera fonctionnel, les détenteurs de jetons AVAX pourront y effectuer des transactions. Le token sera listé dans la foulée, mais l’équipe n’a pas révélé le ou les noms des plateformes… Cependant, il y a fort à parier qu’il sera échangeable chez des acteurs de renom.
Tout comme les grosses entreprises du secteur des plateformes de smart contracts, Ava Labs souhaite révolutionner l’écosystème. Plus rapide, plus sécurisé, plus décentralisé : nous avons souvent entendu ces promesses ! Mais au vu de la qualité de l’équipe de développement, et de la réputation de son créateur, Avalanche pourrait bien être à la hauteur de leurs ambitions. Nous attendons donc la sortie du mainnet avec impatience !
Annexes
Les whitepapers
- La plateforme
- Le mécanisme de consensus
- Le token
Avalanche (AVAX) : documentation et outils
- La documentation
- Le wallet
- L’explorateur
Réseaux sociaux
- Discord
- Le groupe Telegram
- Le groupe Telegram francophone
- Le hub Avalanche
- Le compte Twitter officiel
- Avalanche sur Reddit
- La page Facebook
- La page LinkedIn
Cet article vous est proposé en collaboration avec Ava Labs dans le cadre de leur campagne de subventions communautaire.