Tech●●●●●Difficulty 3 of 5

Comment des ordinateurs peuvent-ils s'accorder si certains mentent peut-être ?

Un projet financé par la NASA dans les années 1970 avait besoin que des ordinateurs se mettent d'accord même si certains étaient secrètement défaillants ; pour l'expliquer, on a imaginé des généraux traîtres encerclant une ville.

▶ Lancer l'histoire

Avec assez de voix honnêtes, et mieux encore avec des signatures. Des chercheurs ont prouvé que, quand personne ne peut prouver qui a envoyé un message, un groupe ne peut atteindre un accord fiable que s'il compte plus de trois fois plus de membres que de menteurs : au moins 3n+1 participants pour résister à n d'entre eux. Si les messages portent une signature numérique, 3n suffisent. Ce menteur, les informaticiens l'appellent une panne byzantine : un composant qui présente des symptômes différents selon les observateurs, si bien que les autres ne savent même pas s'il est en panne.

La question s'est posée en 1978 avec SIFT, un projet financé par la NASA au SRI International, fondé sur l'idée que plusieurs ordinateurs ordinaires s'échangent des messages pour parvenir à un consensus, même si certains sont défaillants. Pour la rendre plus parlante, Leslie Lamport l'a habillée en allégorie : des généraux encerclent une ville. Ils doivent décider ensemble d'attaquer ou de battre en retraite, et tous doivent être d'accord, car une attaque menée par quelques-uns seulement serait pire qu'une attaque ou une retraite coordonnées. Le hic, c'est qu'un traître peut mentir de façon ciblée : avec quatre généraux pour l'attaque et quatre pour la retraite, un neuvième, déloyal, peut envoyer un vote de retraite à un camp et un vote d'attaque à l'autre, et couper l'armée en deux.

Le problème des généraux byzantins
  1. Étape 1: Des généraux encerclent une ville

    Ils doivent tous s'accorder : attaquer ensemble, ou battre en retraite ensemble

  2. Étape 2: Un traître ment sélectivement

    Il dit « attaquez » à certains généraux et « retraite » à d'autres

  3. Étape 3: Désaccord sans assez de votes honnêtes

    Une attaque timide est pire que n'importe lequel des deux choix unanimes

Robert Shostak, qui a le premier formalisé le problème, a montré qu'il fallait au moins 3n+1 participants, et son collègue Marshall Pease a prouvé que ce chiffre était à la fois nécessaire et suffisant, quel que soit le nombre de participants défaillants. Leslie Lamport a ensuite montré qu'avec des signatures numériques, 3n suffisent : pouvoir prouver qui a vraiment envoyé un message permet de se contenter de moins de participants.

Le nom de l'allégorie a sa petite histoire : les généraux étaient à l'origine des commandants de l'armée albanaise, avant d'être rebaptisés « byzantins » sur la suggestion d'un collègue, pour écarter tout risque de froisser qui que ce soit. Ces travaux ont valu à leurs auteurs le prix Edsger W. Dijkstra 2005.

Quiz

0/3

  1. 1.Qu'est-ce qui distingue une panne byzantine d'un simple plantage d'ordinateur ?
  2. 2.Selon les mathématiques prouvées par Shostak et Pease, combien de généraux faut-il pour tolérer n traîtres sans signatures numériques ?
  3. 3.Quel effet la preuve de Leslie Lamport sur les signatures numériques a-t-elle eu sur le problème des généraux ?

Récap

Sans signatures, un accord fiable exige plus de trois fois plus de participants au total que de participants défaillants.

Le fait surprenant · Les signatures numériques font passer le nombre total de participants nécessaires pour tolérer n menteurs de 3n+1 à 3n : la cryptographie se transforme directement en tolérance aux pannes.

Sources (1)

Pas de source, pas d'affirmation. Chacun des 16 faits de cette leçon renvoie à au moins une de ces sources.

  1. [1]Byzantine fault · Wikipedia
D'autres leçons · 💻 Tech (3) Toutes les leçons « Tech » →

Une lumière de plus sur ta carte.

Reçois une leçon comme celle-ci chaque jour, sur les sujets que tu aimes. Gratuit, en deux ou cinq minutes.

Récupère la carte à partager de cette leçon ↗