Stop à la blockchain

J’ai partagé il y a peu l’excellente vidéo de Dan Olson “Line Goes Up – The Problem with NFTs”, que vous pouvez retrouver ici: https://www.youtube.com/watch?v=YQ_xWvX1n9g. C’est long, mais ça en vaut la peine. Dan couvre le sujet de Bitcoin, des “smart contracts”, des NFTs et du “Web 3.0”, et il y a clairement de quoi tenir les 2 heures qu’il prend pour tout expliquer.

C’est un sujet dont j’ai déjà eu envie de parler, mais sans jamais trouver un angle qui me convenait. Il y a juste trop de choses à couvrir. Les arnaques pures et simples, l’impact environnemental, l’inadéquation du bitcoin en tant que monnaie… Dan Olson réussit je trouve assez bien (en tout cas mieux que dans tous mes brouillons!) à trouver le juste milieu entre “assez exact” et “assez compréhensible”.

Il y a cependant un point que j’aimerais encore couvrir de mon côté. Même si on ignore l’aspect écologique, et l’aspect économique, et les arnaques… la blockchain reste fondamentalement une technologie absolument inutile dans l’écrasante majorité des secteurs pour lesquelles elle est aujourd’hui régulièrement proposée. Allons-y point par point.

1. L’intérêt théorique

L’intérêt théorique de la blockchain (par rapport à n’importe quel autre moyen de stocker des données) est dans son immutabilité (une fois qu’on met quelque chose dedans, on ne peut plus le changer), dans sa décentralisation (de multiples copies du contenu sont dispersées dans des ordinateurs différents), et dans l’absence d’entité de confiance (c’est-à-dire que le réseau entier est “garant” de l’intégrité des données via un processus de consensus, pas une ou plusieurs personnes désignées à qui il faut donc “faire confiance”).

C’est ce dernier point en particulier qui distingue réellement la blockchain d’autres systèmes. L’immutabilité peut se faire facilement dans une base de données standard si on peut fait confiance dans le fait que l’entité qui administre cette base de donnée l’a bien configurée. La décentralisation, elle non plus, ne nécessite pas de blockchain si on peut s’accorder sur une (ou quelques) entités de confiance qui “décident” de qui a raison si plusieurs versions de la base de donnée se trouvent en conflit.

2. Ce qu’on peut stocker

Une limitation fondamentale d’un système “décentralisé” et “immuable”, c’est que l’on multiplie dramatiquement les ressources nécessaires pour stocker les données. Tout ce qu’on veut mettre sur la blockchain doit être envoyé à tous les ordinateurs qui participent au réseau, et doit y être stocké. Si on limite le nombre de participants au consensus, on transforme nécessairement ces participants en “entités de confiance”. Si on augment le nombre de participants, on multiplie la bande passante et l’espace de stockage nécessaire à faire fonctionner la base de données.

Comme le système est immuable, on ne peut jamais supprimer une donnée une fois qu’elle est entrée. Même si elle était erronée, même si on est certain qu’elle ne sera plus jamais utilisée: elle doit rester stockée chez tous les participants du réseau. Si on n’a pas toutes les données, on ne peut pas garantir l’intégrité de la blockchain, et on ne peut donc pas participer au consensus.

Le résultat est que toutes les blockchains ne stockent que des données textuelles de petite taille. On ne stocke pas d’images, de vidéos, de musique, ou même de PDFs ou de larges fichiers de texte sur la blockchain.

3. Si on veut stocker une autre ressource numérique, la blockchain devient inutile

Le moyen typiquement utilisé dès qu’on veut stocker autre chose que du texte et tout de même utiliser la blockchain, c’est d’utiliser celle-ci pour stocker des liens vers une ressource extérieure. Par exemple, dans les NFTs, la blockchain contient des petits programmes (du texte, donc) qui font un lien entre le propriétaire du NFT et, typiquement, une URL vers une image qui est stockée quelque part. La blockchain devient donc un “index” qui peut diriger vers les bonnes ressources.

Et comme l’image est stockée quelque part, celui qui contrôle ce “quelque part” doit nécessairement être considéré comme une entité de confiance. S’il supprime le fichier vers lequel la blockchain pointait, ou s’il change l’adresse de son serveur, la blockchain ne peut rien faire pour l’en empêcher. Pire: comme la blockchain est immuable, on ne peut même pas décider de mettre une copie du fichier ailleurs et de modifier le lien. Modifier, c’est interdit. La blockchain dit que le fichier est là. S’il n’y est plus: pas de bol. Des hébergements “décentralisés” comme IPFS permettent de rendre le système un peu plus robuste, mais cela ne change rien au fond du problème: la blockchain en elle-même n’a pas le contrôle sur les biens qu’elle est supposée gérer.

Dès lors que celui, celle ou ceux qui stockent les ressources sont des entités de confiance, il est infiniment plus efficace qu’elles conservent aussi l’index, qui peut du coup être stocké dans une base de donnée traditionnelle qui ne consomme pas l’électricité d’une nation.

4. Si ce qu’on veut stocker est en lien avec le monde non-numérique, la blockchain devient inutile.

Dans les cas typiques de “blockchain qui vont révolutionner le monde”, on a régulièrement des idées qui ont trait à des “supply chains” (suivons le produit du producteur au consommateur, sur la blockchain!), ou à des certificats de propriété (remplaçons les notaires par une blockchain!), ou à diverses données sensibles (votre dossier médical sur la blockchain!).

L’idée derrière l’utilisation de la blockchain, dans tous ces cas, est de se prémunir contre une modification malveillante des données. On ne veut pas que quelqu’un vienne traficoter la base de donnée pour soudain se prétendre propriétaire d’une maison, ou que le produit a été livré quelque part.

Là encore, cependant, la blockchain est totalement inadaptée. Oui, il peut y avoir de gros soucis avec des données erronées dans toutes ces applications. Mais ces erreurs ne viennent pas de hackers qui se glissent sur le serveur et modifient les données avant de s’enfuir vers le soleil couchant. Elles viennent presque toujours, simplement, de l’encodage. Dès qu’on parle de données du “monde réel”, on a nécessairement pour toute donnée quelqu’un, quelque part, qui va être responsable de traduire le “monde réel” en sa représentation numérique. Scanner un QR code, entrer un numéro de client, signer un reçu électronique… S’il y a manipulation (ou erreur de bonne fois), c’est toujours à cet endroit là que ça se passe. Et la blockchain n’a évidemment aucun moyen de valider que ce qui est entré correspond à la réalité. La blockchain ne peut pas savoir si le produit “reçu” est bel et bien présent là où le QR code a été scanné.

C’est le problème du “Garbage In, Garbage Out”: si on rentre des données pourries dans le système, on en sortira des données pourries. Le problème est même aggravé par la blockchain car, à nouveau, immuabilité = impossible de corriger si c’est une vraie erreur. Maintenir une blockchain “synchronisée” avec le monde réel est inutilement compliqué. Et dans tous ces cas de figures, on a de toute façon quelque part une “autorité” qui sera chargée de résoudre les conflits lorsqu’il y a un doute. À nouveau, tout le monde gagnerait à ce que cette autorité gère directement la base de données… rendant la blockchain obsolète.

5. Qu’est-ce qu’il reste, alors?

La blockchain peut se justifier si on a une application où l’on ne doit stocker que des données qui prennent peu de place et qui sont entièrement numériques (donc qui existent indépendamment de tout objet réel).

Qu’est-ce qui remplit ces critères? Globalement: le Bitcoin (et ses divers successeurs). Ce n’est pas pour rien que, si “la blockchain” en tant que telle date du début des années 90, Bitcoin reste aujourd’hui la seule application réellement “fonctionnelle” du concept. Et elle fonctionne bien mal.

Certains diront que les “smart contracts” d’Ethereum sont fondamentalement une application différente, mais je pense que c’est tirer trop loin la définition de “fonctionnelle”. Tous les projets autour de ces smart contracts souffrent des défauts énoncés ici, et sont au mieux des mauvaises solutions à de réels problèmes. Et, dans la majorité des cas, ils sont une excuse pour une quelconque bulle spéculative comme les NFTs, et n’ont aucune “fonctionnalité” à proprement parler.

David Rosenthal explique assez bien ici pourquoi toute blockchain décentralisée finit nécessairement en bulle spéculative. En résumé: pour que le système soit décentralisé, il faut qu’il soit difficile (pratiquement impossible) d’attaquer le système de “consensus” en contrôlant plus de la moitié des participants. Pour cela, il faut que la participation ait un coût élevé (c’est le concept du “Proof-of-Work”). Pour que des gens veuillent quand même participer, il faut que ce coût soit au final couvert par une rémunération. Pour que le système reste décentralisé, il faut que cette rémunération soit générée “automatiquement” par le système (si on a une autorité centrale qui distribue des gains aux “bons” participants, elle a de facto le contrôle du système): on doit donc avoir une cryptomonnaie. Comme les coûts de participation (matériel, électricité…) ne sont a priori pas payables dans cette cryptomonnaie, les participants vont nécessairement vouloir écouler leur cryptomonnaie et la vendre contre de la vraie monnaie. Pour qu’ils puissent la vendre, il faut que des gens achètent. Et la seule raison qui va pousser assez de gens à acheter pour que le système continue à tourner, c’est l’espoir que la valeur monte. Les seules possibilités sont donc: le système se plante faute d’acheteurs, ou on a une bulle spéculative jusqu’à ce que le système se plante faute d’acheteurs.

Conclusions

Quelques remarques pour terminer:

  • Oui, tout cela n’empêche pas qu’on puisse “se faire de l’argent” avec le Bitcoin, les NFTs, et tout le cryptobazar. C’est une bulle: tant qu’elle n’a pas explosé, il y a certainement moyen d’en profiter. J’aurais tendance à dire que ce n’est pas très éthique, et que les risques de tout perdre et/ou de participer malgré soi à quelque chose d’illégal sont un peu trop grands, mais chacun son truc.
  • Je n’ai jamais possédé la moindre cryptomonnaie et je ne compte pas en posséder un jour. Je n’ai donc aucun intérêt financier dans un sens ou dans l’autre. J’ai par contre un intérêt dans le fait que nos ressources technologiques et énergétiques servent à des choses moins dommageables pour le monde que de faire tourner des blockchains.
  • “Mais en vrai, Ethereum va quitter le Proof-of-Work et on peut faire de la blockchain qui ne détruit pas l’environnement, et en plus grâce aux blockchain on développe l’énergie solaire, etc., etc.” Non. Sorry, mais tout ça c’est du bullshit. Même à un coût environnemental réduit (et Ethereum “va quitter le Proof-of-Work” très bientôt depuis sept ans, donc la crédibilité est assez limitée), cela reste un énorme gaspillage. Quand aux sources d’énergies, les “mineurs” vont là où l’énergie est la moins chère. Parfois, c’est de l’énergie solaire ou géothermale, souvent c’est du charbon. Même si l’énergie était 100% verte, ce serait tout de même de l’énergie mieux utilisée ailleurs.
  • Y-a-t’il des utilisations légitimes et utiles de la blockchain? Certainement… pour certains de ces aspects, qui ne sont pas nouveaux et pas uniques à la blockchain. Il y a certainement des idées intéressantes en cryptographie et en gestion de systèmes décentralisés liés à des travaux sur la blockchain. Mais le milieu “de la crypto” est devenu tellement toxique que, à ce stade, toute association au concept de blockchain rend une idée suspecte. Il est temps de balayer tout, de jeter toutes les cryptomonnaies à la poubelle, et de passer à autre chose.

Ressources supplémentaires