Les calculs d'une preuve de travail doivent être inutiles

Pour vulgariser le fonctionnement de la preuve de travail dans une blockchain, il est souvent dit qu'il s'agit de résoudre une énigme mathématique ou de faire des calculs mathématiques complexes. Cela peut laisser l'impression que ces calculs pourraient être utiles ou qu'il s'agirait de résoudre de véritables problèmes mathématiques qui se posent effectivement dans la vraie vie. En fait, dans le modèle de sécurité d'une blockchain à preuve de travail, non seulement les résultats de ces calculs doivent être inutiles, mais même leurs effets de bord, comme la chaleur produite par ce colossal gaspillage d'énergie[1], ne doivent surtout pas avoir de valeur.

Les calculs de preuve de travail d'une blockchain doivent être entièrement inutiles[2], pour deux sortes de raisons : des raisons techniques et des raisons économiques.

Commençons par la technique. Il y a deux types de résultats “calculatoires” qui peuvent être qualifiés d'utiles : les solutions génériques à une famille de problèmes (par exemple, un algorithme générique qui calcule le chemin vers la sortie d'un labyrinthe, quelque soit le labyrinthe qu'on lui donne), et les solutions spécifiques de cas particuliers à l'intérieur d'une famille de problèmes (trouver le chemin pour sortir d'un labyrinthe donné).

Dans le premier cas, qui serait évidemment le plus utile, la résolution consiste à trouver une nouvelle méthode de calcul (un nouvel algorithme) qui permet de résoudre efficacement l'ensemble des problèmes similaires. Il ne peut évidemment pas s'agir de ça dans le cadre de la preuve de travail puisqu'on veut être sûr qu'une solution va être trouvée dans un temps imparti. Un problème dont on ne sait pas encore calculer la solution (ni parfois même si c'est possible !) ne peut donc pas être utilisé. D'autre part, cela voudrait dire qu'à chaque fois qu'une solution est trouvée, il faudrait passer à un nouveau problème puisqu'on dispose maintenant d'une solution générique pour celui utilisé précédemment.

On doit donc forcément avoir recours à des cas particuliers d'une famille donnée de problèmes. Mais alors pourquoi ne pas choisir une famille de problème dont les résultats de cas particuliers peuvent être utiles ? Pour que la résolution d'un cas particulier d'un problème soit utile, il faut que celui-ci se pose dans la vraie vie (que ce soit un labyrinthe qui existe bien quelque part, pour reprendre notre exemple). Cela pose d'emblée plusieurs soucis : quelle famille de problèmes choisir ? qui listerait les cas particuliers utiles ? comment s'assurer que personne n'en a déjà la solution ?

Le choix de la famille de problèmes serait déjà un choix de à qui les résultats vont servir, car ce ne sont pas les mêmes problèmes qui se posent selon les secteurs d'activités, selon les types de clients, selon les législations, etc. Le choix du type de problèmes dont certains cas sont utiles impacte donc directement qui pourra dire quels sont, justement, les cas effectivement utiles. Cela reviendrait donc à désigner ce ou ces acteurs à qui les résultats peuvent servir comme tiers de confiance pour le bon fonctionnement de la blockchain dont il est question, ce qui casserait complètement le modèle de sécurité de défiance généralisée censé justifier le recours à une blockchain en premier lieu. En effet, qu'est-ce qui garantie que les acteurs en charge de désigner les problèmes à résoudre n'en connaissent pas déjà la solution (ou ne sont pas de mèche avec des acteurs pour qui c'est le cas), ou même une solution partielle, ce qui permettrait de tricher ? C'est pour cette raison que les cas particuliers de problèmes à résoudre ne peuvent pas être choisis mais doivent au contraire dépendre d'une information aléatoire qui n'est connue qu'au dernier moment par tous les participants en même temps[3]. Ce dernier point est indispensable pour permettre de contrôler la vitesse de création et l'ordonnancement des blocs, sans quoi on pourrait avoir intérêt à conserver des blocs valides d'avance et les utiliser pour tricher au moment opportuns (voir ci-dessous, sur la possibilité de double dépense).

Maintenant, et bien que ce soit parfaitement saugrenu[4] hautement invraisemblable, imaginons qu'il existe une famille de problèmes dont les résultats de cas particuliers aléatoires puissent être utiles à tout le monde[5], ou même à n'importe qui… Il reste encore les raisons économiques à l'exigence de l'inutilité des calculs de preuve de travail.

Pour expliquer ces raisons économiques, il faut d'abord rappeler à quoi sert la preuve de travail, c'est-à-dire quel est son rôle dans le fonctionnement d'une blockchain. Comme je l'expliquais dans mes billets sur la nécessité de la preuve de travail ou d'enjeu et sur l'immuabilité d'une blockchain, la preuve de travail est un mécanisme de consensus distribué dont le rôle se limite à effectuer un tirage au sort non contestable dans un contexte de défiance généralisée[6].

Les raisons économiques donc, sont doubles. Premièrement, cela introduit des inégalités. Si les calculs de preuve de travail permettent par eux-mêmes à certains “mineurs”[7] de gagner de l'argent à tous les coups, et non plus seulement de gagner une récompense en crypto-actifs lorsqu'ils sont tirés au sort, cela avantage économiquement les “mineurs” en question. Ceux-ci peuvent alors décider d'utiliser ces gains pour investir dans de la puissance de calcul supplémentaire qui a son tour va leur rapporter immédiatement et de façons sûres, ce qui par effet boule de neige, va finir par les amener à prendre le contrôle de la majorité de la puissance de calcul du réseau. Mais sans même aller jusqu'à ce scénario, le fait que les calculs mêmes qui peuvent servir à monter une attaque puissent rapporter quoi qu'il arrive pose un sérieux soucis d'incitation.

En effet, et c'est le second point, le fait qu'il soit possible de gagner de l'argent quoi qu'il arrive avec les calculs signifie que les “mineurs” peuvent avoir intérêt à diviser leur puissance de calcul, ce qui sort complètement du modèle de sécurité des blockchains. Quand le seul moyen de gagner de l'argent est d'être tiré au sort, il n'y a pas d'autre choix que de concentrer sa puissance de calcul sur une seule preuve de travail pour maximiser ses chances. Quand ce n'est plus le cas, on peut choisir de répartir sa puissance de calculs sur deux preuves de travail différentes pour faire coexister temporairement deux versions distinctes de la chaîne, permettant ainsi une double dépense[8] (une version où de la “cryptomonnaie” a été utilisé pour une transaction, et une autre version où la même “cryptomonnaie” n'a pas été dépensée, voire a été utilisée pour une autre transaction). Bref, donner de la valeur aux calculs de preuve de travail eux-mêmes est une mauvaise idée.

Une fois cela compris, il devient évident que non seulement les résultats des calculs doivent être inutiles, mais que rien ne doit pouvoir donner de la valeur aux calculs, y compris la chaleur produite par les machines qui les font. Du point de vue du modèle de sécurité d'une blockchain, même la réutilisation de la chaleur produite par les calculs dans les ferme de “minage” est un problème car cela donne une valeur à ces calculs. C'est pour cela que la preuve de travail (PoW pour “proof of work” en anglais) est souvent et à raison appelée plutôt “preuve de gaspillage” (qui reste habilement PoW, pour “proof of waste” cette fois, en anglais, mais on peut utiliser “PDG” en français…). C'est pour cela aussi que, bien que certains propagandistes ne s'en privent pas, il est parfaitement délirant de revendiquer un quelconque aspect écologique aux blockchains.

Image de centrales électriques symbolisant la pollution du gaspillage d'énergie.

Enfin, il est peut-être utile de rappeler qu'historiquement, la preuve de travail a été inventée à la base pour lutter contre le spam[9], en étant un moyen de rendre prohibitif le coût de l'envoie massif d'e-mails. C'est le principe même du concept d'être un coût non-recouvrable, donc nécessairement inutile. Et c'est précisément pour cette raison que cela a été choisit comme mécanisme de consensus dans la conception des blockchains.

Notes

  1. ^ Le gaspillage est consubstantiel aux blockchains dont le coût est toujours un surcoût, indépendamment du mécanisme de consensus choisi, y compris donc en l'absence de preuve de travail, comme je l'expliquais dans mon billet “Le coût d'une blockchain”.
  2. ^ En dehors bien sûr de leur rôle dans le mécanisme de consensus distribué par preuve de travail, c'est-à-dire que les calculs ne doivent servir à rien d'autre qu'au tirage au sort de qui écrira le prochain bloc dans le registre. À chacun·e ensuite de décider de l'utilité des blockchains et du rôle des crypto-actifs pour conclure sur l'inutilité totale ou non de ces calculs.
  3. ^ En pratique dans les blockchains existantes, il s'agit du condensat cryptographique servant d'identifiant au dernier bloc ajouté à la chaîne, qui dépend de la preuve de travail de ce bloc.
  4. ^ Sur Bluesky, David Madore me fait remarquer que formellement, il serait difficile de véritablement prouver l'inexistence d'un tel problème, sans pour autant croire lui-même qu'il en existe.
  5. ^ Comme le fait remarquer David Madore, dans le cas d'un problème dont la résolution serait utile à tout le monde, on aurait de toutes façons largement intérêt à coopérer pour sa résolution plutôt que diviser nos forces pour s'en servir dans le contexte compétitif d'une blockchain.
  6. ^ Contexte dont on peut sérieusement remettre l'existence en question, cf mon billet “La vérité sur la blockchain”.
  7. ^ Je mets le terme “mineurs” entre guillemets pour les raisons expliquées dans mon billet sur la notion de “minage” dans les blockchains.
  8. ^ La notion de double dépense est expliquée dans mon billet concernant l'usage du terme “portefeuille” dans les blockchains.
  9. ^ Voir la page Hashcash sur Wikipédia.

Blockchain : une mauvaise solution à la recherche d'un problème aux JRES 2024

L'enregistrement vidéo de la conférence Blockchain : une mauvaise solution à la recherche d'un problème que j'ai donnée lors des Journées réseaux de l'enseignement et de la recherche 2024 le mercredi 11 décembre a été mis en ligne chez Ubicast, j'en ai mis une copie sur mes chaînes PeerTube (ici) et YouTube :

⚠ Le son saccade un peu pendant la première minute mais ça va mieux après !

Blockchain : une mauvaise solution à la recherche d'un problème — JRES 2024

RdGP : À quoi sert la blockchain ?

J'ai été invité par Benjamin Bellamy et Aeris à intervenir dans leur podcast RdGP (Rien de Grave Patron !) à l'occasion d'un épisode intitulé “À quoi sert la blockchain ?” publié le mercredi 27 novembre 2024.

Dans cet épisode de RdGP, nous accueillons p4bl0 pour explorer les enjeux numériques et sociétaux autour de la chaîne de blocs, de ses promesses de décentralisation à ses défis techniques et environnementaux. Ensemble, nous discutons de concepts clés comme le consensus, la preuve de travail, et les implications économiques et sociétales de cette technologie souvent présentée comme révolutionnaire.

Liens :

RdGP S01E08 : [Entretien] p4bl0 : À quoi sert la blockchain ?

Bonne écoute !

Telegram n'est pas une messagerie sécurisée

Depuis l'arrestation du PDG de Telegram ce samedi 24 août, les médias qui en parlent qualifient systématiquement Telegram de “messagerie cryptée”. C'est complètement faux, Telegram n'est pas une messagerie sécurisée. Et c'est un véritable problème que cette désinformation soit ainsi propagée, pour plusieurs raisons.

Telegram est généralement présentée comme une application de messagerie du même type que WhatsApp et Signal, parce qu'elles se ressemblent au niveau de leurs interfaces d'utilisation ainsi qu'en terme de fonctionnalités. Pourtant sous le capot, Telegram est très différente des deux autres. Sur Signal (et a priori WhatsApp), toutes vos discussions sont effectivement sécurisées en étant chiffrées de bout en bout. C'est-à-dire qu'avant de quitter votre appareil vos messages sont chiffrés par l'application et qu'ils ne sont déchiffrés qu'une fois arrivés chez vos interlocuteur·ices, jamais entre temps. C'est le cas que vous utilisiez Signal (ou WhatsApp) depuis votre smartphone ou depuis votre ordinateur. Cela veut dire que, même si votre message doit passer par l'intermédiaire de Signal (ou Meta/Facebook dans le cas de WhatsApp) avant d'être livré à son ou sa destinataire, il ne peut pas être lu par cet intermédiaire, que cet intermédiaire ne peut pas le livrer aux autorités, et qu'une fuite de données de l'intermédiaire (qui se ferait pirater par exemple) ne peut pas compromettre la confidentialité de vos messages (attention toutefois à l'existence des méta-données : qui parle à qui, à quel moment, etc.).

Sur Telegram, le fonctionnement est tout à fait différent. Les messages sont chiffrés oui, mais seulement en transit par défaut : de leur émetteur·ice à Telegram, puis de Telegram à leur destinataire. Mais entre les deux, chez Telegram, les messages ne sont plus chiffrés, ils sont lisibles en clair, par Telegram donc mais aussi par tou·tes celleux qui auraient accès à leur infrastructure, que ce soit légalement ou illégalement (ou “alégalement”, comme on dit concernant les agences de renseignements qui naviguent disons… en zone grise). Le niveau de chiffrement de Telegram est exactement le même que pour les messages privés/directs sur les réseaux sociaux. Si le chiffrement en transit vous suffit à dire d'une messagerie qu'elle est sécurisée, chiffrée, ou encore “cryptée”, alors vous devez qualifier Twitter, Instagram, Snapchat, Discord, Slack, etc. de la même manière, ce qui n'est bien sûr jamais le cas. Il est pourtant clair que pour le grand public, lorsqu'un média parle de “messagerie cryptée”, le niveau de sécurité attendu de cette messagerie n'est pas le même que pour les messages Instagram, qui ne sont jamais qualifiés de la sorte.

Alors certes, il y a la possibilité sur Telegram de créer ce que l'application appelle un “échange secret” qui sera lui bien chiffré de bout en bout… mais avec de nombreux bémols comparés à Signal (ou WhatsApp) :

  • cette fonctionnalité n'est tellement pas mise en avant dans l'interface de Telegram qu'il est fort probable que la grande majorité de ses utilisateur·ices, y compris parmi celleux qui pensent malheureusement utiliser une messagerie sécurisée, ne soient en réalité même pas au courant de son existence ;
  • les échanges secrets Telegram ne sont possibles que pour les discussions directes entre deux personnes : la fonctionnalité n'existe pas du tout pour les groupes, ni les canaux ;
  • les échanges secrets ne sont possibles que sur smartphone Android ou iOS, pas dans les applications Windows, macOS et Linux, ni dans la version web ;
  • il est impossible d'initier un échange secret si les deux contacts ne sont pas en ligne en même temps ;
  • un échange secret est confiné à un seul appareil, il ne sera pas disponible ni synchronisé de son smartphone à son ordinateur ou sa tablette et vice-versa, ni avec son prochain smartphone en cas de changement, contrairement aux discussions Telegram “normales” ;
  • enfin, mais c'est probablement le moins important, le protocole de chiffrement de Telegram a été moins étudié et approuvé par la communauté cryptographiques que celui de Signal.

Dans la capture d'écran ci-dessus on voit deux conversations avec la même personne, Léa, sur mon application Telegram. La première est un échange secret, signalé par le cadenas et la couleur verte, la seconde est une discussion “normale”. Je pourrais vouloir toujours discuter avec Léa dans la discussion sécurisée et même supprimer la conversation non-sécurisée pour être sûr de ne pas faire l'erreur de parler au mauvais endroit lorsque l'on fomentera pour organiser la révolution, mais c'est en pratique impossible ou a minima trop peu pratique pour qu'on en ait vraiment envie : dès que l'un·e de nous deux est sur son ordinateur plutôt que son smartphone la conversation sécurisée est inutilisable, si l'un·e de nous deux doit changer de smartphone les échanges de la discussion sécurisée sont perdus, etc. Ne vous inquiétez pas pour la révolution, Léa et moi discutons en réalité sur Signal, ces deux conversations ne sont qu'une démo faite ce dimanche (de toutes façons la révolution ne se fait pas qu'à deux, et Telegram est incapable de sécuriser les conversations de groupe…).

Bref, ces importantes limitations des échanges secrets de Telegram sont des inconvénients majeurs en terme de convivialité, et repoussent donc les utilisateur·ices de la fonctionnalité, même dans les cas où celle-ci est connue. La sécurité informatique ne peut pas être une question purement technique, il est nécessaire de prendre en compte ces facteurs sociaux humains, du moins quand on est sérieux·ses. C'est donc bien de la désinformation de présenter Telegram comme une messagerie sécurisée, et c'est dangereux car cela peut donner un faux sentiment de sécurité à celleux qui croient utiliser un équivalent de Signal (ou WhatsApp). Si il y a des choses que vous n'auriez pas envie d'envoyer via DM sur Twitter ou Instagram, vous ne devriez probablement pas les envoyer non plus via Telegram.

Enfin, la dernière raison pour laquelle ça me pose soucis que Telegram soit systématiquement présentée comme une messagerie sécurisée est plus spécifique au contexte dans lequel c'est fait en ce moment. Il est problématique d'insinuer que c'est la sécurité (prétendument) offerte par Telegram qui justifierait l'arrestation de son PDG ou qui y attirerait des activités répréhensibles, d'autant plus qu'elle n'existe pas. Utiliser du chiffrement pour protéger sa vie privée et celle de ses interlocuteur·ices, ou pour protéger le secret de ses correspondances, ce n'est ni illégal, ni un problème, et c'est parfois même une nécessité. Je vous encourage d'ailleurs à utiliser Signal qui est pragmatiquement la meilleure application de messagerie sécurisée à ce jour, car les rares compromis qu'elle fait avec une sécurité techniquement maximaliste sont mûrement réfléchis et faits dans avec l'objectif de lui permettre d'être conviviale, c'est-à-dire facile et plaisante à utiliser sans erreur de manipulation pouvant compromettre la sécurité ou le fonctionnement de la messagerie.

Un des visuels de la campagne “Contre le capitalisme de surveillance et la technopolice, le logiciel libre” de l'Union communiste libertaire.

Si c'est “gratuit”, c'est toi qui produis à Pas Sage En Seine 2024

L'enregistrement vidéo de la conférence Si c'est “gratuit”, c'est toi qui produis que j'ai donnée lors du festival Pas Sage En Seine 2024 le dimanche 2 juin a été mis en ligne sur PeerTube, j'en ai mis une copie sur ma chaîne YouTube :

Je remercie grandement l'April pour la transcription de la conférence disponible sur Libre à lire.

Si c'est “gratuit”, c'est toi qui produis — Pas Sage En Seine #PSES2024

| page 1 de 9