La blockchain vaisselle : une mauvaise explication des protocoles de consensus

En 2016, le collectif BAM, avec l’aide d’Alexandre Stachtchenko de Blockchain France (aujourd’hui Blockchain Partner), a initié un projet pédagogique sur la blockchain. Ils ont tenté d’imaginer ce à quoi elle ressemblerait si elle était physique. Cette exemple a été ensuite montré un peu partout à des évènements tech pour illustrer le concept de “ledger” distribué.

On retrouve aussi cette exemple cité lors d’un live facebook spéciale blockchain avec les echos. Plus récemment, il a été enseigné lors d’ateliers d’initiation à Paris. Il est important, d’ailleurs, de noter que la personne qui anime ces “ateliers” n’a aucune formation ou forme d’expertise sur le sujet. Bien que le cours soit gratuit et l’initiative soit louable, il n’aide pas à comprendre la technologie et propage de fausse idée sur celle-ci.

Lorsque l’on s’intéresse au problème de consensus, on préfère prendre l’exemple des généraux byzantins pour illustrer le contexte. Celui-ci n’a d’ailleurs rien à voir avec l’exemple des tours de vaisselle. La suite de cette article va détailler en quoi c’est deux exemples sont différents. Il suppose aussi que vous êtes familier avec les deux histoires.

Le tube qui représente la “blockchain”.

Le problème que l’on cherche à résoudre est celui du consensus ou de la coordination dans un environnement où on ne sait pas si le message est arrivé. De même, il est impossible de dire si le message n’a pas été intercepté.

Avec nos généraux byzantins, on a une situation où ils ne se voient pas. S’ils pouvaient tous se voir, on n’aurait pas de problème, il serait très simple d’avoir un général qui montre une bannière avec une heure et les autres montreraient une bannière verte pour dire qu’ils ont reçu le message. Or ici on a bien un seul tube et la majorité se retrouve autour. On est donc sûr que la majorité à l’information que tel enfant dit avoir fait la vaisselle, le tube est dans ce cas là superflu. On peut imaginer le cas où un des enfants scie le tube ou brise les cadenas pour changer le jeton mais les autres enfants ont déjà eu connaissance de l’état du tube. La mémoire collective joue aussi un rôle dans le consensus final. De la même manière, tout le monde sait que la blockchain Ethereum a été modifiée après le hack de The DAO. Cette évènement a été effacé de la blockchain mais pas de l’histoire.

Le haut du tube avec les cadenas.

Il faudrait repenser l’exemple en donnant, en réalité, à chaque enfant un tube avec sa clé. Le problème serait donc comment faire en sorte qu’ils se retrouvent tous avec 4 tubes identiques sans jamais se retrouver dans la même pièce ensemble et en même temps. On se retrouve avec un tout autre problème. On pourrait avoir seulement 3 enfants qui communiquent et le 4eme laissé dans l’ignorance (problème de partition) ou encore avoir un enfant qui change le message (incohérence).

Il y a une différence entre dire à tous ces amis qu’on a été à 15h au zoo et d’essayer de coordonner une visite avec tous ces amis au zoo à 15h.

Un autre point important qui rend l’exemple inexact, c’est que la blockchain n’est pas efficace pour la traçabilité. En effet, on peut y inscrire ce que l’on veut, cela ne veut pas dire que c’est la vérité. On veut juste se coordonner pour déterminer chacun de notre côté quel sera la prochaine étape. Dire que quelque chose dans le passé a eu lieu et l’inscrire dans la blockchain permet seulement de dire que quelqu’un a émit cette affirmation et non qu’elle est vrai. Il y a une différence entre dire à tous ces amis qu’on a été à 15h au zoo et d’essayer de coordonner une visite avec tous ces amis au zoo à 15h.

L’histoire ne mentionne pas, non plus, la place de la preuve de travail. Cette partie est pourtant au coeur du système car c’est bien ce qui lie chaque bloc d’information. Il permet la sélection aléatoire de la personne qui va écrire un nouveau bloc dans la blockchain. Un des membres du meetup Bitcoin Amiens, l’avait décrit de cette manière : “C’est comme si on avait un seul stylo et qu’il faut choisir qui a le droit d’écrire avec. Pour pourvoir utiliser le stylo afin d’écrire dans le registre il faut résoudre le problème d’abord.”


Pour conclure, l’anecdote des tours de vaisselle n’est pas un problème de coordination dans un environnement où on communique de manière asynchrone (comme sur l’internet). Le domaine de systèmes distribués est un des domaines les plus complexe en informatique. Le projet était peut être trop ambitieux et il aurait été préférable de collaborer avec des ingénieurs qui ont une bonne connaissance du sujet et des réseaux. Rappelons aussi que la vulgarisation scientifique n’est pas à la porté de tout le monde et demande une profonde expertise pour être expliqué de manière simple. Le risque, sinon, est de créer du bruit et de la confusion.

Pour les personnes intéressés pour en apprendre plus, je recommande le livre Mastering Bitcoin. Il y a aussi, en France, une communauté crypto-anarchiste très accueillante et toujours enthousiaste à l’idée de partager leur connaissance.