Aller au contenu
Blockchain Association of Cameroon
BAC-L0-FOUND-1093 h

Familles de consensus et finalité

Preuve de travail, preuve d'enjeu, BFT : ce que chaque famille achète, à quel prix, et ce que « finalisé » signifie dans chaque cas.

  • Comparer finalité probabiliste et finalité déterministe
  • Relier le mécanisme de sélection du proposant au modèle de sécurité
  • Identifier la condition de réorganisation dans chaque famille

Une transaction « vue dans un bloc » n'est pas forcément une transaction définitive. Dans cet atelier, vous apprenez ce que « finalisé » veut dire dans trois grandes familles de consensus : la preuve de travail, la preuve d'enjeu et les protocoles de type BFT. Vous verrez comment le choix du proposant de bloc détermine le modèle de sécurité, et quelle condition précise provoque une réorganisation de la chaîne dans chaque famille. À la fin, vous saurez lire une affirmation du type « 6 confirmations » ou « bloc finalisé » et dire exactement ce qu'elle garantit, et ce qu'elle ne garantit pas.

Leçons 1/4 · 15 min

Que veut dire « définitif » ?

Un paiement qui disparaît

Kofi vend des téléphones à Douala. Un client lui envoie 500 unités sur une blockchain (chiffres fictifs). Quelques minutes plus tard, le paiement apparaît dans le portefeuille de Kofi, dans un bloc tout récent. Il remet le téléphone. Une heure après, le paiement a disparu de la chaîne : le bloc qui le contenait a été abandonné par le réseau. Il n'y a eu aucun bogue. Kofi a pris « vu dans un bloc » pour « définitif ». Ce sont deux choses différentes.

Les mots, un par un

  • Bloc : un lot de transactions que le réseau accepte ensemble. Chaque bloc contient l'empreinte de son parent (atelier 104), ce qui forme une chaîne.
  • Bifurcation (fork) : deux blocs différents qui désignent le même parent. Cause honnête et fréquente : deux proposants produisent un bloc presque en même temps, et la latence du réseau (atelier 107) empêche chacun de voir l'autre à temps.
  • Règle de choix de branche (fork-choice rule) : la règle que chaque nœud applique pour désigner la « pointe » de la chaîne qu'il suit. Tous les nœuds appliquent la même règle, mais ils ne voient pas forcément les mêmes blocs au même instant.
  • Réorganisation (reorg) : un nœud abandonne sa branche actuelle pour une autre que sa règle juge meilleure. Les blocs abandonnés deviennent des blocs périmés (stale, ou « orphelins » dans l'usage courant). Leurs transactions retournent en attente, sauf si la nouvelle branche les contient déjà (vous verrez cette file d'attente, le mempool, à l'atelier 110).
  • Finalité : le moment à partir duquel un bloc ne sera plus annulé, sous des hypothèses énoncées.

Deux sortes de finalité

La finalité probabiliste : plus il y a de blocs empilés au-dessus du vôtre, plus il devient improbable qu'une branche concurrente le remplace. La probabilité diminue à chaque bloc, mais elle n'est jamais exactement zéro. C'est le cas de Bitcoin.

La finalité déterministe : le protocole contient une étape explicite qui déclare un bloc finalisé. Après cette étape, annuler le bloc exige de violer l'hypothèse de sécurité du protocole (par exemple « plus d'un tiers des validateurs agissent de façon malveillante »). C'est le cas des protocoles BFT comme Tendermint/CometBFT.

QuestionProbabilisteDéterministe
Quand est-ce « final » ?Quand le risque devient négligeable pour vousQuand le protocole le déclare
Valeur de la garantieUne probabilité qui décroîtTout ou rien, sous une hypothèse
Qui décide du niveau de risque ?Le receveur (combien de confirmations attendre)Le protocole

Exemple détaillé : compter les confirmations

Une transaction entre dans le bloc de hauteur 800. Quand le bloc 800 est la pointe, elle a 1 confirmation. Quand la pointe est au bloc 805, elle en a 6 (le bloc 800 et les cinq suivants). Une confirmation est donc simplement le nombre de blocs, le sien compris, au bout de la branche qui contient la transaction. Le nombre « 6 » utilisé pour Bitcoin est une habitude répandue, pas une règle du protocole : chaque receveur choisit son seuil selon la valeur en jeu.

Ce que cela ne garantit PAS

  • La finalité déterministe n'est pas inconditionnelle : si l'hypothèse (par exemple « moins d'un tiers de fautifs ») est fausse, la garantie tombe.
  • « Finalisé » ne dit rien sur le monde réel : un paiement finalisé reste un paiement envoyé à la mauvaise adresse si vous vous êtes trompé.
  • Le mot « finalisé » affiché par un nœud reflète ce que ce nœud a vu. Un nœud éclipsé (atelier 107) peut vous montrer une version fausse de la chaîne.

À retenir

Un bloc est une proposition ; la finalité est un jugement sur le risque qu'il soit remplacé. Probabiliste : le risque décroît. Déterministe : le protocole le ramène à une hypothèse énoncée.

Leçons 2/4 · 20 min

Preuve de travail : la loterie de hachage

Qui propose le prochain bloc ?

Dans un réseau ouvert, n'importe qui peut se présenter. On ne peut pas choisir « le nœud numéro 3 » : un attaquant créerait mille identités gratuites. Bitcoin, décrit dans l'article de Satoshi Nakamoto (Bitcoin: A Peer-to-Peer Electronic Cash System), répond par une loterie : pour qu'un bloc soit valide, l'empreinte de son en-tête doit être inférieure à une cible. Chercher un nonce qui y arrive demande des essais répétés (essayez avec l'outil miner sous ce texte ; les empreintes viennent de l'atelier 104). Le proposant est celui qui gagne la loterie ; sa chance est proportionnelle à sa part de la puissance de hachage totale. Le coût est du matériel et de l'électricité, pas une identité.

Règle de choix de branche : le travail cumulé

Les nœuds suivent la branche valide qui représente le plus de travail cumulé, c'est-à-dire la somme du travail (inverse de la cible) de tous ses blocs depuis la genèse. Dans le cas simple où la difficulté ne change pas, cela revient à la branche la plus longue ; mais la vraie règle est « le plus de travail », pas « le plus de blocs ».

Condition de réorganisation en preuve de travail : un nœud se réorganise dès qu'il reçoit une branche valide dont le travail cumulé dépasse celui de sa branche actuelle. Aucun vote, aucun message d'autorisation : c'est une simple comparaison.

Exemple : la chaîne actuelle est G-A-B (travail 1 par bloc : total 2). Un mineur produit en secret C' sur A (G-A-C' : total 2), puis D' sur C' (G-A-C'-D' : total 3). Dès que D' est publié, tous les nœuds passent à la branche C'-D'. B est périmé et ses transactions repartent en attente. Essayez dans l'outil fork-sim : ajoutez des blocs sur chaque branche et regardez quelle pointe est retenue.

Pourquoi la finalité est probabiliste

Soit un attaquant qui contrôle une part q de la puissance de hachage et des honnêtes qui en ont p = 1 − q. Premier modèle, très simplifié (marche aléatoire) : la probabilité que l'attaquant rattrape un retard de z blocs vaut (q/p)^z si q < p, et 1 sinon. Ce modèle sous-estime fortement le risque : il ignore l'avance que l'attaquant prend pendant que les honnêtes minent leurs z blocs. Il sert seulement à voir la décroissance exponentielle en z, jamais à fixer un seuil.

Le calcul de l'article de Nakamoto (section 11) tient compte de cette avance, avec une loi de Poisson. Convention retenue ici : z est le nombre de blocs ajoutés après le bloc de la transaction, donc c confirmations (leçon 1, bloc compris) correspondent à z = c − 1. Les valeurs ci-dessous sont celles de la formule de l'article, comparées au modèle simplifié :

Part q de l'attaquantzModèle simplifié (q/p)^zFormule de l'article
10 %111,1 %20,5 %
10 %21,2 %5,1 %
10 %30,14 %1,3 %
10 %60,00019 %0,024 %
30 %218,4 %44,6 %
30 %60,62 %13,2 %
45 %266,9 %87,8 %
45 %630 %76,6 %

Lecture : avec 10 % de la puissance et la formule de l'article, il faut z = 5 (soit 6 confirmations) pour passer sous 0,1 % (environ 0,09 %) ; avec 30 %, six blocs après la transaction laissent encore 13 % de risque ; avec 45 %, ils laissent environ trois chances sur quatre de renversement. Ces chiffres supposent l'attaquant de l'article (il mine en secret depuis le bloc qui précède la transaction, avec une puissance constante) ; des analyses ultérieures affinent la formule exacte et les conventions de comptage, que nous ne reproduisons pas. Le bon nombre de confirmations dépend de la valeur en jeu et de la puissance qu'un attaquant peut réunir.

L'attaque des 51 %

Si q dépasse 50 %, (q/p)^z n'est plus inférieur à 1 : l'attaquant finit par rattraper n'importe quel retard. Il peut alors réécrire ses propres paiements récents (double dépense), et refuser d'inclure certaines transactions (censure). Aucun nombre de confirmations ne borne alors la probabilité de renversement (elle tend vers 1) : la profondeur augmente seulement le coût de l'attaque (par exemple la durée pendant laquelle il faut louer la puissance), et c'est ce coût qui doit dépasser le gain espéré (voir l'exercice de sécurité). Il ne peut pas forger la signature de quelqu'un d'autre, ni dépenser des fonds qui ne sont pas à lui, ni changer les règles de validité que les nœuds complets appliquent : ses blocs invalides seraient simplement rejetés.

Ce que cela ne garantit PAS

  • La preuve de travail ne garantit pas l'accord immédiat : deux bifurcations honnêtes se produisent régulièrement.
  • Elle ne dit pas que la branche retenue est la « vraie » au sens moral : c'est la plus coûteuse à produire.
  • Le seuil de 50 % est un repère, valable quand les blocs sont rares devant le temps de propagation : avec de forts délais réseau, la part de puissance tolérée baisse. Des stratégies comme le minage égoïste peuvent aussi rendre une coalition plus petite rentable, donc 49 % n'est pas « sans danger ».

À retenir

Proposant : le gagnant de la loterie de hachage. Réorganisation : une branche valide avec plus de travail cumulé. Finalité : probabiliste, qui croît avec la profondeur.

Outil interactif

Mineur jouet (preuve de travail)

Cherche le plus petit nonce dont l'empreinte SHA-256 de « données + nonce » commence par des zéros hexadécimaux. Chaque zéro supplémentaire multiplie le travail moyen par 16.

Le texte haché est exactement les données suivies du nonce en décimal (sans séparateur). La recherche est découpée en tranches : la page reste réactive.

Outil interactif

Simulateur de fourches

Ajoutez des blocs sur n'importe quelle branche. La meilleure chaîne est celle au travail cumulé le plus élevé depuis la genèse G.

  • G
    • B1+1travail cumulé 1
      • B2+2travail cumulé 3· obsolète
        • B4+1travail cumulé 4· pointe· obsolète
      • B3+1travail cumulé 2
        • B5+3travail cumulé 5· pointe★ meilleure pointe

Meilleure pointe : B5 (travail cumulé 5).

Blocs obsolètes (hors de la meilleure chaîne) : 2.

Règle : plus grand travail cumulé ; à égalité, le bloc listé en premier garde la place. Les blocs hors de la meilleure chaîne sont dits obsolètes (orphelins) : leur travail est perdu pour la chaîne retenue. Le « travail » est ici un petit entier fictif.

Leçons 3/4 · 25 min

Enjeu et BFT : voter plutôt que miner

Choisir le proposant sans brûler d'électricité

Dans les familles par preuve d'enjeu (proof of stake) et BFT, un ensemble connu de validateurs a déposé un enjeu (des jetons bloqués). Le proposant n'est plus celui qui calcule le plus : il est désigné par une règle déterministe ou pseudo-aléatoire, pondérée par l'enjeu. Dans Tendermint/CometBFT (article : The latest gossip on BFT consensus), par exemple, le proposant tourne selon un ordre pondéré par le poids de vote de chaque validateur.

Le modèle de sécurité change donc de nature : en preuve de travail, on suppose « moins de la moitié de la puissance de hachage est malveillante » ; en BFT, on suppose « moins d'un tiers du poids de vote est malveillant » (atelier 108).

Le tour de vote BFT, avec des chiffres

Reprenons le calcul de l'atelier 108. Avec n = 3f + 1 validateurs, on tolère f fautes byzantines et un quorum vaut 2f + 1 votes. Pour n = 7 : f = 2, quorum = 5. Un tour simplifié :

  1. Le proposant du tour diffuse un bloc.
  2. Les validateurs envoient un premier vote (prevote) pour ce bloc.
  3. Si un quorum (5 sur 7) a prévoté, ils envoient un second vote (precommit).
  4. Si un quorum de precommit est atteint, le bloc est validé définitivement : c'est la finalité déterministe.

Pourquoi deux quorums ne peuvent pas valider deux blocs différents : deux ensembles de 5 parmi 7 se recoupent forcément en au moins 5 + 5 − 7 = 3 validateurs, soit f + 1. Si au plus f = 2 sont byzantins, au moins un des 3 est honnête, et un validateur honnête ne vote jamais deux blocs au même tour. Donc les deux quorums ne peuvent pas désigner deux blocs différents. C'est la sûreté (safety), ici pour un tour simplifié : les tours successifs d'une même hauteur sont reliés par une règle de verrouillage que nous omettons.

Si 3 validateurs sur 7 sont hors ligne, il n'en reste que 4 : le quorum de 5 est inatteignable. La chaîne s'arrête : plus de nouveau bloc, mais aucun faux bloc non plus. C'est la vivacité (liveness) qui est perdue, pas la sûreté. Essayez avec l'outil quorum-sim.

Condition de réorganisation en BFT

Dans un protocole BFT à finalité immédiate, il n'y a pas de réorganisation normale : un bloc validé est définitif. Pour que deux blocs conflictuels soient validés à la même hauteur, il faut que plus d'un tiers du poids de vote ait violé le protocole, typiquement en signant deux fois (double signature, ou equivocation). Une double signature est une preuve vérifiable et peut être sanctionnée ; toutes les violations ne se prouvent pas aussi facilement.

Les chaînes hybrides

Certaines chaînes par enjeu combinent une règle de choix de branche (la chaîne continue de se former même si la finalisation tarde) et une couche de finalisation par vote. Sur Ethereum, le mécanisme Casper FFG marque des points de contrôle comme « justifiés » puis « finalisés » avec un vote de deux tiers de l'enjeu total (la convention exacte, strict ou inclusif, est discutée à l'atelier 108). Avant la finalisation, des réorganisations sont possibles ; après, en revanche, en annuler un exige qu'au moins un tiers de l'enjeu soit détruisable par les règles de sanction. Ordre de grandeur : la finalisation y prend de l'ordre d'une dizaine de minutes, contre quelques secondes pour Tendermint. Polkadot suit lui aussi un schéma hybride : une couche produit les blocs et une couche distincte les finalise, de sorte que sa « tête finalisée » peut être en retard sur sa « meilleure tête ».

Le problème du « rien en jeu » et la sanction

Si signer des blocs ne coûte rien, un validateur peut signer toutes les branches : il y gagne toujours quelque chose, et les forks ne se résolvent jamais. La réponse : le slashing. Signer deux blocs conflictuels fait perdre une part de l'enjeu déposé. L'enjeu n'est donc pas seulement un ticket d'entrée : c'est un otage.

Ce que cela ne garantit PAS

  • La sûreté BFT dépend de l'hypothèse « moins d'un tiers ». Au-delà, aucune garantie.
  • Si plus d'un tiers est hors ligne, la chaîne s'arrête : sûr mais pas vivant.
  • Le slashing punit après coup. Il ne remet pas les fonds volés dans une double dépense réussie.
  • Un validateur dont les clés sont volées peut être sanctionné pour une faute qu'il n'a pas commise : l'enjeu s'accompagne d'une hygiène de clés.

À retenir

Proposant : désigné par l'enjeu. Finalité : déterministe, par quorum de 2f + 1. Réorganisation : seulement si plus d'un tiers viole le protocole (typiquement en signant deux fois). Sanction : l'enjeu est la garantie.

Outil interactif

Simulateur de quorum BFT

Cliquez sur un validateur pour changer son état : honnête, hors ligne, puis byzantin (malveillant ou défaillant de façon arbitraire).

Nombre de validateurs n

n = 7 · f = ⌊(n−1)/3⌋ = 2 · quorum = 2f+1 = 5

7 honnêtes, 0 hors ligne, 0 byzantin.

✓ Décision possible : 7 validateurs honnêtes et en ligne ≥ quorum 5. Le réseau peut réunir un quorum et finaliser des blocs.

✓ Sûreté garantie par le modèle : 0 byzantin ≤ f = 2. Deux quorums se recoupent toujours en au moins un validateur honnête, donc aucune décision contradictoire.

Modèle classique des protocoles BFT : n ≥ 3f + 1 validateurs tolèrent jusqu'à f fautifs (hors ligne ou byzantins). Un quorum est de 2f + 1 votes. Perdre la vivacité = le réseau ne progresse plus, mais rien de faux n'est décidé. Perdre la sûreté = des décisions contradictoires deviennent possibles, ce qui est plus grave. La vivacité suppose en plus un réseau qui finit par délivrer les messages. Ce n'est qu'un modèle : les protocoles réels ont d'autres hypothèses et d'autres seuils.

Leçons 4/4 · 15 min

Comparer, puis décider

La question de l'intégrateur

Un commerçant, une plateforme de paiement ou un développeur d'application doit répondre à une question concrète : combien de temps dois-je attendre avant de livrer ? La réponse dépend de la famille de consensus. Voici la synthèse de l'atelier.

Preuve de travail (Bitcoin)Enjeu + vote (hybride, ex. Ethereum)BFT à finalité immédiate (ex. CometBFT)
Choix du proposantLoterie de hachage, proportionnelle à la puissanceTirage pondéré par l'enjeuRotation pondérée par le poids de vote
Hypothèse de sécuritéMoins de ~50 % de la puissance est malveillanteMoins d'un tiers de l'enjeu est malveillant (pour la finalité)Moins d'un tiers du poids de vote est malveillant
Condition de réorganisationBranche valide avec plus de travail cumuléPlus de poids de vote sur la branche, tant que non finaliséAucune normale ; seulement si plus d'un tiers viole le protocole (typiquement en votant deux fois)
Type de finalitéProbabilisteDéterministe après finalisationDéterministe dès la validation
Panne typiqueRéorganisation de profondeur croissanteRetard de finalisationArrêt de la chaîne (perte de vivacité)

Ce tableau est simplifié : chaque réseau réel ajoute des détails. Certaines chaînes ne suivent aucun des trois modèles à la lettre.

Exemple : fixer une règle de livraison

Kofi reçoit 500 unités sur une chaîne à preuve de travail. Il estime qu'un attaquant plausible contrôle au plus 10 % de la puissance. Avec la colonne « formule de l'article » du tableau de la leçon 2 (z = c − 1), deux confirmations laissent environ 5 %, trois environ 1,3 %, cinq environ 0,35 %, six environ 0,09 %. Pour une vente de 500 unités, il se fixe un risque sous 1 % et décide d'attendre cinq confirmations. Pour une vente de 50 000 unités, il viserait sous 0,1 % et en demanderait six ou davantage. Sur une chaîne BFT, il n'attend que la validation du bloc : « 3 confirmations » n'y a pas de sens, puisque le bloc validé est déjà définitif.

Lire la documentation sans se tromper

  • « Confirmé » désigne souvent inclus dans un bloc, pas final. Regardez si le texte dit « finalisé » ou « validé par quorum ».
  • Un nœud indique l'état qu'il connaît. Si vous interrogez un seul nœud et qu'il est éclipsé ou en retard, vous lirez une vérité périmée.
  • Une chaîne à finalité rapide n'est pas « plus sûre » : elle a un autre modèle de panne (arrêt plutôt que réorganisation) et suppose un ensemble connu de validateurs.

Ce que cela ne garantit PAS

  • Ce tableau ne classe pas les chaînes de la meilleure à la pire. Les trois familles achètent des choses différentes : ouverture sans permission, vitesse de finalisation, coût énergétique.
  • Un seuil de confirmations calculé pour un attaquant de 10 % est faux si l'attaquant peut louer ou acheter 40 % de la puissance, et aucune profondeur ne borne la probabilité face à une majorité (elle ne fait qu'en augmenter le coût). Un modèle de menace n'est pas une mesure.
  • Aucun nombre de confirmations ne protège contre une erreur de destinataire, une arnaque ou un contrat mal conçu.

À retenir

Pour décider combien attendre : identifier la famille, relever la condition de réorganisation, estimer l'attaquant le plus fort plausible, puis choisir la profondeur ou la finalisation qui rend l'attaque non rentable pour la valeur en jeu.

Outil interactif

Simulateur de fourches

Ajoutez des blocs sur n'importe quelle branche. La meilleure chaîne est celle au travail cumulé le plus élevé depuis la genèse G.

  • G
    • B1+1travail cumulé 1
      • B2+2travail cumulé 3· obsolète
        • B4+1travail cumulé 4· pointe· obsolète
      • B3+1travail cumulé 2
        • B5+3travail cumulé 5· pointe★ meilleure pointe

Meilleure pointe : B5 (travail cumulé 5).

Blocs obsolètes (hors de la meilleure chaîne) : 2.

Règle : plus grand travail cumulé ; à égalité, le bloc listé en premier garde la place. Les blocs hors de la meilleure chaîne sont dits obsolètes (orphelins) : leur travail est perdu pour la chaîne retenue. Le « travail » est ici un petit entier fictif.

Outil interactif

Simulateur de quorum BFT

Cliquez sur un validateur pour changer son état : honnête, hors ligne, puis byzantin (malveillant ou défaillant de façon arbitraire).

Nombre de validateurs n

n = 7 · f = ⌊(n−1)/3⌋ = 2 · quorum = 2f+1 = 5

7 honnêtes, 0 hors ligne, 0 byzantin.

✓ Décision possible : 7 validateurs honnêtes et en ligne ≥ quorum 5. Le réseau peut réunir un quorum et finaliser des blocs.

✓ Sûreté garantie par le modèle : 0 byzantin ≤ f = 2. Deux quorums se recoupent toujours en au moins un validateur honnête, donc aucune décision contradictoire.

Modèle classique des protocoles BFT : n ≥ 3f + 1 validateurs tolèrent jusqu'à f fautifs (hors ligne ou byzantins). Un quorum est de 2f + 1 votes. Perdre la vivacité = le réseau ne progresse plus, mais rien de faux n'est décidé. Perdre la sûreté = des décisions contradictoires deviennent possibles, ce qui est plus grave. La vivacité suppose en plus un réseau qui finit par délivrer les messages. Ce n'est qu'un modèle : les protocoles réels ont d'autres hypothèses et d'autres seuils.

Laboratoire guidé

Le navigateur ne peut pas lancer un vrai nœud Polkadot ou Cosmos : les épreuves ci-dessous utilisent des simulateurs et des données générées pour vous. Elles entraînent exactement le raisonnement qu'il faut sur un réseau réel : choisir une branche par le travail cumulé, calculer un quorum, et lire une réorganisation. Le travail sur de vrais réseaux de test est dans le laboratoire autonome.

Le navigateur ne remplace pas un vrai terminal : ce laboratoire entraîne la lecture et le raisonnement ; la pratique réelle est dans le laboratoire autonome.

Un compte certifié est nécessaire

Les activités notées enregistrent des résultats à votre nom et servent de base à un titre. Elles exigent donc un dossier certifiant complet et un consentement en vigueur. Remplir le dossier ne vérifie pas votre identité ; le Secrétariat peut ensuite la vérifier (badge « Vérifié »).

  1. 1.Choisir la meilleure chaîne

    Ouvrez l'outil fork-sim sous ce texte pour vous entraîner à ajouter des blocs. Puis résolvez l'épreuve : calculez le travail cumulé de chaque pointe depuis la genèse G, donnez l'identifiant de la pointe de la meilleure chaîne et le nombre de blocs qui n'en font pas partie.

    Outil interactif

    Simulateur de fourches

    Ajoutez des blocs sur n'importe quelle branche. La meilleure chaîne est celle au travail cumulé le plus élevé depuis la genèse G.

    • G
      • B1+1travail cumulé 1
        • B2+2travail cumulé 3· obsolète
          • B4+1travail cumulé 4· pointe· obsolète
        • B3+1travail cumulé 2
          • B5+3travail cumulé 5· pointe★ meilleure pointe

    Meilleure pointe : B5 (travail cumulé 5).

    Blocs obsolètes (hors de la meilleure chaîne) : 2.

    Règle : plus grand travail cumulé ; à égalité, le bloc listé en premier garde la place. Les blocs hors de la meilleure chaîne sont dits obsolètes (orphelins) : leur travail est perdu pour la chaîne retenue. Le « travail » est ici un petit entier fictif.

  2. 2.Calculer un quorum BFT

    Utilisez l'outil quorum-sim pour voir quand un quorum devient inatteignable. Puis, pour le réseau de n validateurs affiché dans l'épreuve (n = 3f + 1), donnez f, la taille du quorum 2f + 1 et le plus petit réseau qui tolère une faute byzantine de plus.

    Outil interactif

    Simulateur de quorum BFT

    Cliquez sur un validateur pour changer son état : honnête, hors ligne, puis byzantin (malveillant ou défaillant de façon arbitraire).

    Nombre de validateurs n

    n = 7 · f = ⌊(n−1)/3⌋ = 2 · quorum = 2f+1 = 5

    7 honnêtes, 0 hors ligne, 0 byzantin.

    ✓ Décision possible : 7 validateurs honnêtes et en ligne ≥ quorum 5. Le réseau peut réunir un quorum et finaliser des blocs.

    ✓ Sûreté garantie par le modèle : 0 byzantin ≤ f = 2. Deux quorums se recoupent toujours en au moins un validateur honnête, donc aucune décision contradictoire.

    Modèle classique des protocoles BFT : n ≥ 3f + 1 validateurs tolèrent jusqu'à f fautifs (hors ligne ou byzantins). Un quorum est de 2f + 1 votes. Perdre la vivacité = le réseau ne progresse plus, mais rien de faux n'est décidé. Perdre la sûreté = des décisions contradictoires deviennent possibles, ce qui est plus grave. La vivacité suppose en plus un réseau qui finit par délivrer les messages. Ce n'est qu'un modèle : les protocoles réels ont d'autres hypothèses et d'autres seuils.

  3. 3.Lire une réorganisation

    Répondez à la question à choix qui décrit un événement observé sur une chaîne de test à preuve de travail. Calculez d'abord le travail cumulé de chaque branche, comparez-les, puis appuyez-vous sur la condition de réorganisation de chaque famille vue dans les leçons 2 et 3 pour dire ce qui arrive aux transactions du bloc abandonné.

Exercice de sécurité — Combien de confirmations pour un dépôt important ?

Vous concevez la règle de dépôt d'une petite plateforme d'échange communautaire. Elle accepte des dépôts sur une chaîne à preuve de travail (fictive, de petite taille) et sur une chaîne BFT à finalité immédiate. Le développeur précédent a écrit une seule règle pour les deux : « créditer le client dès 1 confirmation ».

Un client dépose 400 000 unités (chiffres fictifs) sur la chaîne à preuve de travail. Vous savez qu'une location de puissance de hachage suffisante pour dépasser la moitié de cette petite chaîne est possible, et que le gain d'une double dépense de 400 000 unités dépasse nettement son coût. Sur la chaîne BFT, 7 validateurs sont tenus par des organisations distinctes.

Question de contrôle : quelle politique est correcte ? Répondez à la question à choix qui suit ce scénario.

Questionnaire de l'atelier

Huit questions tirées d'une réserve plus large, seuil de réussite 70 %. Il s'ouvre quand tous les points de contrôle du laboratoire sont réussis. Vous pouvez le repasser : le tirage change.

Un compte certifié est nécessaire

Les activités notées enregistrent des résultats à votre nom et servent de base à un titre. Elles exigent donc un dossier certifiant complet et un consentement en vigueur. Remplir le dossier ne vérifie pas votre identité ; le Secrétariat peut ensuite la vérifier (badge « Vérifié »).

Laboratoire autonome (hors du site)

Non noté en ligne : à réaliser sur votre machine et à publier sur votre dépôt Git.

À faire sur votre machine, hors du site

Rédigez une note d'une à deux pages comparant les hypothèses de sécurité de trois protocoles réels de votre choix (par exemple Bitcoin, une chaîne Cosmos et une chaîne Polkadot). Pour chacun :

  1. Comment le proposant d'un bloc est-il choisi ?
  2. Quelle règle de choix de branche est appliquée ?
  3. Quelle est la condition précise de réorganisation ?
  4. Que signifie « finalisé » dans la documentation officielle, et en combien de temps l'état est-il atteint ?
  5. Quelle est l'hypothèse de sécurité (fraction de puissance, d'enjeu ou de poids de vote) ?

Si vous avez accès à un réseau de test Cosmos ou Polkadot, interrogez un nœud public. Sur une chaîne CometBFT, la hauteur la plus récente validée est déjà finale : notez-le comme observation (il n'y a pas de champ « finalisé » distinct). Sur une chaîne hybride comme Polkadot, comparez la tête finalisée à la meilleure tête, avec les noms de champs de la documentation officielle. Ne citez que ce que vous trouvez dans la documentation officielle et indiquez la source ; marquez « non vérifié » tout ce que vous déduisez. Les notes sont évaluées sur la rigueur des hypothèses énoncées, pas sur la longueur.

À retenir

  • « Vu dans un bloc » n'est pas « définitif » : une transaction n'est définitive qu'au sens d'une règle de finalité précise.
  • Preuve de travail : proposant par loterie de hachage, réorganisation dès qu'une branche valide a plus de travail cumulé, finalité probabiliste.
  • BFT : proposant désigné par poids de vote, quorum de 2f + 1 sur 3f + 1, finalité déterministe tant que moins d'un tiers est fautif.
  • Perdre la vivacité (chaîne arrêtée) et perdre la sûreté (blocs conflictuels) sont deux pannes de nature différente.
  • Le nombre de confirmations à attendre est une décision de risque : il dépend de la valeur en jeu et de l'attaquant le plus fort plausible.

Idées fausses courantes

  • Idée reçue : Six confirmations rendent un paiement Bitcoin définitivement irréversible.

    En réalité : Six est une habitude, pas une règle. La probabilité de renversement décroît à chaque bloc mais n'est jamais nulle ; si un attaquant détient plus de la moitié de la puissance, elle tend vers 1 quelle que soit la profondeur.

  • Idée reçue : La finalité déterministe veut dire que rien ne peut jamais annuler le bloc.

    En réalité : Elle veut dire qu'annuler le bloc exige de violer l'hypothèse de sécurité (par exemple plus d'un tiers de validateurs qui signent deux fois). Si l'hypothèse est fausse, la garantie tombe.

  • Idée reçue : La branche à suivre en preuve de travail est celle qui compte le plus de blocs.

    En réalité : C'est celle qui a le plus de travail cumulé. Le nombre de blocs ne coïncide avec le travail que si la difficulté est constante.

  • Idée reçue : Une chaîne BFT qui s'arrête a été piratée.

    En réalité : Un arrêt signifie le plus souvent qu'un quorum n'est plus atteignable (trop de validateurs hors ligne). Le protocole choisit de s'arrêter plutôt que de risquer deux blocs conflictuels : la sûreté est préservée, la vivacité est perdue.

Glossaire

Finalité
Point à partir duquel un bloc ne sera plus annulé, sous des hypothèses énoncées. Probabiliste ou déterministe.
Réorganisation (reorg)
Un nœud abandonne sa branche actuelle pour une autre que sa règle de choix juge meilleure ; les blocs abandonnés deviennent périmés.
Travail cumulé
Somme du travail (inverse de la cible) de tous les blocs d'une branche depuis la genèse. Sert de règle de choix en preuve de travail.
Quorum
Nombre de votes nécessaire pour décider. Dans un réseau de 3f + 1 validateurs, il vaut 2f + 1 ; deux quorums se recoupent en au moins f + 1 validateurs.
Sûreté et vivacité
Sûreté : rien de faux n'est décidé (pas deux blocs conflictuels). Vivacité : le système continue de décider.
Slashing
Destruction d'une part de l'enjeu d'un validateur qui a commis une faute prouvable, par exemple une double signature.
Confirmation
Nombre de blocs, le sien compris, au bout de la branche qui contient une transaction. Ce n'est pas un synonyme de finalité.