Avalanche (AVAX) Nouvelle Famille de Consensus

Avalanche consensus (AVAX) une nouvelle avancée dans le domaine des systèmes distribués.

Nicolas Lemaitre
Avalanche fr
8 min readJun 2, 2019

--

Avalanche (AVAX) — AVA Labs

Le livre blanc de “Snowflake to Avalanche : A Novel Metastable Consensus Protocol Family for Cryptocurrencies” a été publié anonymement sur IPFS (InterPlanetary File System) et IRC le 16 mai 2018 par une équipe qui s’est identifiée uniquement comme la « Team Rocket ». Une mise à jour de ce livre blanc est disponible depuis le 18 Avril 2019. L‘équipe d’Ava Labs a assisté la “Team Rocket” avec quelques analyses et des parties contextuelles du livre blanc. Emin Gün Sirer a fait connaître publiquement le protocole “Avalanche” lors d’un tweet où il qualifie ce papier comme une percée dans le domaine des DLTs (la technologie des registres distribués).

Ce livre blanc décrit une nouvelle famille de protocoles de consensus pour les cryptomonnaies : Avalanche. Composé de quatre protocoles différents (Slush, Snowflake, Snowball et Avalanche) Avalanche réunit à la fois le meilleur du consensus Classique avec le meilleur du consensus Nakamoto.

2. Historique des familles de protocoles de consensus.

Pour comprendre au mieux le protocole Avalanche et ses différences par rapport à ses prédécesseurs dans le domaine des consensus, il est impératif d’explorer les outils développés par les informaticiens utilisés auparavant. Ces outils permettent à des ordinateurs travaillant ensemble dans un réseau distribué de prendre une décision collective en toute sécurité.

On distinguait avant la Famille de protocoles de consensus Avalanche, deux types de famille de protocoles de consensus historiques : classique et Nakamoto.

A. Les protocoles de consensus classique (Lamport-Liskov):

Leslie Lamport et Barbara Liskov, de gauche à droite.

Les protocoles de consensus classique ont été développés par deux grands informaticiens, Leslie Lamport et Barbara Liskov. Ils sont tous deux lauréats du prix Turing (en 2008 pour Barbara Liskov et 2013 pour Leslie Lamport), équivalent au prix Nobel d’informatique.

Avantages :

  • Faible latence de confirmation.
  • Haut débit (transactions par seconde).
  • Protocole léger.
  • Protocole qui peut être mis au repos (écologique).
  • Sécurité optimale paramétrable au-delà de 33% de mauvais acteurs sur le réseau.
  • Parallélisme. *

Inconvénients :

  • N’est pas évolutif (scalabilité), impose des coûts de communication quadratiques entre les différents nœuds.
  • Requiert de connaître tous les nœuds.
  • Droit d’accès pour participer au réseau.
  • Panne complète si le seuil byzantin est dépassé.

B. Le protocole de consensus Nakamoto

Nakamoto Consensus souvent associé au Bitcoin.

Créé par Satoshi Nakamoto pour Bitcoin (publié en tant que logiciel open source en 2009), Nakamoto Consensus fait référence à l’ensemble des règles associées au modèle de protection dans le réseau : Proof of Work (Preuve de travail) *. Ces règles régissent le mécanisme de consensus et en assure sa nature sans recourir aux tiers de confiance. Ce faisant, Bitcoin est devenu le premier réseau P2P (de pair à pair) ouvert, résistant au problème des généraux byzantins (BFT). Il utilise un réseau distribué de nœuds anonymes libres de rejoindre et de quitter le réseau à sa guise.

Avantages :

  • Robuste, grande garantie probabiliste de sécurité.
  • Pas nécessaire de connaître tous les nœuds.
  • Facile à étendre à un grand nombres de nœuds.
  • Scalable en termes de nombre de nœuds (théoriquement parlant).

Inconvénients :

  • Centralisation du minage : 8 pools détiennent 90%+ du hashrate power.
  • Énergivore : La sécurité repose sur la participation constante des mineurs, même lorsqu’il n’y a pas de décisions à prendre. Source
  • Haute latence de confirmation (~10 mins). Source
  • Risque de séparation du réseau (fork).
  • Panne complète si le seuil byzantin est dépassé.
  • Sécurité optimale non paramétrable au-delà de 51% de mauvais acteurs sur le réseau.
  • Protocole lourd

3 — Une nouvelle famille de consensus : le protocole Avalanche.

D’après une interview d’Emin Gün Sirer sur Ethnews.com, Avalanche représente une nouvelle famille de consensus parce que cette nouvelle famille combine le meilleur des consensus classiques et Nakamoto : finalité très rapide, sans notion précise d’adhésion.

Son mode de fonctionnement en fait une famille différente: elle fonctionne en sondant un petit échantillon du réseau et en orientant chaque nœud vers un consensus émergeant.

A l’opposé des protocoles de consensus classiques qui sondent tous les nœuds du réseaux et du Nakamoto consensus qui élit un leader qui détermine le contenu des blocs, cette nouvelle famille de protocoles est très légère : elle guide tous les nœuds vers une tendance majoritaire.

Avantages :

  • Robuste — grande garantie probabiliste de sécurité, n’a pas besoin de connaître tous les membres parfaitement.
  • Haute scalabilité — 10k à 10m nœuds
  • Faible latence et finalité rapide (transaction considérée comme immuable — ~2sec)
  • Haut débit — (~7000 tp/s)
  • Protocole léger
  • Protocole “vert” (écologique)
  • Protocole facile à implémenter et à prendre en main pour les développeurs. (subjectif)
  • Parallélisme. *
  • Sécurité optimale paramétrable au-delà de 50% de mauvais acteurs sur le réseau.
  • Pas nécessaire de connaître tous les membres du réseau.
  • Dégradation gracieuse* durant une attaque catastrophique de mauvais acteurs.

Veuillez trouver ci-dessous un récapitulatif des avantages et inconvénients de chaque famille de protocole décrite précédemment.

Tableau comparatif des consensus Nakamoto — Classique et Avalanche.

4 — Nouveau mécanisme : métastabilité.

Comme décrit plus haut, le protocole Avalanche prétend être différent des deux familles de protocole historique (classique et Nakamoto) par le fait de ne pas à avoir à élire un “chef” — on parle de protocole leaderless.

En effet, Avalanche oriente les nœuds vers un consensus émergeant en demandant l’avis d‘un sous-ensemble du réseau.

Actuellement l’accent est mis sur la scalabilité et la sécurité (qui sont elles aussi légitimes), au détriment de la décentralisation de la blockchain en général.

Ci-dessous, une liste non exhaustive des projets affectés par cette centralisation :

  • NEO, où nous avons 7 “consensus nodes”.
  • EOS, où nous avons 21 “Block Producers”.
  • TRON, 27 “super representatives”.

Afin de pallier à ce problème de centralisation, Avalanche introduit un nouveau mode de fonctionnement : la métastabilité inspiré par les protocoles gossip (épidémiques) *.

Exemple (voir GIF en-dessous) : Imaginez vous dans un stade avec des milliers de personnes ne se connaissant pas.

Vous allez sélectionner certaines personnes dans ce stade (5 autres personnes dans notre exemple) et leur demander leur couleur préférée : le bleu ou le rouge. Ces personnes vont alors vous répondre avec leur préférence. Dans notre exemple vous recevez comme réponse : trois rouges et deux bleus. La couleur majoritaire est donc le rouge et c’est cette couleur que vous allez adopter. Dans le même temps, les autres personnes présentes dans ce stade vont faire de même individuellement, c’est à dire choisir cinq autres personnes.

Après un tour, les probabilités d’avoir un exéco entre les deux couleurs sont astronomiquement faibles. Après un deuxième tour, cette possibilité est encore réduite. Au troisième tour, vous avez une plus grande probabilité d’avoir un problème de calcul sur votre ordinateur, que de rester sur un 50/50.

Dès qu’une tendance se forme, elle ne cessera de prendre de l’ampleur et ce à tous les tours, de façon à ce que l’ensemble des participants arrive à un consensus. Dans notre exemple on peut voir “le stade” balancer progressivement vers le rouge, jusqu’à ce que finalement tout le monde pensent que le rouge est la bonne couleur (consensus).

Avalanche métastabilité consensus.

La métastabilité n’est qu’une conséquence de la principale nouveauté des protocoles de type “Avalanche”. En effet la Team Rocket décrit Avalanche comme une nouvelle famille de consensus parce qu’elle est la première famille de consensus avec une probabilité non-nulle d’échec par votes (à notre connaissance). C’est à dire que quelque soit les événements, nous obtiendrons toujours un consensus sur l’ensemble du réseau.

Pour ce faire, on échantillonne aléatoirement des nœuds du réseau, ce qui permet d’obtenir un débit plus rapide ainsi que des consensus parallèles (parallélisme*), jusqu’à ce que tous les nœuds du réseau convergent et parviennent à un consensus global. Même sans avoir besoin de leader, le même niveau de sécurité est atteint.

Le consensus Nakamoto fonctionne aussi sous une probabilité non-nulle d’échec mais sans votes. C’est un format concurrentiel entre les mineurs où le résultat de la course au hachage est validé par l’ensemble des nœuds (désignation d’un leader).

Dix ans après la “percée” du protocole de Nakamoto, rendant possible la création d’un réseau distribué sans tiers de confiance, les problématiques restent les mêmes : décentralisation, scalabilité et sécurité.

Mis en lumière par Vitalik Buterin, le trilemme des blockchains stipule qu’il est difficile pour un système blockchain d’assurer simultanément les trois propriétés suivantes :

  1. La décentralisation.
  2. La sécurité du réseau.
  3. La scalabilité du réseau.

Le protocole Avalanche apparaît donc comme un possible candidat pouvant réaliser la vision de Nakamoto sans compromis sur ces 3 propriétés.

On notera aussi que Nakamoto comme la Team Rocket sont des pseudonymes, préservant l’anonymat de leur créateur. Cette anonymat permet à la cryptosphère de se concentrer uniquement sur la technologie et non sur les personnes.

Après avoir cerné les avantages de la nouvelle famille de protocole Avalanche, le deuxième article portera sur les différents protocoles qui composent cette famille (Slush, Snowflake, Snowball et Avalanche) ainsi que leur fonctionnement.

Lexique

POW (preuve de travail) : consiste à résoudre un casse-tête mathématique pour déterminer une valeur spécifique, appelée hachage. Pour trouver le hachage, le réseau de validateurs (mineurs) doit combiner le résultat du tour précédent (bloc précédent), les données des transactions en cours de validation et une valeur appelée nonce.

Parallélisme : En informatique, le parallélisme consiste à mettre en œuvre des architectures d’électronique numérique permettant de traiter des informations de manière simultanée, ainsi que les algorithmes spécialisés pour celles-ci. Ces techniques ont pour but de réaliser le plus grand nombre d’opérations en un temps le plus petit possible. Dans notre contexte cela veut dire que vous ne pouvez pas utiliser votre CPU pour valider des choses en parallèle avec le Bitcoin puisque tout est utilisé pour un hachage constant.

Dégradation gracieuse : c’est la capacité d’un ordinateur, d’une machine, d’un système électronique ou d’un réseau à maintenir une fonctionnalité limitée, même lorsqu’une grande partie de celle-ci a été détruite ou rendue inopérante. La dégradation gracieuse a pour but d’éviter une défaillance catastrophique.

Protocoles gossip (épidémiques) : Ils utilisent un principe simple : tout pair du réseau transmet l’information aux pairs qu’il connait (un sous-ensemble du total) et ceux-ci, à leur tour, vont transmettre cette information aux pairs qu’ils connaissent (on appelle parfois cette procédure “indondation” — flooding). Jusqu’à ce que la totalité des pairs du réseau connaissent l’information, sans avoir eu besoin d’un système centralisé.

Références :

  • Scalable and Probabilistic Leaderless BFT Consensus Through Metastability — Team Rocket 2019
  • Case of Proof of Stake devcon4 — Emin Gün Sirer
  • The Infrastructure for Blockchain 3.0 Shangai POLKADOT — Kevin Sekniqi

À propos d’Avalanche :

Avalanche est une plateforme open-source permettant de lancer des applications financières décentralisées et des déploiements de blockchain d’entreprise dans un écosystème interopérable et hautement évolutif. Les développeurs qui se servent d’Avalanche peuvent facilement créer des applications puissantes, fiables et sécurisées et des réseaux blockchain personnalisées avec des ensembles de règles complexes ou s’appuyer sur des sous-réseaux privés ou publics existants.

Telegram Francophone | Twitter Francophone |Site Web |Papier blanc | Twitter | Discord | GitHub | Documentation | Explorer | Avalanche-X | Telegram | Facebook | LinkedIn | Reddit | YouTube

--

--