Cet article effectue une analyse approfondie de certains phénomènes de « perte » de runes survenus lors des récentes opérations inter-chaînes BEVM, et propose également des suggestions de sécurité pour éviter que de tels problèmes ne se reproduisent.
Écrit par Léon, équipe de recherche ScaleBit
Cet article effectue une analyse approfondie de certains phénomènes de « perte » de runes survenus lors des récentes opérations inter-chaînes BEVM, et propose également des suggestions de sécurité pour éviter que de tels problèmes ne se reproduisent.
Récemment, nous avons remarqué que certaines runes sont « perdues » dans les opérations cross-chain de BEVM, ce qui a suscité des inquiétudes et des inquiétudes au sein de la communauté. Cet article procédera à une analyse approfondie de ce problème, dans le but de fournir aux utilisateurs une compréhension plus complète du problème. En même temps, il utilisera également ce sujet pour parler de certaines précautions dans l’utilisation des inscriptions et des runes qui sont devenus populaires récemment.
*Le 23 décembre 2023, heure de Pékin, certains utilisateurs de trading cross-chain de BEVM ont découvert que certains COOK et PSBTS détenus sur leurs comptes avaient été transférés vers le pont cross-chain à leur insu. Par la suite, ces utilisateurs ont posé des questions à l’équipe BEVM. Ensuite, le Twitter officiel de BEVM a publié une déclaration disant que, comme cette partie des runes n’est pas prise en charge par les portefeuilles traditionnels tels que * Unisat *, lors du cross-chain avec BEVM, ces inscriptions non traditionnelles seront traitées comme ordinaire * UTXO *Allez à l’adresse BEVM. *
*L’équipe de sécurité de ScaleBit a remarqué cet incident et a immédiatement mené une enquête. Après des recherches menées par l’équipe ScaleBit, il a été confirmé que cette partie des runes avait bien été transférée comme un UTXO ordinaire dans la même transaction inter-chaînes, plutôt que « volée » par BEVM. *
Citant des informations du site officiel de BEVM, BEVM est un BTC Layer 2 qui utilise BTC comme gaz et est compatible avec EVM. L’objectif principal est d’étendre le scénario de contrat intelligent de Bitcoin et d’aider BTC à surmonter les contraintes de la blockchain Bitcoin qui est Turing n’est pas complet et ne prend pas en charge les contrats intelligents, permettant à BTC de créer des applications décentralisées avec BTC comme gaz natif sur la couche 2 de BEVM.
Récemment, avec le lancement de l’événement BEVM Odyssey, de nombreux utilisateurs ont commencé à relier BTC à BEVM pour interagir, dans l’espoir de saisir l’opportunité de participer à l’écosystème BEVM à l’avenir. Cependant, au cours du processus inter-chaînes, certains utilisateurs ont constaté qu’une partie des COOK et PSBTS qu’ils détenaient avaient été perdues. Selon le navigateur blockchain, il a été constaté que cette partie des runes avait été transférée vers le pont inter-chaînes BEVM, la situation mentionnée ci-dessus s’est donc produite.
Ensuite, venez avec nous pour voir ce qui s’est passé.
Tout d’abord, nous avons trouvé des informations sur les transactions inter-chaînes via le navigateur BEVM (). Grâce à l’analyse, nous avons constaté que l’adresse de réception du pont inter-chaînes est :
bc1p43kqxnf7yxcz5gacmqu98cr2r5gndtauzrwpypdzmsgp7n3lssgs5wruvy.
Nous avons ensuite vérifié Rune Alpha (un navigateur et service universel prenant en charge les protocoles RUNES tels que COOK et PSBTS), dont l’adresse contient un grand nombre de runes diverses, dont plus de 110 000 COOK et plus de 280 000 PSBTS.

Nous avons immédiatement mené des recherches et des analyses sur cette partie des transactions liées aux runes.
Prenons l’exemple d’une de ces transactions :
Le contenu de la transaction est illustré dans la figure :

Nous pouvons voir que la transaction a deux entrées, 0,00000546 BTC (dont 1000 COOK) et 0,02169031 BTC, et la sortie est de 0,02 BTC (dont 1000 COOK) et 0,00148377 BTC.
À titre de comparaison, nous avons trouvé une transaction qui n’était pas une transaction COOK avec une transaction de pont inter-chaînes. Le résultat est le suivant :

On peut voir que l’entrée et la sortie contiennent un UTXO de 0,00000546 BTC.
Pourquoi cela est-il ainsi? Ici, nous devons connaître certaines connaissances pertinentes.
##UTXO
Tout d’abord, comprenons ce qu’est UTXO.

UTXO, le nom complet est Unspent Transaction Output, la traduction littérale est Unspent Transaction Output, c’est le point de connaissance principal de Bitcoin. Dans les transactions Bitcoin, chaque transaction a des entrées et des sorties. L’argent que quelqu’un d’autre vous paie est l’« entrée de transaction » et l’argent que vous recevez est la « sortie de transaction ».
L’idée de base de la conception d’UTXO est sans état. Il enregistre les événements de transaction mais pas le statut final. C’est-à-dire que seuls les événements de changement sont enregistrés et que les utilisateurs doivent calculer leurs propres soldes sur la base des enregistrements historiques. Le modèle de transaction du Bitcoin est donc différent du compte bancaire que nous utilisons habituellement : il n’a pas de compte, le Bitcoin n’a qu’un UTXO. Un UTXO peut être imaginé comme une « pièce » de n’importe quel montant.
UTXO est comme une pièce de monnaie et ne peut pas être brisé et utilisé. Alors, comment collecter le montant saisi pendant la transaction et comment obtenir la monnaie ?
Par exemple, Xiao Ming transfère 1 BTC à Xiao Gang. L’ensemble du processus est le suivant. Xiao Ming doit collecter suffisamment d’entrées. Par exemple, lors de la transaction précédente correspondant à l’adresse de Xiao Ming, il a trouvé un UTXO d’une valeur nominale de 0,9, ce qui n’est pas suffisant pour 1 BTC. Heureusement, plusieurs les entrées sont autorisées dans la transaction, donc Xiao Ming Un autre UTXO avec une valeur nominale de 0,2 a été trouvé, il y aura donc deux entrées dans cette transaction de transfert. Il y aura également deux sorties en même temps, l’une pointant vers l’adresse de Xiaogang, avec une valeur nominale de 1 BTC. L’autre indique l’adresse de Xiao Ming, avec une valeur nominale d’environ 0,1 BTC. Cette sortie est le changement.
Dans le processus de transfert Bitcoin, il n’y a pas d’algorithme fixe pour la saisie et cela dépend de la mise en œuvre du portefeuille.
Deuxièmement, nous devons comprendre ce que sont les inscriptions et runes. Les inscriptions et runes Bitcoin sont deux concepts importants dans l’écosystème Bitcoin.
**Le principal représentant de Bitcoin Inscription est le protocole Ordinals. **Ordinals est né en décembre 2022. Le contenu est entièrement en chaîne et développé par Casey Rodarmor. Le protocole utilise le système de numérotation Sat. Les ordinaux suivent chaque satoshi dans les transactions en leur attribuant un numéro de série. Dans le même temps, les utilisateurs peuvent joindre des données supplémentaires (images, vidéos, texte, etc.) à la blockchain Bitcoin via les ordinaux, ce qui rend chaque Chaque Satoshi est unique et possède donc la nature d’un NFT. BRC-20 a été créé sur la base de ce protocole.
**Protocole Runes, également connu sous le nom de Protocole Runes. **Avec la popularité du BRC-20, les transactions de jetons liés au BRC-20 représentent la majorité du protocole Ordinals. Le 26 septembre 2023, Casey Rodarmor a redéveloppé un protocole appelé Runes (que tout le monde appelle désormais le protocole Runes) en remplacement du BRC-20. Ce protocole est un simple protocole FT (Fungible Token, fongible token) basé sur UTXO (Unspent Transaction Output) qui permet aux utilisateurs de Bitcoin d’avoir une bonne expérience. Les principaux représentants des runes sont COOK et PSBTS dont nous avons parlé.
Les porteurs des inscriptions et des runes Bitcoin sont tous deux UTXO. Une différence clé entre les inscriptions Bitcoin (Inions) et les runes (Rune) est que Les inscriptions sont gravées dans les données des témoins séparés, tandis que les runes sont gravées dans In OP\ _RETOUR. La taille des données que OP_RETURN peut stocker est très limitée, mais elle est plus que suffisante pour émettre des pièces. Ce n’est pas une nouvelle technologie.
Pour que les utilisateurs puissent lancer des inscriptions ou des runes, ils envoient essentiellement des Bitcoins dont le montant correspond au protocole, et le protocole vous renvoie un UTXO avec des inscriptions ou des runes, généralement un UTXO de 0,00000546 BTC. Voyons pourquoi il est de 0,00000546. Il s’agit du montant minimum de transaction fixé par Bitcoin.

L’inscription de transfert est également due au fait que ces portefeuilles reconnaissent le format spécial de ces UTXO. Les portefeuilles utilisent ces UTXO comme entrée via les protocoles correspondants et paient des frais de traitement supplémentaires pour les transférer à l’autre partie.

Pour les utilisateurs qui perdent des runes, car elles sont toujours de nature UTXO, lorsque les utilisateurs utilisent UniSat pour effectuer des opérations inter-chaînes sur Bitcoin, UniSat ne reconnaît pas cette partie d’UTXO contenant des runes, la traite comme un UTXO ordinaire et la saisit ensemble. Envoyé au pont à chaînes croisées.
En fait, non seulement les opérations inter-chaînes, les utilisateurs peuvent également perdre des runes lorsqu’ils effectuent d’autres opérations de transfert Bitcoin dans des portefeuilles qui ne prennent pas en charge les runes. Le 7 décembre, un utilisateur a perdu 15 000 COOK lors d’une opération d’échange de BRC-20 sur Unisat.

Une autre chose intéressante est que lors du lancement de runes sur Runes Alpha, il est possible de transférer les inscriptions de l’utilisateur sous forme de Gaz.
Grâce à la documentation officielle de BEVM, nous avons constaté que la chaîne croisée BEVM prend en charge l’inscription croisée. Les utilisateurs n’ont qu’à utiliser BSwap pour lier leurs inscriptions à BEVM. Le portefeuille utilisé dans les chaînes est le portefeuille UniSat. Il s’agit d’un portefeuille plug-in Chrome pour l’écosystème BTC, aidant les utilisateurs à stocker, créer et transférer des jetons BRC-20. Il permet d’identifier l’inscription de l’utilisateur, évitant ainsi la fusion de cette partie d’UTXO. Il ne sera transféré que lorsque l’utilisateur échangera activement l’inscription.

Étant donné que Unisat ne prend actuellement pas en charge le protocole runique, c’est pourquoi les utilisateurs “perdront” les runes à travers les chaînes mais pas les inscriptions. Une situation similaire se produira si vous passez à d’autres portefeuilles qui ne prennent pas en charge les runes.
Maintenant que les runes ont été déplacées vers le pont inter-chaînes, les utilisateurs peuvent-ils toujours récupérer cette partie des runes ?
Nous avons consulté le livre blanc de BEVM. La solution cross-chain d’actifs de BEVM est construite sur la base de la technologie Taproot de Bitcoin. Il s’agit d’un réseau POS composé de signature Schnorr + contrat Mast + nœud léger 1000 BTC pour réaliser la décentralisation des actifs. -chaîne et gestion, la chaîne croisée bidirectionnelle de BTC-BEVM est entièrement gérée sur la base du consensus des nœuds sur la chaîne, permettant un codage complet et une absence de confiance au lieu de s’appuyer sur une gestion multi-signatures ou manuelle.Cela fait de BTC et Bitcoin la croix- La sécurité de la chaîne des actifs est aussi décentralisée et sécurisée que BFT POS. Par conséquent, les responsables de BEVM ne peuvent pas lancer une transaction de transfert distincte pour retirer les « actifs runiques » de l’utilisateur.
Étant donné que BEVM ne prend pas en charge le protocole runique, la probabilité que cette partie des runes soit transférée est complètement aléatoire. Lorsque le contrat de garde exécute la transaction, ces « actifs runiques » peuvent être transférés comme un UTXO ordinaire, mais l’ensemble du processus est complètement aléatoire et non soumis au contrôle humain. S’il doit être retiré de force, le consensus de l’ensemble de la chaîne BEVM doit être complètement modifié, ce qui conduira sans aucun doute à un hard fork de BEVM.
Dans l’ensemble, cet incident était dû à plusieurs raisons :
Pour les utilisateurs lambda, comment éviter que ce type de problème ne se reproduise ? Lors d’opérations interactives, nous recommandons aux utilisateurs de procéder comme suit :
Dans le même temps, il est rappelé aux développeurs que lors du développement et de la conception, ils doivent pleinement réfléchir et se préparer à résoudre d’éventuels problèmes d’incompatibilité de protocole au niveau du code. Sinon, faites des recherches avant de vous connecter et donnez des rappels clairs pour éviter les doutes et les problèmes inutiles.
L’émergence des inscriptions et des runes est une étape importante dans l’exploration et l’innovation continues de l’écosystème Bitcoin. Elle a grandement favorisé l’attention et l’enthousiasme de chacun pour la participation à l’écosystème Bitcoin, et a également joué un grand rôle dans le développement futur du Bitcoin. écosystème. **Cependant, pour l’instant, les inscriptions et les runes en sont encore à un stade relativement précoce. Nous espérons que chacun devra faire attention aux risques liés à la participation et éviter d’être aveugle. **
ScaleBit est une équipe leader en matière de sécurité blockchain dans le domaine Web3, située dans la Silicon Valley, à Singapour, à Hong Kong, à Taiwan et ailleurs. Nous avons fourni des solutions de sécurité blockchain à 200+ organisations et projets dans le domaine mondial du Web3, audité un total de 180 000+ lignes de code et protégé les actifs des utilisateurs pour plus de 8 milliards+ de dollars. . **Rendre la sécurité accessible à tous ! Si vous avez des besoins en matière d’audit de sécurité, n’hésitez pas à nous contacter. Nous personnaliserons des solutions de sécurité détaillées, complètes et professionnelles pour vous protéger, vous et le domaine Web3 ! **
Références
[1]
[2]
[3]