La nécessité de la preuve de travail (ou d'enjeu)

Je disais dans le billet précédent sur l'utilisation malheureuse du mot "portefeuille" dans le cadre des cryptomonnaies que tout ce qui y est détaillé sur le fonctionnement des transactions sur une blockchain ne suffisait pas à justifier la nécessité de la preuve de travail ou d'enjeu. Je sous-entendais par là que l'immuabilité dont je venais de parler n'était pas une exigence suffisante, contrairement à ce qu'on entend le plus souvent[1].

En effet pour justifier la nécessité de la preuve de travail ou d'enjeu, on voit généralement que c'est justement ça qui fait l'immuabilité du registre, car cela rend trop coûteux les calculs nécessaires à la modification d'un bloc passé. Pourtant c'est faux : d'une part ça ne serait vrai que pour la preuve de travail et pas pour la preuve d'enjeu, et d'autre part ce qui fait l'immuabilité n'est pas tant le coût de la preuve de travail que l'impossibilité[2] de faire la modification discrètement, de manière à ce que la chaîne reste compatible avec celle qui est déjà connue des participants.

Quelle nécessité de la preuve de travail ou d'enjeu alors ? Elle tient à deux contraintes : 1- l'absence totale (voulue) de tiers de confiance, et 2- le fait que n'importe qui doive potentiellement pouvoir participer (par opposition à une liste d'agents identifiés), ce qui implique l'impossibilité de faire confiance à l'ensemble des participants.

La première contrainte à elle seule nécessite que toute la valeur (au sens monétaire) soit contenue intrinsèquement dans le système[3], et donc même qu'elle y soit créée. Cela implique donc d'avoir un moyen de limiter/contrôler la vitesse de création de cette valeur sortie de nulle part. Si on rajoute la seconde contrainte, il faut également un moyen de répartir cette valeur aléatoirement, c'est à dire équitablement, de sorte à ce que tout le monde soit d'accord sans avoir à faire confiance aux autres. En effet cette seconde contrainte rend impossible de mettre en place un système de répartition totalement égalitaire de la valeur créée, de distribuer à tour de rôle suivant un ordre prédéfini, ou autre solution plus simple et moins coûteuse (puisqu'on ne connaît pas à l'avance les participants et qu'ils ne se font pas confiance).

Tout cela mis bout à bout fait qu'il est nécessaire de résoudre le problème du consensus distribué[4] dans une des pires situations possibles (cf le billet sur la notion consensus dans le cadre des blockchains), et c'est de là, et uniquement de là, que vient réellement la nécessité de la preuve de travail ou d'enjeu.

Cela signifie notamment que, si on a pas ces deux contraintes, on a pas besoin de preuve de travail ou d'enjeu (et donc, selon la définition qu'on en prend, qu'on a pas besoin de blockchain).

Notes

  1. ^ AJOUT (05/02/2022) : j'ai depuis rédigé un billet qui revient en détail sur ce qui fait l'immuabilité d'une blockchain.
  2. ^ Impossibilité liée non pas au coût de la preuve de travail (même quand elle est utilisée) mais à celui de trouver une collision, qui lui est très nettement supérieur.
  3. ^ Un tiers de confiance pourrait distribuer la cryptomonnaie, et celle-ci pourrait même correspondre à un autre actif comme une monnaie fiat si ce tiers de confiance gère également cet autre actif (une banque centrale par exemple).
  4. ^ C'est à dire devoir mettre tous les participants d'accord sur l'un d'eux au hasard sans disposer d'aucun agent qui puisse jouer le rôle de "chef d'orchestre".