Tornado Cash, service de mixage opérant sur le réseau Ethereum, a récemment été pris pour cible par l’Office of Foreign Assets Control (OFAC) et le 10 août dernier, Alexey Pertsev, principal développeur du service, a été arrêté par les autorités néerlandaises aux Pays-Bas.
Si cette arrestation a suscité une vague d’indignations (une pétition est ouverte sur change.org), l’affaire a également soulevé un certain nombre d’interrogations sur la résilience de Bitcoin [2] : Si l’OFAC a le pouvoir d’arrêter un développeur parce que l’outil qu’il a créé est également utilisé à des fins criminelles [3], n’aurait-il pas également le pouvoir d’imposer ses vues aux mineurs et aux pools [4] sous sa juridiction (qui semble très large) ? Une telle politique aurait-elle des conséquences sur la résistance à la censure de Bitcoin ?
Censure du code
Evacuons tout d’abord tout ce qui concerne les attaques juridiques contre les personnes qui travaillent sur le code source de Bitcoin. Toute mise en cause visant des développeurs – au prétexte, par exemple qu’ils auraient contribué à la production d’un outil également utilisé par des criminels – pourrait se démonter assez facilement [5] et n’aurait par ailleurs aucune conséquence sur le protocole lui-même, y compris si cette attaque concernait ceux qui ont la main sur le dépôt Github qui organise aujourd’hui les modifications du protocole. Le « code » de Bitcoin n’est pas celui d’un dépôt Github, mais celui que les noeuds du réseau choisissent de faire tourner. Par ailleurs, si Github était compromis, il suffirait de copier le code source ailleurs.
Censure sur les plateformes centralisées
De nombreuses plateformes d’échange centralisées pratiquent d’ores et déjà le blocage de fonds à la demande des autorités dont elles dépendent. Mais il ne s’agit pas là que d’acteurs périphériques, de ponts entre le bitcoin et les monnaies fiduciaires. Ces ponts sont parfois minés, tout le monde le sait, et même pour les utilisateurs parfaitement honnêtes. Le plus sage, si on ne peut pas les contourner, est de ne pas trop s’y éterniser. Cela ne remet pour autant pas en question la résistance protocole Bitcoin lui-même car ce type de censure n’affecte pas les transactions de pair à pair.
Censures des transactions
La censure, ou plutôt la sélection des transactions, est inscrite dans le protocole Bitcoin. Les mineurs, ou les pools qui agrègent leur puissance de calcul, sont libres de choisir, parmi les transactions en attente, celles qu’ils souhaitent intégrer dans leurs blocs. Ces agents sont rationnels et le choix dépend le plus souvent de critères économiques. En cas de congestion, on va privilégier les transactions offrant les frais les plus élevés. Rien, cependant, n’interdit aux pools d’opter pour d’autres critères, y compris la censure d’adresses issues d’une liste fournie par une autorité. C’est ce que propose d’ores et déjà la société Blockseer (« pool minier » canadien). Cela relève de la liberté des pools et les mineurs qui y contribuent ont à leur tour la liberté d’accepter cette politique ou de partir ailleurs s’ils le peuvent. Evidemment un acteur ayant pignon sur rue, aux Etats-Unis par exemple, n’aurait pas d’autre choix que de se conformer aux exigences des autorités si une telle demande était faite.
Si la censure d’adresses issues de listes fournies par les autorités étaient suivies par un grand nombre d’opérateurs, cela affecterait évidemment la vitesse et/ou le prix des transactions impliquant les adresses incriminées. Il faudrait en effet attendre que ces transactions soient incluses par un pool (ou un mineur solo) qui ne s’aligne pas sur cette politique, par exemple un acteur opérant sous les radars ou installé dans une contrée hors du contrôle des Etats-Unis, de leurs vassaux, voire d’un pays du GAFI [6]. Si les frais consentis sont particulièrement intéressants, cet acteur sera naturellement incité à donner la priorité à ces transactions. Une telle censure serait donc assez imparfaite et ne pourrait de toute façon pas se décréter de façon unilatérale. Impossible, par exemple, pour un pays autoritaire de bloquer ou même de ralentir une adresse attribuée à un opposant politique.
Censure des blocs
La diffusion des blocs de transaction repose rarement sur les mineurs et très peu sur les pools. Imposer à des mineurs étatsuniens de ne passer que par des pools sous juridiction américaine qui ne reconnaitraient comme valides uniquement les blocs qui ne contiennent aucune transactions jugée illicite, ce serait les exclure aussitôt du réseau puisque les noeuds qui en constituent le maillage ne relaieront que la chaine orthodoxe, celle qui concentre le plus de preuve de travail.
Evidemment il reste l’hypothèse, aujourd’hui assez improbable, que la majorité des mineurs à travers le monde consentent de façon concertées à cette censure des blocs malgré le risque de fork et de perte financière. Ce scénario a déjà été exploré par Juraj Bednar dans un article que nous avions résumé en décembre 2020. Mais un tel coup d’Etat ne serait-il pas immédiatement sanctionné par un « fork » activé par les noeuds du réseau [7] ?
[1] Agence du Département du Trésor étasunien chargée de l’application des sanctions internationales américaines dans le domaine financier.
[2] Voir par exemple ce fil Twitter de Guillaume Goualard ou le dernier épisode de l’Entonnoir du Bitcoin.
[3] Tornado cash est conçu pour protéger la confidentialité des transactions des utilisateurs d’Ethereum.
[4] Coopératives qui regroupent la puissance de calcul de plusieurs mineurs.
[5] Si on peut souhaiter qu’un développeur de malware et de rançongiciel rende des comptes à la justice (y compris s’il travaille pour la NSA), l’argument ne tient pas pour des outils qui ne sont pas conçus à des fins criminelles (les tractions avant, les couteaux de cuisine, le dollar, etc.).
[6] Groupe d’action financière (GAFI) ou Financial Action Task Force (FATF).
[7] Arme ultime pour « recadrer » les mineurs, la menace d’un UASF (User Activated Soft Fork) a déjà été utilisée avec succès en 2017 pour contraindre les mineurs récalcitrants à adopter Segwit.