Le Conseil de sécurité d'Arbitrum a gelé 8 425 ETH et 74,6 millions d'ARB en 10 minutes
Points clés
- •Le Conseil de sécurité d'Arbitrum a transféré 8 425 ETH et 74,6 millions d'ARB, estimés à près de 30 millions de dollars, depuis un portefeuille lié à l'exploitation de Binance vers une adresse de conservation se terminant par 0DA0 le 30 octobre.
- •Le conseil a utilisé une mise à niveau temporaire de l'Inbox appelée sendUnsignedTransactionOverride, permettant à Arbitrum One d'accepter des transactions désignant l'adresse d'exploitation comme expéditeur sans accès à sa clé privée.
- •Les actifs gelés ne peuvent être libérés que par un vote de gouvernance d'ArbitrumDAO, et la divulgation d'octobre n'a pas identifié de destinataire final.
- •Le même mécanisme a été utilisé le 21 avril pour récupérer 30 766 ETH auprès de l'exploitant de KelpDAO, et ce processus de libération a finalement été redirigé par une ordonnance d'un tribunal fédéral américain liée au jugement Kim c. RPDC.
- •TRM Labs et Chainalysis ont lié le vol de Binance à des hackers nord-coréens, et Binance a déclaré qu'elle couvrirait les pertes des clients sur ses propres fonds.

Le Conseil de sécurité d'Arbitrum a transféré 8 425 ETH et 74,6 millions d'ARB depuis un portefeuille lié à une exploitation vers une adresse se terminant par 0DA0 lors d'une action d'urgence le 30 octobre. L'opération a utilisé un dépassement de l'Inbox permettant au réseau d'accepter des transactions semblant provenir de l'exploitant, sans utiliser sa clé privée.
Selon la divulgation d'action d'urgence du Conseil de sécurité, le transfert a été exécuté à 8h08, heure de Hong Kong. Le conseil a indiqué qu'aucun fonds ni aucune application d'autres utilisateurs n'avaient été affectés. Les estimations de la presse évaluaient les actifs gelés à près de 30 millions de dollars, à comparer aux environ 6,3 milliards de dollars que Binance déclare avoir été retirés de ses portefeuilles.
Les fonds ne peuvent quitter l'adresse 0DA0 que par un vote de gouvernance d'ArbitrumDAO. L'action a donc impliqué trois pouvoirs distincts : le conseil ne pouvait pas signer de transactions pour le portefeuille de l'exploitant, mais il pouvait modifier la manière dont Arbitrum One accepte les transactions. Décider qui reçoit finalement les actifs relève de la responsabilité du DAO et, comme l'a montré un gel antérieur, peut également impliquer un tribunal américain.
Comment le dépassement de l'Inbox a fonctionné
Les messages d'Ethereum atteignent Arbitrum One via le contrat Inbox sur le réseau principal Ethereum. Dans des conditions normales, une transaction inter-chaînes porte l'identité de son expéditeur, empêchant un compte Ethereum d'utiliser la voie standard pour agir au nom d'un autre compte sur Arbitrum.
Pour l'action d'urgence, le conseil a mis à niveau l'Inbox avec une fonction appelée sendUnsignedTransactionOverride. La divulgation décrit cette fonction comme ajoutant « la capacité d'usurper l'identité de l'expéditeur de la transaction ». Deux messages créés avec cette fonction désignaient l'adresse d'exploitation comme expéditeur et dirigeaient ses ETH et ARB vers l'adresse de conservation. Le conseil a ensuite restauré le code original de l'Inbox.
La mise à niveau, les transferts et la restauration se sont tous déroulés au sein d'une seule transaction Ethereum à 00:08:35 UTC. Arbitrum One a traité le résultat environ 10 minutes plus tard, et le transfert d'ARB a été réglé à 00:18:20 UTC. La transaction concernée est enregistrée sur Etherscan, tandis que la transaction Arbitrum correspondante apparaît sur Arbiscan.
Combiner la mise à niveau et la restauration dans une seule transaction peut masquer la modification aux systèmes de surveillance qui comparent l'adresse d'implémentation de l'Inbox avant et après chaque bloc. Un tel observateur verrait la même implémentation de part et d'autre de la transaction. La société de sécurité Zealynx a signalé ce problème dans une reconstruction technique publiée via Ethereum Magicians.
La mise à niveau reste visible dans les événements de mise à niveau du contrat et dans la trace d'exécution de la transaction. Aucune cryptographie n'a été cassée : la clé privée de l'attaquant est restée sous son contrôle, tandis que le conseil a modifié l'expéditeur que le réseau accepterait.
Ce que révèle la transaction ARB
Le transfert d'ARB lui-même ressemble à une transaction de portefeuille ordinaire. L'adresse d'exploitation apparaît dans le champ « from », et l'adresse se terminant par 0DA0 dans le champ « to ». Le détail significatif est le type de transaction, enregistré comme 101, ou 0x65, le libellé qu'Arbitrum utilise pour une transaction non signée entrant depuis Ethereum.
L'adresse d'exploitation n'a produit aucune signature car cette voie n'en exigeait pas. En conséquence, les outils qui interprètent chaque transfert sortant comme une décision du propriétaire du portefeuille pourraient attribuer incorrectement le mouvement à l'exploitant. Les services d'étiquetage de portefeuilles, les systèmes de conformité et les résumés d'explorateurs pourraient tous enregistrer l'exploitant comme ayant déplacé les fonds, alors que c'est le conseil qui a initié l'action.
Du point de vue du contrat de token, l'événement semblait également ordinaire. Zealynx a noté que le contrat ARB avait enregistré un transfert standard et n'avait aucun moyen de distinguer l'action du conseil d'un transfert normal. Le type de transaction à lui seul n'est pas concluant, car les comptes Ethereum utilisent légitimement des transactions non signées pour atteindre Arbitrum depuis le réseau principal. Les preuves distinctives sont le message Ethereum derrière la transaction et le fait de savoir si l'implémentation de l'Inbox a changé au cours de cette même transaction.
Le même mécanisme a été utilisé en avril
Le gel lié à Binance a suivi un mécanisme utilisé le 21 avril, lorsque le conseil a transféré 30 766 ETH depuis l'exploitant de KelpDAO après une attaque sur la route du pont rsETH de KelpDAO. Cette action a utilisé la même fonction et la même adresse de conservation, selon la divulgation d'action d'urgence d'avril.
L'autorité provient de la constitution d'ArbitrumDAO, qui accorde au DAO et au Conseil de sécurité des privilèges de propriétaire de chaîne sur Arbitrum One. Ces privilèges incluent le contrôle des mises à niveau des contrats principaux et des paramètres système. Neuf des 12 membres du conseil peuvent approuver une action d'urgence sans délai.
La constitution limite cette autorité aux véritables urgences de sécurité et exige ensuite un rapport de transparence. ArbitrumDAO peut également restreindre ou supprimer ces pouvoirs par une proposition constitutionnelle.
Les gels de stablecoins fonctionnent à un niveau différent. Circle et Ripple ont gelé des tokens liés au vol de Binance en utilisant des contrôles intégrés à leurs actifs respectifs. Coindoo a rapporté comment l'attaquant a contourné ces contrôles en empruntant des ETH contre des stablecoins volés. L'ETH n'a aucun émetteur capable de le mettre sur liste noire, mais l'ETH sur Arbitrum One est enregistré dans un registre dont le système sous-jacent peut être mis à niveau par le conseil. La divulgation d'octobre ne précise pas si l'ETH gelé provenait de ces prêts.
L'action d'avril a suscité un débat sur la portée de la capacité d'usurpation d'identité. Robby Greenfield de Tokedex a écrit qu'elle n'était « pas limitée au recouvrement ». Le délégué MconnectDAO a demandé au conseil de publier une politique d'action d'urgence définissant quand il pouvait contourner la gouvernance. Le délégué deakeegroup a soutenu la position opposée, estimant que des pouvoirs d'urgence pré-autorisés et strictement délimités étaient préférables à l'absence de voie d'urgence ou à des clés administratives illimitées sans responsabilité. Le 11 octobre, un participant à la même discussion demandait encore si les travaux sur une telle politique avaient commencé.
Pour les détenteurs d'actifs sur Arbitrum One, cet épisode sépare deux questions : qui contrôle la clé privée, et qui peut modifier les règles selon lesquelles cette clé opère. Sur Arbitrum One, ce dernier pouvoir appartient à neuf des 12 signataires du conseil, dans le respect de la constitution. Les chaînes construites avec la technologie Arbitrum ont des réponses distinctes, car chaque chaîne a ses propres administrateurs.
Le déplacement des fonds exige un autre vote
La divulgation d'octobre n'a pas identifié le destinataire final. Elle indiquait seulement qu'un vote de gouvernance serait nécessaire pour déplacer les actifs et que le processus était coordonné avec les parties concernées. Le recouvrement d'avril offre un exemple du fonctionnement de ce processus.
Le 25 avril, Aave Labs, KelpDAO, LayerZero, EtherFi et Compound ont publié un AIP constitutionnel. La proposition désignait un multisig de recouvrement comme destinataire, liait les ETH au rétablissement de la couverture du rsETH et engageait Aave Labs à indemniser l'Arbitrum Foundation, Offchain Labs et les membres du conseil.
La proposition comprenait le calendrier suivant :
- Discussion sur le forum : une semaine
- Contrôle de température sur Snapshot : une semaine
- Délai après soumission on-chain : trois jours
- Vote on-chain : 14 jours, extensible à 16
- Période d'attente Arbitrum : huit jours
- Finalisation du message Arbitrum vers Ethereum : généralement au moins une semaine
- Période d'attente Ethereum : trois jours
Les auteurs estimaient que le processus prendrait environ 49 jours de la publication à l'exécution.
Un tribunal a ensuite modifié le destinataire proposé. Les plaignants dans Kim c. République populaire démocratique de Corée, titulaires d'un jugement américain impayé contre la Corée du Nord, avaient signifié une notification de restriction à « Arbitrum DAO ». Une ordonnance fédérale déposée le 8 mai permettait un vote on-chain pour envoyer les ETH gelés vers un portefeuille contrôlé par Aave LLC. Elle liait également Aave LLC à la restriction dès réception des fonds et réservait toutes les autres questions concernant les actifs.
La proposition a été modifiée pour désigner Aave LLC comme destinataire et figurait parmi les votes on-chain actifs d'Arbitrum au 26 mai, selon le récapitulatif de gouvernance. Au cours de ce débat, le délégué DZack23 a écrit que même en supprimant les étapes de discussion et de contrôle de température, il resterait au moins 35 jours. À son avis, utiliser une autre action d'urgence pour accélérer une libération violerait la constitution, car la rapidité d'un recouvrement n'est pas en soi une urgence de sécurité.
Les fonds de Binance portent une attribution similaire à celle associée aux ETH de KelpDAO. TRM Labs et Chainalysis ont lié le vol de Binance à des hackers nord-coréens, comme l'a rapporté BleepingComputer. Binance a déclaré qu'elle couvrirait les pertes des clients sur ses propres fonds, faisant de l'ayant droit dans ce cas un seul échange plutôt que la coalition de protocoles impliquée dans le recouvrement d'avril.
Les prochaines étapes seraient visibles dans trois enregistrements : une proposition de libération sur le forum de gouvernance d'Arbitrum désignant un destinataire, le rapport de transparence exigé par la constitution pour l'action d'octobre, et tout dépôt judiciaire identifiant le solde détenu à l'adresse 0DA0, qui est listé sur Arbiscan. L'appel de gouvernance ouvert d'Arbitrum du 3 novembre était la première discussion programmée d'une proposition depuis le gel. Si la libération suit le processus d'avril, ce calendrier établirait le moment le plus précoce auquel les fonds pourraient être déplacés, tandis qu'une notification de restriction pourrait modifier le destinataire d'ici là.