Auteur : Lisa Éditeur : Sherry
Contexte
Les messages en chaîne, en tant que méthode de communication particulière dans le monde de la blockchain, ont été fréquemment utilisés dans divers incidents de sécurité ces dernières années. Par exemple, SlowMist a récemment assisté KiloEx à mener plusieurs discussions avec un attaquant par le biais de messages en chaîne, réussissant ainsi à faciliter le retour de tous les fonds volés, soit 8,44 millions de dollars américains. Dans un environnement anonyme, ces messages peuvent constituer un outil efficace pour établir un dialogue initial et poser les bases d’une récupération ultérieure des fonds.
Dans notre précédent article, “Les messages en chaîne dans le guide de premiers secours pour les fonds volés”, nous avons détaillé la méthode de message sur Ethereum. Le réseau Bitcoin prend également en charge les messages en chaîne, mais les méthodes de mise en œuvre sont légèrement différentes. L’instruction centrale pour les messages en chaîne Bitcoin est l’instruction OP_RETURN, qui permet aux utilisateurs d’incorporer 80 octets de données personnalisées dans les transactions. Cette partie des données ne sera pas utilisée par les nœuds pour la vérification des transactions et n’affectera pas l’état de l’UTXO. Elle est uniquement destinée à enregistrer des informations et sera entièrement inscrite dans la blockchain.
Comment utiliser OP_RETURN pour laisser des messages sur la chaîne
Étape 1 : Encoder le contenu du message
Tout d’abord, il convient de convertir les informations textuelles à envoyer en format hexadécimal (HEX). L’instruction OP_RETURN sur la chaîne Bitcoin n’accepte que les données au format HEX. Par exemple, si vous souhaitez laisser un message comme : “C’est un test”, le HEX converti est : 54686973206973206120746573742e. Vous pouvez effectuer cette conversion à l’aide d’un outil en ligne ou par un script Python :
text = "Bonjour, c'est un test."
hex_text = text.encode("utf-8").hex()
print(hex_text)
Le contenu du message doit comporter moins de 160 caractères hexadécimaux ou 80 octets. Si la longueur dépasse cette limite, il est conseillé de simplifier le message ou de l’envoyer en plusieurs transactions.
Étape 2 : Construire une transaction avec OP_RETURN
Ensuite, vous devez utiliser un portefeuille Bitcoin ou un outil qui prend en charge les transactions personnalisées pour créer une transaction avec une sortie OP_RETURN. Prenons Bitcoin Core comme exemple : utilisez createrawtransaction pour ajouter manuellement la sortie OP_RETURN
bitcoin-cli createrawtransaction '[{"txid":"your_input_txid","vout":0}]' '[{"data":"54686973206973206120746573742e"}]'
La transaction ainsi construite ne transférera pas de fonds, mais écrira uniquement le message sur la chaîne. Prenons également l’exemple du portefeuille imToken : accédez à l’interface de transfert de portefeuille BTC, activez le “Mode Avancé” et entrez les informations hexadécimales dans le champ “OP_RETURN”. Confirmez les informations de la transaction et saisissez le mot de passe pour l’envoyer avec succès. Assurez-vous que “Montant d’entrée = Montant de sortie + Frais de transaction”.
Étape 3 : Diffuser la transaction
La transaction signée doit être diffusée via le réseau Bitcoin. Étant donné que les transactions OP_RETURN ne transfèrent pas réellement des fonds, elles devront inclure des frais de transaction pour être traitées et attendre que les mineurs les ajoutent aux blocs. Une fois la transaction confirmée, le message sera stocké de manière permanente dans la blockchain Bitcoin.
Étape 4 : Voir le contenu du message
Après avoir réalisé la transaction, vous obtiendrez un TXID, qui peut être consulté via un explorateur de blocs. Celui-ci décodera généralement automatiquement les données hexadécimales OP_RETURN en ASCII.
Application d’OP_RETURN
Lors d’incidents de sécurité, certains attaquants utiliseront OP_RETURN pour laisser des messages sur la chaîne, exprimant leur intention de retourner des fonds à une partie projet ou, inversement, les équipes de projet et les “chapeaux blancs” utiliseront également cette méthode pour essayer d’établir un contact avec l’attaquant. En plus d’être utilisés dans des scénarios de négociation, OP_RETURN sert également à des opérations de “marquage”. Par exemple, Chainalysis a révélé qu’à la veille de la guerre russo-ukrainienne en 2022, un utilisateur de Bitcoin non identifié avait utilisé OP_RETURN pour marquer près de 1 000 adresses suspectées d’être associées aux départements de sécurité russes. Ces messages, rédigés en russe, indiquaient que ces adresses pouvaient être impliquées dans des cyberattaques ou des actes d’espionnage.
Cet utilisateur a non seulement laissé un message, mais a aussi « brûlé » une grande quantité de Bitcoin : en effet, tout Bitcoin envoyé dans de telles transactions sera perdu et ne pourra pas être récupéré. D’après les statistiques, cet utilisateur a brûlé plus de 300 000 dollars en Bitcoin dans cette série d’opérations.
Résumé
Les messages en chaîne, en particulier OP_RETURN sur le réseau Bitcoin, offrent une méthode de communication anonyme, publique et inviolable, largement utilisée pour le contact initial et la transmission d’informations dans le cadre de la récupération des fonds. Cependant, il est important de noter que ces messages peuvent également être exploités par des attaquants pour inciter les victimes à visiter des liens malveillants ou à effectuer des actions risquées, comme entrer une clé privée pour des causes illicites. Restez donc vigilant et évitez de consulter des informations suspectes sur des appareils non fiables. Lorsqu’un incident de sécurité survient, il est recommandé de contacter rapidement une équipe de sécurité professionnelle pour analyser la situation et améliorer les chances de récupération des fonds. Parallèlement, les utilisateurs et les équipes de projet doivent renforcer leur sensibilisation à la sécurité pour éviter de devenir des cibles d’attaques.