Comment fonctionne la validation par preuve d'enjeu au sein d'une chaîne de blocs

in #blockchain5 years ago (edited)

0.png

Une vue d'ensemble et de haut niveau des réseaux basés sur de la preuve d’enjeu.

Allons-y !

I) Qu'est-ce que la preuve d’enjeu ?

1) L'efficacité énergétique :

Dans tout type de réseau en chaîne de blocs, il est nécessaire de concevoir un algorithme de consensus qui détermine si les transactions sont enregistrées dans le registre numérique distribué ou non.

Ainsi, une chaîne de blocs n’est pas uniquement un grand livre numérique partagé, relié d'un bloc à l'autre et rempli de transactions telles que : Bob envoie 1 BTC à Alice, Alice envoie 2 BTC à Bob.

Une chaîne de blocs intègre un modèle de consensus qui est simplement la façon dont nous déterminons et dont nous décidons en tant que réseau quelles transactions font partie du registre numérique distribué.

Ainsi, ce qui différencie la preuve d’enjeu de la preuve de travail, c'est l’efficacité sur le plan énergétique. La puissance de calcul et l'électricité utilisées pour déterminer quelles transactions sont incluses dans le cadre d’une validation basée sur de la preuve de travail (Proof-of-Work-PoW) sont gigantesques, ce qui n’est clairement pas le cas pour une validation via preuve d’enjeu.

2) Un vote des validateurs :

La façon dont nous déterminons quelles transactions sont incluses dans le registre distribué s’effectue à travers un vote.

Les validateurs votent de la validité de ces transactions.

A chaque fois qu'ils votent, ils signent leurs votes avec leur clé cryptographique (clé privée) et ils fournissent un dépôt ou une obligation sous forme de quelques jetons qui servent d’enjeu lors du vote.

3) Une sécurité accrue est nécessaire :

Dans les réseaux utilisant une validation par preuve de travail, c'est la puissance de calcul et l'électricité des machines qui sécurisent le réseau. Il est impossible de falsifier la puissance de calcul ou l'électricité et c'est donc ce qui rend les réseaux comme bitcoin très sécurisés.

Mais dans les réseaux basés sur un système de validation par preuve d’enjeu, les votes sont des signatures numériques et ils peuvent être manipulés par de mauvais acteurs, ce qui signifie qu'une plus grande sécurité est nécessaire.

En clair, dans les réseaux dont la validation s’effectue via de la preuve d’enjeu, la sécurité et l'expertise opérationnelle remplacent la puissance de calcul brute des machines comme mécanisme de sécurisation du réseau.

II) Les raisons d’utilisation

Selon quelques recherches effectuées par Coinbase en juin 2019, environ 8 % du marché des crypto-monnaies avait adopté un consensus (algorithme) de type preuve d’enjeu.

D'ici fin 2020, avec le lancement d'Ethereum 2.0 basé sur une validation utilisant la preuve d’enjeu, 21 % du marché adoptera ce mode de validation comme modèle de consensus. Cela implique que les récompenses annuelles que les validateurs gagneront en participant au consensus seront d'environ de l’ordre d’un milliard de dollars (estimation basée sur les prix de février 2020).

Maintenant, si vous réfléchissez aux frais qu'un validateur facture, ils sont généralement de l’ordre de 10 à 20 %. Cela signifie que les récompenses annuelles ou les frais de validation s'élèveront à environ 100 millions ou plus pour la seule année 2020. Il s'agit donc d'un marché très intéressant et d'une toute nouvelle opportunité de marché qui, jusqu'à présent, n'était accessible qu'aux grandes entreprises de minage du monde des crypto-monnaies.

Vous pouvez donc imaginer qu'avec cette toute nouvelle opportunité de marché, il y a tout un tas de nouveaux services de validation qui commencent à vouloir en faire partie.

Cela a donc créé une véritable course aux enjeux

Un certain nombre de « fournisseurs d'infrastructures d’enjeux » ont été lancés récemment et beaucoup sont apparus il y a environ un an.

Il s'agit de fournisseurs comme Staked.US, Bison Trails, Blockdaemon et BitFish (pour ne citer qu’eux).

Vous pouvez voir qu'ils créent de nombreux actifs de type preuve d’enjeu puisque Staked.US par exemple a lancé 13 actifs basés sur de la preuve d’enjeu et 12 autres sont à venir d'ici la fin de l'année.

Vous voyez également les fonds crypto entrer dans le game : Polychain Capital et Dokia Capital par exemple lancent des « actifs à enjeux ».

Et bien sûr, des bourses de crypto-monnaies comme Coinbase, Binance et Kraken se lancent également dans la preuve d’enjeu.

La raison pour laquelle je cite ce type d'actifs et d'acteurs est que vous pouvez voir que beaucoup d’entre eux se lancent très rapidement.

Ces validateurs ou fournisseurs de services d’enjeu lancent de nouveaux actifs aussi rapidement que possible parce qu'il y a une sorte de ruée vers l'or et que les valeurs qui ont les meilleurs réseaux sur leurs plateformes sont capables de capturer plus de revenus via de la preuve d’enjeu pendant les premiers jours.

Mais ce que cela implique également, si vous pensez à ce que j’ai mentionné plus tôt, que la sécurité des compétences opérationnelles remplace la puissance de calcul brute des machines et rend le modèle de sécurité risqué.

Ce que ces entreprises pourraient vous envoyez comme signal en lançant si rapidement ce genre d’actif (via une sorte de modèle Binance) est que la sécurité n'a pas vraiment d'importance...

Sauf qu'en réalité, cela a vraiment beaucoup ! Car dans les réseaux de type preuve d’enjeu, les validateurs fournissent des attestations cryptographiques sécurisées et disponibles à tous.

Je veux donc illustrer comment cela fonctionne en parlant du problème « d’absence d’enjeu ».

III) La sécurité (pourquoi est-elle si importante) et le problème de « l’absence d’enjeu (Nothing at Stake Problem) »

Dans un monde parfait vous avez les blocs A, B et le bloc C viendra ensuite. Le bloc C contiendra un ensemble de transactions qui y seront incluses et sur lesquelles tout le monde sera d'accord puisque tout le monde votera pour savoir si ces transactions étaient valables ou non.

Mais ce qui se passe parfois dans les réseaux types bitcoin, c'est que nous avons parfois deux blocs avec la même hauteur (height) de bloc.

Cela peut se produire pour un certain nombre de raisons, mais il peut arriver que si une partition du réseau existe et que certains nœuds du réseau ne voient pas d'autres nœuds, ils peuvent produire un bloc parce qu'ils ne savent pas que quelqu'un d'autre produit déjà le bloc équivalent à cette hauteur.

Ainsi, dans le cas normal au sein du réseau bitcoin ou Ethereum, la façon de déterminer quel bloc devient le véritable bloc suivant dans la chaîne est de regarder quelle chaîne comporte le plus de travail (puissance brute de calcul provenant des machines).

Donc, dans le scénario idéal, l'une de ces deux chaînes est choisie comme gagnante parce qu'il y a plus de travail que sur l’autre qui est perdue à jamais dans la poussière de l'histoire.

La validation par preuve d’enjeu fonctionne de manière très similaire à la validation par preuve de travail mais c'est le bloc qui a le plus de votes qui gagne.

Mais, que se passe-t-il s'il n'y a pas de pénalité pour avoir voté sur plusieurs blocs ?

La théorie des jeux (Game Theory) nous dit que la façon la plus rentable de réussir est de tricher et de voter sur les deux chaînes simultanément. Ce qui peut arriver dans ce scénario, c'est que les deux chaînes aient un nombre égal de votes.

Les deux chaînes s'étendent au même rythme et c'est comme si elles avaient deux emplois : je peux travailler dans deux emplois et j'attends d'être promu dans un emploi pour quitter l’autre.

Donc, s'il n'y a rien en jeu, il vaut mieux tricher.

La façon dont les réseaux de type preuve d’enjeu empêchent ce comportement est d'utiliser du « tronçonnage » (slashing).

Entant que validateur, en signant un vote à partir de deux blocs différents de même hauteur, je peux perdre tout le dépôt et tous les jetons que j'ai présentés comme étant mon enjeu, ceci afin d'éviter le problème de "l’absence d’enjeu".

Si je peux dépenser de l'argent sur une chaîne, alors je peux l'envoyer à une plateforme d’échange, le convertir en USD ou en BTC, puis voter sur l'autre chaîne qui ne contient pas mes dépenses et je viens de tenter une attaque de type double dépense. C'est pourquoi tous les réseaux de type preuve d’enjeu mettent en œuvre des protocoles de tronçonnage pour empêcher que cela ne se produise.

C'est aussi pourquoi il est si important pour nous de sécuriser ces réseaux en tant que validateurs, car non seulement notre propre dépôt, nos propres limites et risques valent la peine d'être mis en jeu, mais la sécurité du réseau lui-même est le risque. Si quelqu'un réussit à attaquer à 51 % ou à autoriser des attaques de double dépense sur un réseau de crypto-monnaie, la valeur de ce réseau chutera très rapidement et pourrait finir par atteindre zéro.

La sécurité de l'ensemble du réseau est donc en jeu et il nous appartient, en tant que validateurs, de sécuriser ce réseau et d'assurer un très bon contrôle des clés privées que nous utilisons pour sécuriser nos votes.

Ce que je viens de vous démontrer est donc une illustration du consensus de Nakamoto et qui se trouve dans le livre blanc de Bitcoin.

IV) Les différents modèles de consensus dans les réseaux de type preuve d’enjeu : la différence entre le consensus de Nakamoto et la « tolérance aux fautes byzantines (Byzantine Fault Tolerance - BFT) »

De manière simplifiée, dans le cas de la validation par preuve de travail, la chaîne qui contient le plus de puissance de calcul brute, ou dans le cas de la validation par preuve d’enjeu, la chaîne qui possède le plus de votes, gagne.

Le consensus de Nakamoto n'est pas le seul consensus que les réseaux de type preuve d’enjeu ont adopté.

Il existe un autre modèle de consensus qui est très populaire dans les réseaux basés sur de la validation par preuve d’enjeu nommé la tolérance aux fautes byzantines.

Ainsi, la tolérance aux fautes byzantine illustre le problème du général byzantin, problème au sein duquel je ne veux pas entrer dans les détails car vous pouvez le trouver sur Google.

En bref, dans ce scénario fictif, un groupe de généraux et leurs messagers se regroupent à l'extérieur de la ville de Byzance et ils essaient de planifier leur attaque. La ville est bien défendue et ils savent que l'attaque ne sera couronnée de succès que si au moins 2/3 des généraux attaquent en même temps. Mais certains des généraux et leurs messagers sont corrompus et ils pourraient collaborer avec l'ennemi. Ils peuvent donc soit ordonner une retraite lorsque vous avez ordonné une attaque, soit une attaque lorsque vous avez ordonné une retraite. De plus, pour qu'une attaque ou une retraite soit réussie, au moins 2/3 des généraux ne doivent pas être corrompus et doivent donc, être loyaux.

Ainsi, la tolérance aux fautes byzantines est très similaire au problème d’absence d’enjeu car pour qu'un bloc soit finalisé ou que les transactions de ce bloc fassent partie du registre numérique distribué, les 2/3 des validateurs doivent voter et se mettre d'accord avant que ce bloc ne soit final.

Cela donne une caractéristique vraiment intéressante puisque je n'ai pas à me soucier de ce problème où les transactions peuvent disparaître parce que j'ai une finalité instantanée. Il n'y a aucune chance qu'une transaction qui a eu lieu sur une chaîne soit rendue invalide à l'avenir. Cela signifie donc que ma transaction peut être finalisée immédiatement et que je peux dépenser instantanément de l'argent ou le convertir, le vendre sur un marché boursier mais il y a un coût potentiel et un compromis à envisager : une perte potentielle de consensus.

Ainsi, si les 2/3 des validateurs ne peuvent pas voter sur un nouveau bloc, le consensus échouera, la chaîne restera en place et de nouvelles transactions ne seront pas ajoutées au registre numérique distribué.

La tolérance aux fautes byzantines nous donne donc cette belle caractéristique de finalité instantanée, mais au prix d'une perte potentielle de consensus. Pourquoi ? Parce que nous devons avoir au moins 2/3 du réseau en ligne tout le temps pour qu'un consensus soit atteint.

Le consensus de Nakamoto est très résistant aux partitions du réseau ou aux temps d'arrêt de(s) validateur(s), mais le compromis qu'il permet de faire est que la finalité est probabiliste. C'est pourquoi de nombreuses bourses d’échanges de crypto-monnaies attendent la confirmation de 6 blocs avant de reconnaître un dépôt de Bitcoin comme définitif.

Tout simplement parce que si vous faites le calcul, après 6 confirmations de blocs, il est statistiquement très peu probable qu'une réorganisation se produise et que vous puissiez perdre votre argent.

Donc, avec le consensus de Nakamoto nous n'avons pas cette caractéristique agréable de la finalité instantanée, mais 2/3 du réseau ou plus peut être hors ligne pendant que des blocs peuvent encore être produits.

Conclusion :

Je voulais donc partager ces deux modèles de consensus que nous voyons souvent parce qu'il n'y a pas de modèle supérieur à l'autre, ils ont leurs avantages et leurs inconvénients et je pense qu'il est important de comprendre chaque consensus/algorithme.

Vous verrez les deux dans des cas différents comme par exemple Tezos qui utilise le consensus de Nakamoto. Ainsi, avec les Tezos, vous devez attendre 30 confirmations avant de considérer une transaction comme définitive.

Cosmos, par exemple, utilise la tolérance aux fautes byzantines, de sorte qu'avec Cosmos, les transactions sont instantanément définitives. Mais la différence se situe aussi au niveau de la mécanique du tronçonnage.

Avec le consensus de la tolérance aux fautes byzantines, on constate également une baisse de la qualité de vie sur ces réseaux, c'est-à-dire que si vous êtes hors ligne pendant une période prolongée en tant que validateur, vous pouvez être pénalisé et perdre une partie de vos dépôts et de vos jetons. Si vous ne participez pas au consensus et si plus d'un tiers du réseau est hors ligne, le réseau tiendra bon. Ainsi, les réseaux basés sur la tolérance aux fautes byzantines ont tendance à inciter les validateurs à être en ligne car il est vraiment important que le réseau soit suffisamment stable et que les transactions puissent toujours être engagées.

Avec toutes les informations ci-dessus, je pense que nous avons une vue d'ensemble et de haut niveau des réseaux basés sur de la preuve d’enjeu.

Traduction et Adaptation d'une intervention de Luke Youngblood, Créateur des modes de validations pour Tezos : Trust-Less 2020
Article précédent de Sirob : Voyons la réalité en face : la connivence sur le marché des cryptos a coûté cher
Profil Steem : Sirob