Qu’est-ce que la Tolérance aux fautes byzantines pratique (PBFT)?
La Tolérance aux Fautes Byzantines Pratique (PBFT) est un algorithme de consensus conçu pour fonctionner efficacement dans un système asynchrone (aucune hypothèse n’est faite sur le timing) et optimisé pour avoir une faible latence.
Premièrement introduit par Miguel Castro et Barbara Liskov dans une étude de 1999, l’algorithme PBFT est une forme de réplication de machine d’état, ce qui signifie qu’un état du système est répliqué et distribué sur plusieurs serveurs. Cela rend finalement le système plus robuste car des défaillances telles que les fautes byzantines peuvent survenir de manière isolée, au lieu de provoquer la défaillance de tout un réseau.
Comment fonctionne l’algorithme PBFT
Fondamentalement, les nœuds dans un modèle PBFT sont ordonnés dans une séquence où un nœud est considéré comme le nœud principal (leader) et les autres nœuds sont parrainés comme des sauvegardes. Cependant, tous les nœuds au sein d’un réseau maintiennent toujours la communication. Le but est que tous les nœuds honnêtes parviennent à un accord concernant l’état du système par règle de la majorité.
Pour que le modèle PBFT fonctionne, le nombre maximal de nœuds malveillants ne doit pas être supérieur ou égal au tiers de tous les nœuds du système. Chaque tour de consensus PBFT (communément parrainé sous le nom de ‘vues’) est résumé en quatre phases simples :
- Un client envoie une demande d’opération de service au nœud principal (leader).
- Le nœud principal distribue cette demande à toutes les répliques de sauvegarde en même temps.
- Les répliques exécutent la demande et envoient une réponse au client.
- Le client attend des réponses de différentes répliques avec des résultats similaires.
Le noeud principal change toutes les vues , qui peuvent être remplacées par un “modification de vue‘ Si la demande n’est pas diffusée après une certaine période. De plus, si un nœud principal est jugé défectueux, il peut être supprimé avec l’accord d’une grande majorité de nœuds honnêtes.
Les exemples de plateformes utilisant des variantes de PBFT sont Zilliqa, Hyperledger et Tendermint.