AccueilVIDÉOSGRANDPA : Validation des blocs sur Polkadot

GRANDPA : Validation des blocs sur Polkadot

GRANDPA

Bonjour à tous j’espère que ça va pour tout le monde suite de l’épisode précédent où je vous ai expliqué ce que c’était BABE moteur de production de blocs dans la série cinq minutes pour comprendre.

La validation des blocs

Maintenant que vous savez comment fonctionne la création de blocs, je vais vous parler de la validation de ces blocs : comment on fait pour sécuriser la blockchain, comment on fait pour savoir si le bloc A est bon et le sait pourquoi c’est pas le bloc B qui est bon ?

Une fois que la vie cette vidéo et sera terminé normalement, le consensus n’aura plus de secrets pour vous ! Je serais content de vous avoir expliqué ça parce que ça change un peu des vidéos habituelles.

Le protocole BABE pour créer les blocs, GRANDPA pour finaliser et pour valider les blocs.

GRANDPA signifie : GHOST-based Recursive ANcestor Deriving Prefix Agreement.

C’est un système qui a été rédigée en RUST le langage de programmation, c’est un système qui est similaire au BFT qui signifie Byzantine Fault Tolérance.

Faisons simple : c’est la manière dont le consensus est adopté c’est à dire que comme c’est comme dans une discussion familiale quand vous avez un consensus.

Byzantine Fault Tolérance

Il y a une question :

Devons-nous choisir le Bloc A où est-ce que l’on choisit le Bloc B ? Dans les fait : il y a une armée de validateurs qui doit émettre un consensus pour être d’accord afin de valider le bon bloc sur le registre de la blockchain.

Afin d’être certain de valider le bon bloc et de sécuriser la blockchain, je vais vous expliquer comment cela se passe. C’est grâce à ce mécanisme mais celui de Polkadot est un peu différent des autres modèles de BFT, c’est pour ça qu’ils ont fait leur propre modèle spécifique.

Il faut bien dissocier les 2 éléments :

  1. la création des blocs = 1 protocole
  2. la validation des blocs = 1 protocole

Il y a deux protocoles différents qui font cela : GRANDPA permet de valider plusieurs blocs en même temps donc c’est important de pouvoir valider plusieurs blocs en même temps parce que ça accélère et ça envoie une finalité instantané.

Le protocole GRANDPA peut valider des millions de blocs au même moment mais attention ce n’est pas lui qui fait la vitesse du réseau puisque avant de valider des blocs, il faut les créer.

La validation ne se fait pas sur la blockchain, elle se fait en dehors de la chaîne et ce qui est très important à comprendre c’est que cette validation, on pourrait penser qu’elle valide le bloc (comme nous pouvons l’entendre par abus de langage) mais en réalité GRANDPA valide la chaîne.

Cela fait une différence fondamentale parce que c’est l’une des conditions qui permet de choisir le bon bloc et je vais vous donner justement ces conditions pour pouvoir valider les blocs.

Il faut atteindre un consensus comme je vous l’avais dit le consensus et « des deux tiers ». C’est à dire qu’ il faut que les 2/3 des validateurs qui votent se mettent d’accord sur le même bloc à valider. Ce sera ce bloc là qui sera élu.

Donc cela signifie que le réseau peut supporter un tier de validateurs malicieux (ou mauvais). S’il ya un tiers de mauvais validateurs cela peut générer de secousses comme vous pouvez le voir là sur le schéma de la vidéo.

C’est que vous voyez en noir c’est les anciens blocs déjà validé en rose les blocs qui viennent d’être finalisées et en rose clair c’est les blocs qui sont candidats.

Comment sélectionner le prochain bloc ?

validation blocs grandpa
Manière de valider des blocs

À droite en gris ce sont les validateurs, il s’agit des personnes qui vont voter pour déterminer quel est le bon bloc. Quand nous voyons le premier en rose clair, en haut du schéma. Nous voyons que celui-ci n’a pas été finalisé, pourquoi ?

Parce que, au final il y en a que 1 bloc sur les 7 blocs du schéma qui peut être validé. Il y a un seul validateur qui a voté pour ce bloc là, du coup vu qu’il s’est retrouvé tout seul il n’a pas été voté par le système.

Ce bloc n’a pas été élu, ni finalisé, par contre les blocs suivant eux l’ont été donc c’est à dire que si il y a une règle qui est importante pour la validation des blocks : c’est qu’ il faut que ça soit toujours sur la chaîne la plus longue.

C’est très important et il faut aussi prendre en compte les anciens blocs qui ont été finalisés : on se rattache toujours à la chaîne des anciens blocs qui ont été finalisés.

Dans notre cas, par exemple, on pourra pas valider celui qui est tout en haut pourquoi parce qu’il n’est pas rattaché un bloc et déjà finalisé sinon ça créerait des problèmes.

Alors cela existe et peu arriver sur des systèmes distribués mais je n’ai jamais observé cela sur Polkadot pour le moment.

La REORG Reorganisation

Lorsque ça arrive sur d’autres blocs chaîne : pendant un temps très court y ait un bloc parallèle qui est validé, cela s’appelle la reorg. La réorganisation.

Quand ça arrive et que c’est un mauvais bloc qui est validé, cela peut durer qu’un seul bloc mais au bout de 1 bloc ou de plusieurs blocs, les validateurs reviennent à la chaîne initiale.

Plus la réorganisation est longue et plus c’est dangereux pour le réseau parce que cela peut créer un fork de la blockchain.

Comment valider les blocs Polkadot

Maintenant vous savez comment comment on valide les blocs.

Par le vote des validateurs : il faut que les validateurs se soient mis d’accord sur le consensus pour obtenir 2/3 des votes.

Je vous donne un exemple j’ai trouvé un exemple je vous le donne là en bas

quel bloc valider grandpa
Exemple de 3 blocs, lequel choisir ?

Vous avez les blocs précédent qui ont déjà été validées A, B et C.

Ensuite arrive 2 blocs : D1 et D2.
Lequel choisir ?

Entre les deux entre le D1 et le D2, en haut on a 3 Nodes (node = noeud = validateur)

Il y a trois nœuds et sauf que ils ont différents pouvoirs parce que ils hébergent différents montants de token DOT. Dans le graphique, ils l’ont fait en dollars mais en l’occurrence, c’est des DOT.

Cela signifie que la puissance de vote varie en fonction du nombre de dot qu’il a reçu dans son validateur. Lorsque quelqu’un met en staking sur un validateur en réalité en lui donne le vote pour pouvoir sélectionner le bon bloc.

C’est pour cela qu’il faut sélectionner les bons validateurs en Staking donc le truc c’est que ils ont le choix entre le D1 et le D2.

  • Le D1 a 4 votes qui pour l’équivalent de 20 dollars.
  • Le D2 a 11 votes pour l’équivalent de 55 dollars. Il a les 2/3 des votes ✅

Dans l’exemple, un vote est de 5 dollars si on prend le total de tous les deux, la somme est de 100 dollars.

Le bloc D2 est validé et donc le D1 ne sera pas validé. Ensuite, il y aura d’autres blocs qui vont être validés et ça sera toujours la règle des 2/3.

Le processus peut valider plusieurs blocs en même temps c’est à dire que s’il y a plein de blocs qui commence à s’accumuler, le processus de validation il peut très bien directement à partir d’ici valider toute la ligne directement.

Il se rattache à la chaine des ancêtres (cela s’appelle comme cela), c’est l’ancêtre de la blockchain et c’est toujours la chaîne la plus longue et validé avec les 2/3 des votes des validateurs !

Logiquement, la validation des blocs vous savez maintenant ce que c’est 😁

J’espère vous avoir aidé à tout comprendre. Pour le Byzantine Fault Tolerance si vous voulez que je fasse une petite vidéo de 5 minutes vite fait pour vous expliquer c’est possible demandez le mois. En attendant je vais partir sur d’autres choses maintenant qu’ils m’ont ont aussi été demandés.

Si cela vous a plu, vous pouvez me le faire savoir en commentaire 😉😋

Sources

  • Github de Parity sur GRANDPA : https://github.com/paritytech/finality-grandpa/blob/master/README.md
  • GRANDPA: a Byzantine Finality Gadget: https://arxiv.org/abs/2007.01560
  • Introduction à la finalité de Polkadot : https://medium.com/polkadot-network/grandpa-block-finality-in-polkadot-an-introduction-part-1-d08a24a021b5
  • Sharding et Sécurité de Polkadot : https://polkadot.network/blog/polkadot-consensus-part-2-grandpa/
Polka France
Polka Francehttp://polkafrance.fr
Nous suivons les travaux de Gavin Wood qui est le créateur technique Ethereum depuis sa création depuis son départ de la fondation Ethereum en 2015. Nous approuvons actuellement la proposition proposée par Parity Technologies sur Polkadot.

Article assocés

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

Les derniers articles