BABE
Introduction
Dans cet article, nous allons aborder le système de création de blocs sur Polkadot : BABE qui prend le rôle de moteur de production de blocs.
BABE Polkadot
BABE signifie Blind Assignment for Blockchain Extension, c’est à dire la manière dont sont créés les blocs. Il est important de comprendre que la création de blocs et leur validation font le mode de fonctionnement du consensus de Polkadot.
Il fonctionne en deux étapes faites avec deux protocoles différents. :
- La création de bloc : Blind Assignment for Blockchain Extension (BABE)
- La validation de bloc : GHOST-based Recursive Ancestor Deriving Prefix Agreement (GRANDPA)
La validation de bloc est abordée dans l’article dédié à GRANDPA.
Caractère aléatoire des blocs
BABE présente un caractère aléatoire (random) d’où sa dénomination pour « blind ».
Le modèle de création de blocs est aléatoire, et son attribution à une fonction de temps dans les blocs, cette entité se nomme le « slot ».
Le « blocktime » sur Polkadot est de 6 secondes, avec un validateur à chaque slot créant le bloc. Un ensemble de slot est regroupé sous la forme d’une époque (epoch), une époque dure 2400 slot de six secondes, soit quatre heures pour une epoch.
Les fonctions vérifiables VRF
Sur les modèles de consensus de type ouroboros un peu comme le fait la blockchain Cardano mais des différences subsistent. Les VRF sont des fonctions vérifiables pour « verifiable random function (VRF) ». Elle permet d’élire un certain nombre de validateurs pour pouvoir valider les blocs dans une époque c’est à dire toutes les quatre heures pour que certains blocs puissent être créés par un certain nombre d’acteurs.
Cela permet aussi de faire en sorte que le moins de calcul possible qui soit gâché dans la nature, de cette manière, la blockchain est plus économe en énergie parce que les systèmes se focalisent sur la création du bloc.
Une fois que tous les validateurs ont été sélectionnés pour une époque, il faut définir quel est le validateur qui va créer le bloc.
À chaque slot, c’est à dire à chaque bloc qui va être validé il y aura un leader : c’est un validateur qui va être élu.
Exemple de validation possible, mais risqué :
Polkadot aurait pu utiliser un autre système. Prenons un exemple simplifié, admettons que nous soyons trois personnes qui validons des blocs au total sur la blockchain.
- Nono
- son petit frère
- son grand frère
De cette manière, nous aurions pu le faire à tour de rôle sauf que l’on pourrait déterminer à l’avance la personne validant le bloc. Cela peut engendrer des attaques et en conséquence, réduire le niveau de sécurité de la blockchain donc le choix des validateurs est aléatoire.
Les validateurs leaders
Les leaders sont sélectionnés pour une époque.
Un validateur sera élu à chaque bloc et à chaque slot un acteur sera leader.
Il est possible qu’un validateur élu ne réponde pas, ou qu’il ait un autre problème, ainsi deux validateurs sont élus à chaque fois.
- Un primaire
- Un secondaire
Dans le cas où le validateur primaire ne répond pas c’est le secondaire qui prend le relais. En conséquence cela permet d’avoir une fluidité dans la création de blocs.
Le BABE permet de cette manière aux acteurs de créer des blocs.
Différence avec les autres moteurs de création de blocs
Il y a deux différences principales sur les autres modèles et y compris les modèles Ouroboros :
- L’horloge
- Le modèle de staking proportionnel
Dans d’autres modèles Proof of Stake (PoS) : ce sont les gros validateurs qui ont une occurrence de probabilités de chance la plus importante de valider les blocs.
Dans BABE vous pouvez avoir différents blocs qui sont créées. Il existe fréquemment des forks, ce sont des petits forks invisibles mais existants.
L’horloge
L’horloge utilise habituellement un système de NTP (Network Time Protocol).
C’est un serveur récupérant les données horaires du satellite d’internet qui vont par la suite les redistribuer à d’autres acteurs.
Ce serveur distribue aussi aux validateurs, d’où l’importance de se détacher de la centralisation afin de répondre aux problèmes de pannes probables. Polkadot a mis en place un système différent permettant de faire en sorte que l’heure sera vérifiée directement chez chaque validateur avec consensus où tous se mettent d’accord sur l’heure.
Vous savez désormais comment fonctionne le protocole BABE, au plaisir !