Le problème résolu par la blockchain n'existe pas

Il y a quelques jours, lors d’une discussion, un ami (Antoine) m’a dit la chose suivante : « Un truc m’échappe, qu’est-ce qui motive les participants existants d’une blockchain à fournir l’historique de celle-ci aux nouveaux participants ? ». La réponse à cette question semble être : rien, dans le protocole en tout cas. Depuis, cette question tout à fait pertinente (mais pas tout à fait innocente), et surtout les implications qui découlent de la réponse, me trottent dans la tête.

Comme je l’expliquais dans mon précédent billet sur la nécessité de la preuve de travail (ou d’enjeu), les seules situations qui justifient le recours à une blockchain sont celles où se pose la question de résoudre le problème du consensus distribué, dans un cas à la fois décentralisé et conflictuel (personne ne fait confiance à qui que ce soit).

Mérion à dos rouge
Mérion à dos rouge[1]

Si ces deux conditions (décentralisation et conflictualité) ne sont pas réunies, on sait faire mieux et plus efficacement que de recourir à l’usage d’une blockchain. Comme exemple, je publierai prochainement un billet expliquant comment mettre en œuvre un système de certificats d’authenticité pour des œuvres d’art, puisque cette (mauvaise) justification d’utilisation de NFT revient sans cesse.

Quel que soit le cas d’usage qu’on prétend avoir pour une blockchain, on a besoin de conserver son historique pour au moins une raison : permettre l’arrivée de nouveaux participants sur le réseau. En effet, sans l’historique complet, un nouveau participant devrait faire entièrement confiance à ceux qui lui fournissent l’état du système lors de son arrivée. Dans le cas d’une cryptomonnaie par exemple, il est nécessaire d’avoir accès à tout l’historique pour vérifier la validité d’une transaction, car seul l’historique des transactions permet de calculer le solde d’un compte. On ne peut pas se satisfaire d’un état du système (qui donnerait le solde de chaque compte) fourni par un ou des participants existants sans complètement sortir du modèle de sécurité qui justifie le recours à une blockchain (puisque cela impliquerait de leur faire confiance).

Il est donc nécessaire au fonctionnement du système que l’historique de toute la blockchain soit conservé et partagé. Cela soulève ces deux questions.

Conservation. L’historique d’une blockchain est nécessairement de plus en plus lourd, son stockage est donc de plus en plus coûteux. De plus, comme un participant se fait confiance à lui même, une fois qu’il a eu une copie complète de l’historique, il peut l’utiliser pour calculer l’état du système (par exemple le solde de chaque compte dans le cas d’une cryptomonnaie), stocker cet état dans une base de donnée classique, puis utiliser les informations contenues dans les nouveaux blocs qui arrivent pour mettre à jour cette base de donnée. Ce sera beaucoup moins lourd que de conserver l’historique complet tout en lui apportant exactement les mêmes garanties et capacité de vérification de la validité des transactions. En fait, maintenir cette base de donnée est même indispensable dans tous les cas, y compris si on décide de conserver une copie de l’historique de la blockchain : recalculer l’état du système en reprenant tout depuis le début à chaque fois serait bien trop coûteux et inefficace (je reviendrai là dessus dans un prochain billet sur le coût des blockchains). Du coup, un participant n’a aucun intérêt à conserver l’historique, même pour lui même.

Partage. L’utilisation de la bande passante nécessaire au partage de l’historique a également un coût. De manière générale, rien n’incite les participants à payer le coût de ce partage, ni de celui des transactions et des blocs qui ne les concernent pas. Ce serait d’ailleurs assez difficile à mettre en œuvre[2]. Pourtant, ce partage est indispensable au fonctionnement d’une blockchain. On peut par exemple voir, en gras dans la documentation de bitcoin, une simple recommandation de ne pas limiter trop strictement la bande passante…

Une question se pose alors : si on est effectivement dans une situation décentralisée et en absence de confiance qui justifie de recourir à une blockchain dont le fonctionnement repose sur le fait que les participants sont en compétition les uns avec les autres, pourquoi les participants choisiraient-ils de coopérer ? Qu’est-ce qui les pousse à agir de manière altruiste alors qu’ils sont par définition en compétition ? Pourquoi payer le coût du stockage et de la bande passante au bénéfice de la communauté alors que l’intérêt individuel de chacun est de ne pas le faire ? Deux possibilités.

Soit on est effectivement dans une situation de conflictualité, face à une forme de dilemme du prisonnier qui va inévitablement nous mener à une tragédie des communs : dès que les coûts de stockage et partage seront jugés trop élevés par certains participants, ils arrêteront de les payer en comptant sur les autres pour le faire. Mécaniquement, cela augmentera la charge et donc le coût en bande passante pour les participants restants, qui toléraient encore le coût jusque là. Certains qui étaient à la limite de leur capacité arrêteront donc à leur tour, et ainsi de suite jusqu’à disparition de la ressource, ou que la poignée d’acteurs restants à la fin (forcément les plus riches) soient en total contrôle de celle-ci. On assiste alors à un contraction du réseau, à sa recentralisation. Dans le cas d’une situation de conflictualité, il n’est donc absolument pas possible d’utiliser la prétendue pérennité de la blockchain comme argument en faveur de cette technologie.

Soit il faut admettre que, manifestement, tout système social nécessite une forme de confiance, ne serait-ce qu’un ensemble de règles que les participants se mettent d’accord de respecter, même quand rien ne les y oblige et que ça leur coûte de le faire. Cet altruisme au service du collectif, contre l’individualisme (supposé) de chacun[3], bénéficie au final à tout le monde puisqu’il permet de maintenir le bien commun. Sauf que dans le cas d’une situation de confiance, on remet sérieusement en cause les hypothèses qui justifient le recours à l’utilisation d’une blockchain.

C’est plutôt cette deuxième possibilité à laquelle je crois. La tragédie des communs, vu comme quelque chose d’inéluctable (d’où l’utilisation du mot “tragédie”), est une conclusion à laquelle arrivent des économistes libéraux qui modélisent tous les acteurs de leur économie comme purement individualistes. Un tel monde n’est pas possible, ni souhaitable, d’ailleurs. Dans le titre je dis de façon un peu provocante que le problème résolu par la blockchain n’existe pas (bien sûr qu’il existe, il suffit de le poser pour ça). C’est plutôt que dans la vraie vie, je ne crois pas que ce problème ait un réel intérêt, qu’il existe de vraies situations sociales concrètes qui nécessitent de résoudre ce problème.

Décidément, on vit dans une société.

Notes

  1. ^ Le Mérion à dos rouge fait partie de ces espèces d’oiseaux qui ont un comportement coopératif pour la reproduction, comme la mésange à longue queue, mais avec une plus jolie robe, assortie à ce blog ;).
  2. ^ Techniquement, cela demanderait de déterminer le ratio téléversement / téléchargement des participants, toujours sans pouvoir leur faire confiance et de façon décentralisée. À ma connaissance, on ne sait pas tellement faire ça.
  3. ^ Je n’ai pas lu plus que le résumé, mais ça semble être ce qui est défendu par Bourdieu dans son ouvrage L’intérêt au désintéressement.