L'incident qui a paralysé Liquid Network début septembre est en train de changer de nature. Ce qui ressemblait au départ à une opération spectaculaire de divulgation responsable s'est transformé en bras de fer autour de près de 600 BTC.
Blockstream a annoncé le 11 septembre qu'il refusait de payer la récompense exigée par les personnes à l'origine de l'exploit. Environ 598,5 BTC restent entre leurs mains après la restitution de 3 400 BTC.
Le problème n'était pas une clé privée volée
C'est l'un des points les plus importants de l'incident. Liquid affirme qu'aucune clé de la fédération ni la Peg-out Authorization Key de SideSwap n'ont été compromises.
L'attaque est passée par une faille dans Elements, le logiciel open source sur lequel repose Liquid.
Selon les explications publiées après l'incident, cette faille a permis de créer environ 4 000 L-BTC qui n'étaient pas adossés à de véritables bitcoins détenus dans la réserve.
L'exploiteur a ensuite envoyé ces L-BTC vers le service de peg-out de SideSwap. Pour SideSwap, la demande apparaissait valide. Les jetons ont été brûlés normalement et la fédération Liquid a envoyé environ 3 996 BTC vers l'adresse Bitcoin fournie.
Autrement dit, l'étape finale n'a pas été forcée avec une clé volée. Le système a exécuté correctement une demande construite à partir de L-BTC qui, eux, n'auraient jamais dû exister.
Près de 95 % de la réserve avaient disparu
Lorsque Liquid a signalé l'incident le 6 septembre, environ 4 000 BTC avaient été retirés d'une réserve qui en contenait approximativement 4 200.
Au cours du bitcoin de ce week-end-là, le montant représentait environ 320 millions de dollars.
Le réseau a immédiatement désactivé ses bridge nodes et prévenu les exchanges, qui ont suspendu les dépôts et retraits de L-BTC. Pendant cette phase, aucune nouvelle transaction ne pouvait être soumise : Liquid était, dans les faits, à l'arrêt.
Les autres actifs émis sur Liquid, comme certains stablecoins et actifs tokenisés, n'avaient pas été directement compromis. Ils restaient néanmoins enfermés dans un réseau temporairement immobilisé.
« Corrigez d'abord le bug »
L'acteur derrière l'opération a communiqué directement sur Bitcoin grâce à des messages OP_RETURN et des textes chiffrés avec PGP.
Son message initial se présentait comme celui d'un white hat. Avant de restituer les fonds, il a demandé à Blockstream de corriger la faille et de s'assurer que chaque nœud concerné avait été mis à jour.
Blockstream a ensuite répondu avec un message signé indiquant que les bridge nodes avaient été corrigés et que les bitcoins pouvaient être rendus en sécurité.
Le résultat a été immédiat : 3 400 BTC sont revenus à l'adresse de la fédération.
À ce moment-là, le scénario ressemblait encore beaucoup à une divulgation de vulnérabilité particulièrement brutale, mais suivie d'une restitution massive.
Les 598,5 BTC ont changé la lecture de l'affaire
L'exploiteur n'a toutefois pas tout rendu.
Environ 598,5 BTC sont restés sur son adresse, soit plusieurs dizaines de millions de dollars au cours du bitcoin de ces derniers jours. SideSwap a par ailleurs retourné environ 4 BTC correspondant aux frais qu'il avait perçus pendant le peg-out.
L'acteur a ensuite demandé à Blockstream une prime correspondant à 10 % du montant de l'opération.
C'est là que le vocabulaire de « white hat » devient beaucoup plus difficile à défendre. Une divulgation responsable peut donner lieu à une récompense négociée. Retenir des dizaines de millions de dollars jusqu'à obtention d'une somme imposée ressemble beaucoup moins à un programme de bug bounty.
Blockstream refuse de payer
Blockstream a explicitement rejeté cette demande le 11 septembre.
L'entreprise affirme avoir tenté d'obtenir la restitution des fonds de bonne foi, mais considère désormais que conserver les bitcoins sans autorisation n'est pas de la divulgation responsable.
Le groupe a indiqué vouloir poursuivre les efforts de récupération avec les autorités et des spécialistes de l'analyse blockchain.
Ce refus est également stratégique. Payer automatiquement un pourcentage après une attaque de cette ampleur créerait un précédent particulièrement dangereux : exploiter d'abord, baptiser ensuite l'opération « white hat », puis négocier avec les fonds de la victime comme garantie.
Elements 23.3.4 a été déployé
Sur le plan technique, Blockstream a diffusé Elements 23.3.4 le 9 septembre pour corriger la vulnérabilité.
Liquid a recommencé à produire des blocs le 10 septembre. Les transactions ont également repris plus tard dans la journée.
Le réseau n'est cependant pas encore revenu à un fonctionnement entièrement normal. Les peg-outs restent désactivés à titre de précaution pendant que la réserve BTC/L-BTC est remise en état.
Cette nuance compte : voir des blocs apparaître et pouvoir à nouveau effectuer des transactions Liquid ne signifie pas que toutes les fonctions du pont avec Bitcoin ont été réactivées.
L'incident touche le cœur de la promesse du L-BTC
Liquid fonctionne avec L-BTC, une représentation de bitcoin censée rester adossée à du BTC immobilisé dans la fédération.
Le problème rencontré ici n'est donc pas un simple vol dans un portefeuille utilisateur. La faille a permis de créer temporairement une quantité massive de L-BTC sans collatéral correspondant, puis d'utiliser le mécanisme normal de sortie pour retirer de véritables bitcoins de la réserve.
C'est exactement le genre de scénario qu'un système de peg doit empêcher.
Le fait que l'exploit ait nécessité une vulnérabilité logicielle plutôt qu'une compromission des clés ne rend pas le résultat beaucoup plus rassurant pour les utilisateurs : la garantie économique dépend autant du code qui contrôle la création des actifs que des clés qui contrôlent la réserve.
Le chiffre de 320 millions de dollars est désormais trompeur
Dire que Liquid a « perdu 320 millions de dollars » reste utile pour décrire l'ampleur initiale de l'événement, mais ce n'est plus l'état actuel du dossier.
Environ 3 400 BTC ont été restitués, et SideSwap a renvoyé les 4 BTC de frais liés à l'opération. L'exposition non récupérée se concentre donc désormais autour des 598,5 BTC retenus par l'exploiteur.
À l'inverse, réduire l'affaire aux seuls bitcoins encore manquants ferait disparaître l'essentiel : pendant plusieurs jours, une vulnérabilité avait permis de vider presque toute la réserve Bitcoin de Liquid et avait forcé l'arrêt du réseau.
La prochaine question est moins technique que juridique
Le correctif existe. Le réseau produit de nouveau des blocs. L'essentiel des bitcoins a été rendu.
Ce qui reste ressemble désormais davantage à une négociation sous contrainte qu'à un problème de développement logiciel.
Le mot « white hat » ne constitue pas un statut juridique que l'on peut s'attribuer dans un OP_RETURN. Il décrit normalement une démarche où l'objectif est de corriger une faille sans s'approprier durablement les actifs exposés.
Avec 598,5 BTC encore retenus et une prime de 10 % exigée en échange de leur restitution, Blockstream a manifestement décidé que cette frontière avait été franchie.