Le 1er février, Binance Web3 Wallet a officiellement lancé son marché d'inscription, qui prend en charge divers protocoles d'inscription tels que BRC-20 et Ethscription. Il y a quelques jours, OKX a également annoncé son soutien à des protocoles d'inscription tels que ARC-20, Runes, Doginals, etc., ce qui a attiré l'attention de l'ensemble du marché sur les inscriptions. Au cours de la vague d'inscriptions, divers problèmes de sécurité sont fréquemment rencontrés en raison de la complexité et de la nouveauté des protocoles d'inscription. Cela menace non seulement la sécurité des actifs des utilisateurs, mais cela a également un impact négatif sur le développement sain de l'ensemble de l'écosystème Inscription.
En réponse, l'équipe de sécurité de Beosin analysera les principaux protocoles d'inscription afin d'aider les utilisateurs à comprendre l'objectif et la mise en œuvre des protocoles d'inscription et la manière de protéger les actifs d'inscription.
La soi-disant inscription sur la blockchain sert à enregistrer des informations spécifiques et significatives sur la blockchain grâce à certaines caractéristiques de la blockchain. Une fois ces informations enregistrées sur la blockchain, elles seront stockées en permanence sur la blockchain et difficiles à falsifier. Les informations enregistrées sur la blockchain peuvent être de différents types, telles que de simples informations textuelles, des codes complexes, des images, etc. peuvent être écrites sur la blockchain. De cette façon, nous pouvons utiliser un ensemble de normes pour mettre en œuvre les fonctions des actifs numériques.
Qu'il s'agisse de l'émergence des inscriptions en Bitcoin, telles que le BRC-20, ou de l'écologie actuelle des inscriptions, de nouveaux protocoles d'inscription et de nouveaux projets voient le jour presque tous les jours. On peut dire que le développement d'Inscription avance à pas de géant. Diverses chaînes publiques courantes ont également rejoint l'écosystème d'inscription, comme le protocole Ethscription sur la chaîne publique ETH, le protocole ARC-20 sur la chaîne publique BTC, le BSC-20 et d'autres protocoles sur la chaîne publique BSC, et le PRC- sur la chaîne publique Polygon. 20, etc., accord... Ces protocoles sont tous générés dans le but de publier des inscriptions sur leurs chaînes publiques. Dans le contenu suivant, nous présenterons les méthodes de mise en œuvre et les cas d'utilisation de différents protocoles.
Présentons les protocoles qui attirent actuellement beaucoup d'attention sur le marché et comparons les points communs et les différences entre les protocoles d'inscription des différentes chaînes publiques.
Pour expliquer clairement la BRC-20, nous devons d'abord présenter UTXO et Ordinals.
BTC utilise le modèle UTXO et les transactions sont transférées en unités UTXO. UTXO est l'abréviation de Unspent Transaction Output, qui signifie résultat de transaction non dépensé. Le modèle UTXO est différent du modèle de compte des chaînes publiques telles qu'Ethereum en ce sens qu'il enregistre les événements des transactions mais pas le statut final. Pour calculer le nombre de Bitcoins d'un utilisateur, vous devez additionner tous les UTXO de son adresse, et le résultat est le nombre de pièces détenues par l'utilisateur.
Ordinals est un protocole systématique de numérotation des satoshis (sats), la plus petite unité de Bitcoin. Il peut attribuer un numéro unique à chaque Satoshi de chaque UTXO (y compris plusieurs Satoshis). Ordinals permet également d'écrire du texte, des images, du son, des vidéos, etc. sur des satoshis, afin de rendre chaque satoshi unique, comme le célèbre jeton non fongible Ethereum NFT, que nous appelons Bitcoin NFT.
Le fondateur du BRC-20 a proposé un autre concept basé sur le protocole Ordinals. Comme le protocole Ordinals peut créer des NFT Bitcoin en attribuant des « attributs » différents à chaque Satoshi, il peut également créer des NFT Bitcoin en fournissant un « format » et des « attributs » unifiés, c'est-à-dire des jetons homogènes.
La BRC-20 écrit des données texte au format JSON unifié dans Satoshi via le protocole Ordinals. Ces données textuelles sont le livre de comptabilité des jetons BRC-20. Sur la base de ces données textuelles, les détenteurs de jetons et les transferts peuvent être analysés. Comprend principalement les contenus suivants :
Voici les trois normes de la BRC-20. Parmi eux, le champ op représente l'opération à effectuer, y compris le déploiement (déploiement), la frappe (frappe) et le transfert (transfert). La coche représente le nom du jeton qui doit être utilisé. max représente le nombre total de jetons émis, lim représente le nombre maximum de pièces frappées par jeton, amt représente le nombre de jetons à utiliser. Dans la norme de transfert, il y a aussi des champs tels que « à », mais ce n'est pas nécessaire. Le transfert se fait par L'inscription est envoyée à l'adresse cible pour mettre en œuvre le changement de solde, comme le montre la figure ci-dessous :
Source :https://twitter.com/blockpunk2077/status/1725513817982136617
L'ARC-20 est toujours le protocole d'inscription de la chaîne publique Bitcoin. Comme le protocole BRC-20, il est implémenté en écrivant des données standard en UTXO, mais la différence, c'est que le protocole ARC-20 n'a pas besoin de spécifier ARC-20 dans les données. Le nombre de jetons ARC-20 est plutôt représenté par des sats (satoshi, la plus petite unité de Bitcoin) dans l'UTXO. La règle est de 1 sat=1 jeton ARC-20.
Le protocole ARC-20, comme le protocole BRC-20, est également divisé en trois étapes : déploiement, création et transfert. Pendant la phase de déploiement, le nom standard du jeton, le nombre total de jetons, les restrictions de casting et les informations de blocage doivent être renseignés dans l'UTXO. , des informations sur l'image, etc. ; au stade de la frappe, l'utilisateur doit saisir le nom du jeton dans l'UTXO, et le nombre de sats de l'UTXO est le montant de frappe du jeton ARC-20, mais il n'est pas renseigné dans l'UTXO avec le nom du jeton ; lorsque l'utilisateur crée des jetons ARC-20, ils peuvent être envoyés à d'autres adresses. Lorsqu'ils envoient des jetons, les utilisateurs n'ont pas besoin de renseigner de données dans l'UTXO, mais de transférer directement l'UTXO contenant le jeton vers d'autres adresses.
Source :https://twitter.com/blockpunk2077/status/1725513817982136617
Pour interroger des jetons ARC-20, un seul index est nécessaire. Le serveur d'index hors ligne peut lire les informations d'enregistrement des jetons et les transactions de frappe et de transfert. Le serveur n'a pas besoin de calculer la relation de transfert de fonds et d'interroger les jetons ARC-20 détenus par cette adresse. La quantité peut être obtenue en lisant directement la quantité de statistiques de l'UTXO contenant le jeton.
Après avoir compris BRC-20 et ARC-20, vous devriez savoir pourquoi certaines personnes transfèrent par erreur des actifs inscrits à d'autres adresses ou les « brûlent ».
Comme les protocoles d'inscription BTC tels que BRC-20 et ARC-20 sont basés sur des transactions UTXO, les transactions d'inscription sont en fait ajoutées aux transactions BTC, et les utilisateurs peuvent effectuer des opérations de transfert BTC ordinaires sans bien comprendre l'inscription. Son UTXO actuel est fusionné et scindé avec d'autres UTXO, puis envoyé à des adresses imprévues, ce qui entraîne un mauvais transfert ou une « combustion » des actifs inscrits, entraînant des pertes irréversibles.
Ethscription est un protocole qui permet de créer et de partager des données sur Ethereum. Certaines inscriptions utilisent ce protocole pour remplacer les contrats intelligents afin de mettre en œuvre l'émission de jetons. L'utilisation d'inscriptions peut réduire les coûts d'utilisation à un niveau extrêmement bas.
Quand Ethereum envoie une transaction, il fournit un bloc de données d'appel. En général, ce bloc de données sera laissé vide pour les transferts ordinaires en ETH. Si un contrat intelligent est appelé, le bloc de données sera désigné comme la signature de la fonction d'appel et de chaque paramètre. Le protocole Ethscription utilise le bloc de données calldata pour ajouter des données standard afin de donner un sens pertinent lors de l'envoi de virements ETH ordinaires.
Comment est-ce que Ethscription spécifie ces données standard ?
Tout d'abord, si vous voulez créer un Ethscription dont le contenu est constitué de données d'image, vous devez convertir l'image (la taille de l'image est limitée à 96 Ko) en URI de données codées en Base64 au format (data:image/png ; base64,...) ; ensuite convertir l'URI en chaîne hexadécimale ; envoyer une transaction de transfert ordinaire à l'adresse cible via Ethereum, et remplir la chaîne hexadécimale ci-dessus dans calldata, comme indiqué ci-dessous :
Ainsi, l'adresse 0xf1bf est propriétaire de l'Ethscription, et tout Ethscription créé ultérieurement avec les mêmes données d'appel sera considéré comme non valide.
Si vous voulez transférer l'Ethscription, vous avez besoin que le propriétaire de l'Ethscription envoie un virement ordinaire à l'adresse de réception, et qu'il saisisse le hachage de la transaction qui a créé l'Ethscription dans les données d'appel, puis l'adresse de réception sera propriétaire de l'Ethscription, comme indiqué ci-dessous :
Pour les blockchains EVM comme BSCchain, Ethereum, Polygon, etc., il existe une méthode d'inscription courante appelée calldata. Cette méthode utilise des blocs de données pour stocker des données au format fixe. Contrairement au stockage des données d'image mentionné ci-dessus, cette méthode consiste à écrire des données textuelles au format standard dans les données d'appel.
Sur la chaîne BSC, les inscriptions sont gravées selon un format similaire à celui de la BRC20. Par exemple, le format d'inscription est le suivant : data :,{“p”:””,”op”:””,”tick”:””,”amt”:””}; où le champ « p » représente le nom du protocole, par exemple bsc-20, bnbs-20, ltc-20, bep-20, drc-20, nrc-20, src-20, etc. Le champ « op » représente l'opération, généralement « mint ». Le champ « à cocher » représente le nom du jeton, et le champ « amt » représente la quantité de jetons.
En prenant le jeton bnbs comme exemple, nous pouvons constater que tant qu'un virement ordinaire est envoyé à l'adresse cible, saisissez data :,{“p”:”bsc-20”,”op”:”mint” in the calldata ,”tick”:”bnbs”,”amt”:”1000”} puis termine l'opération de création de jetons bnbs, comme indiqué ci-dessous. À l'heure actuelle, l'adresse 0x22ef contient 1 000 jetons Bnbs.
Ensuite, vous devez transférer le jeton. Comme ci-dessus, vous devez envoyer un virement ordinaire à l'adresse de réception et saisir le hachage de transaction qui a créé le jeton bnbs dans les données d'appel. Ensuite, l'adresse de réception sera propriétaire du jeton bnbs, comme indiqué ci-dessous :
Il en va de même pour Ethereum, Polygon et les autres chaînes, mais il convient de noter que le contenu de la chaîne BSC ci-dessus n'est pas la seule situation où des inscriptions sont créées sur la chaîne evm. Il peut y avoir des différences dans les champs de données de texte remplis entre les différentes chaînes EVM ou les différents protocoles. Il peut également y avoir des différences dans la manière dont les jetons sont transférés. Mais pour ce type de méthode, elles sont toutes implémentées à l'aide de l'attribut calldata de la chaîne EVM. Elles semblent donc similaires.
Dans cet article, nous abordons les principes de mise en œuvre des inscriptions sur plusieurs chaînes. En résumé, les inscriptions introduites sont toutes des processus qui utilisent certaines fonctionnalités du système de chaîne publique pour enregistrer les informations hors ligne dans la blockchain conformément aux normes prescrites, puis les identifier et les afficher sur des serveurs hors ligne. Aucune des inscriptions introduites n'utilise de contrats intelligents. Les utilisateurs peuvent réduire de nombreux frais de transaction supplémentaires lorsqu'ils participent. Cependant, les utilisateurs doivent bien comprendre la mise en œuvre du protocole d'inscription afin d'éviter les transferts erronés ou le fait de brûler accidentellement des inscriptions, ce qui entraînerait des pertes d'actifs.
Le 1er février, Binance Web3 Wallet a officiellement lancé son marché d'inscription, qui prend en charge divers protocoles d'inscription tels que BRC-20 et Ethscription. Il y a quelques jours, OKX a également annoncé son soutien à des protocoles d'inscription tels que ARC-20, Runes, Doginals, etc., ce qui a attiré l'attention de l'ensemble du marché sur les inscriptions. Au cours de la vague d'inscriptions, divers problèmes de sécurité sont fréquemment rencontrés en raison de la complexité et de la nouveauté des protocoles d'inscription. Cela menace non seulement la sécurité des actifs des utilisateurs, mais cela a également un impact négatif sur le développement sain de l'ensemble de l'écosystème Inscription.
En réponse, l'équipe de sécurité de Beosin analysera les principaux protocoles d'inscription afin d'aider les utilisateurs à comprendre l'objectif et la mise en œuvre des protocoles d'inscription et la manière de protéger les actifs d'inscription.
La soi-disant inscription sur la blockchain sert à enregistrer des informations spécifiques et significatives sur la blockchain grâce à certaines caractéristiques de la blockchain. Une fois ces informations enregistrées sur la blockchain, elles seront stockées en permanence sur la blockchain et difficiles à falsifier. Les informations enregistrées sur la blockchain peuvent être de différents types, telles que de simples informations textuelles, des codes complexes, des images, etc. peuvent être écrites sur la blockchain. De cette façon, nous pouvons utiliser un ensemble de normes pour mettre en œuvre les fonctions des actifs numériques.
Qu'il s'agisse de l'émergence des inscriptions en Bitcoin, telles que le BRC-20, ou de l'écologie actuelle des inscriptions, de nouveaux protocoles d'inscription et de nouveaux projets voient le jour presque tous les jours. On peut dire que le développement d'Inscription avance à pas de géant. Diverses chaînes publiques courantes ont également rejoint l'écosystème d'inscription, comme le protocole Ethscription sur la chaîne publique ETH, le protocole ARC-20 sur la chaîne publique BTC, le BSC-20 et d'autres protocoles sur la chaîne publique BSC, et le PRC- sur la chaîne publique Polygon. 20, etc., accord... Ces protocoles sont tous générés dans le but de publier des inscriptions sur leurs chaînes publiques. Dans le contenu suivant, nous présenterons les méthodes de mise en œuvre et les cas d'utilisation de différents protocoles.
Présentons les protocoles qui attirent actuellement beaucoup d'attention sur le marché et comparons les points communs et les différences entre les protocoles d'inscription des différentes chaînes publiques.
Pour expliquer clairement la BRC-20, nous devons d'abord présenter UTXO et Ordinals.
BTC utilise le modèle UTXO et les transactions sont transférées en unités UTXO. UTXO est l'abréviation de Unspent Transaction Output, qui signifie résultat de transaction non dépensé. Le modèle UTXO est différent du modèle de compte des chaînes publiques telles qu'Ethereum en ce sens qu'il enregistre les événements des transactions mais pas le statut final. Pour calculer le nombre de Bitcoins d'un utilisateur, vous devez additionner tous les UTXO de son adresse, et le résultat est le nombre de pièces détenues par l'utilisateur.
Ordinals est un protocole systématique de numérotation des satoshis (sats), la plus petite unité de Bitcoin. Il peut attribuer un numéro unique à chaque Satoshi de chaque UTXO (y compris plusieurs Satoshis). Ordinals permet également d'écrire du texte, des images, du son, des vidéos, etc. sur des satoshis, afin de rendre chaque satoshi unique, comme le célèbre jeton non fongible Ethereum NFT, que nous appelons Bitcoin NFT.
Le fondateur du BRC-20 a proposé un autre concept basé sur le protocole Ordinals. Comme le protocole Ordinals peut créer des NFT Bitcoin en attribuant des « attributs » différents à chaque Satoshi, il peut également créer des NFT Bitcoin en fournissant un « format » et des « attributs » unifiés, c'est-à-dire des jetons homogènes.
La BRC-20 écrit des données texte au format JSON unifié dans Satoshi via le protocole Ordinals. Ces données textuelles sont le livre de comptabilité des jetons BRC-20. Sur la base de ces données textuelles, les détenteurs de jetons et les transferts peuvent être analysés. Comprend principalement les contenus suivants :
Voici les trois normes de la BRC-20. Parmi eux, le champ op représente l'opération à effectuer, y compris le déploiement (déploiement), la frappe (frappe) et le transfert (transfert). La coche représente le nom du jeton qui doit être utilisé. max représente le nombre total de jetons émis, lim représente le nombre maximum de pièces frappées par jeton, amt représente le nombre de jetons à utiliser. Dans la norme de transfert, il y a aussi des champs tels que « à », mais ce n'est pas nécessaire. Le transfert se fait par L'inscription est envoyée à l'adresse cible pour mettre en œuvre le changement de solde, comme le montre la figure ci-dessous :
Source :https://twitter.com/blockpunk2077/status/1725513817982136617
L'ARC-20 est toujours le protocole d'inscription de la chaîne publique Bitcoin. Comme le protocole BRC-20, il est implémenté en écrivant des données standard en UTXO, mais la différence, c'est que le protocole ARC-20 n'a pas besoin de spécifier ARC-20 dans les données. Le nombre de jetons ARC-20 est plutôt représenté par des sats (satoshi, la plus petite unité de Bitcoin) dans l'UTXO. La règle est de 1 sat=1 jeton ARC-20.
Le protocole ARC-20, comme le protocole BRC-20, est également divisé en trois étapes : déploiement, création et transfert. Pendant la phase de déploiement, le nom standard du jeton, le nombre total de jetons, les restrictions de casting et les informations de blocage doivent être renseignés dans l'UTXO. , des informations sur l'image, etc. ; au stade de la frappe, l'utilisateur doit saisir le nom du jeton dans l'UTXO, et le nombre de sats de l'UTXO est le montant de frappe du jeton ARC-20, mais il n'est pas renseigné dans l'UTXO avec le nom du jeton ; lorsque l'utilisateur crée des jetons ARC-20, ils peuvent être envoyés à d'autres adresses. Lorsqu'ils envoient des jetons, les utilisateurs n'ont pas besoin de renseigner de données dans l'UTXO, mais de transférer directement l'UTXO contenant le jeton vers d'autres adresses.
Source :https://twitter.com/blockpunk2077/status/1725513817982136617
Pour interroger des jetons ARC-20, un seul index est nécessaire. Le serveur d'index hors ligne peut lire les informations d'enregistrement des jetons et les transactions de frappe et de transfert. Le serveur n'a pas besoin de calculer la relation de transfert de fonds et d'interroger les jetons ARC-20 détenus par cette adresse. La quantité peut être obtenue en lisant directement la quantité de statistiques de l'UTXO contenant le jeton.
Après avoir compris BRC-20 et ARC-20, vous devriez savoir pourquoi certaines personnes transfèrent par erreur des actifs inscrits à d'autres adresses ou les « brûlent ».
Comme les protocoles d'inscription BTC tels que BRC-20 et ARC-20 sont basés sur des transactions UTXO, les transactions d'inscription sont en fait ajoutées aux transactions BTC, et les utilisateurs peuvent effectuer des opérations de transfert BTC ordinaires sans bien comprendre l'inscription. Son UTXO actuel est fusionné et scindé avec d'autres UTXO, puis envoyé à des adresses imprévues, ce qui entraîne un mauvais transfert ou une « combustion » des actifs inscrits, entraînant des pertes irréversibles.
Ethscription est un protocole qui permet de créer et de partager des données sur Ethereum. Certaines inscriptions utilisent ce protocole pour remplacer les contrats intelligents afin de mettre en œuvre l'émission de jetons. L'utilisation d'inscriptions peut réduire les coûts d'utilisation à un niveau extrêmement bas.
Quand Ethereum envoie une transaction, il fournit un bloc de données d'appel. En général, ce bloc de données sera laissé vide pour les transferts ordinaires en ETH. Si un contrat intelligent est appelé, le bloc de données sera désigné comme la signature de la fonction d'appel et de chaque paramètre. Le protocole Ethscription utilise le bloc de données calldata pour ajouter des données standard afin de donner un sens pertinent lors de l'envoi de virements ETH ordinaires.
Comment est-ce que Ethscription spécifie ces données standard ?
Tout d'abord, si vous voulez créer un Ethscription dont le contenu est constitué de données d'image, vous devez convertir l'image (la taille de l'image est limitée à 96 Ko) en URI de données codées en Base64 au format (data:image/png ; base64,...) ; ensuite convertir l'URI en chaîne hexadécimale ; envoyer une transaction de transfert ordinaire à l'adresse cible via Ethereum, et remplir la chaîne hexadécimale ci-dessus dans calldata, comme indiqué ci-dessous :
Ainsi, l'adresse 0xf1bf est propriétaire de l'Ethscription, et tout Ethscription créé ultérieurement avec les mêmes données d'appel sera considéré comme non valide.
Si vous voulez transférer l'Ethscription, vous avez besoin que le propriétaire de l'Ethscription envoie un virement ordinaire à l'adresse de réception, et qu'il saisisse le hachage de la transaction qui a créé l'Ethscription dans les données d'appel, puis l'adresse de réception sera propriétaire de l'Ethscription, comme indiqué ci-dessous :
Pour les blockchains EVM comme BSCchain, Ethereum, Polygon, etc., il existe une méthode d'inscription courante appelée calldata. Cette méthode utilise des blocs de données pour stocker des données au format fixe. Contrairement au stockage des données d'image mentionné ci-dessus, cette méthode consiste à écrire des données textuelles au format standard dans les données d'appel.
Sur la chaîne BSC, les inscriptions sont gravées selon un format similaire à celui de la BRC20. Par exemple, le format d'inscription est le suivant : data :,{“p”:””,”op”:””,”tick”:””,”amt”:””}; où le champ « p » représente le nom du protocole, par exemple bsc-20, bnbs-20, ltc-20, bep-20, drc-20, nrc-20, src-20, etc. Le champ « op » représente l'opération, généralement « mint ». Le champ « à cocher » représente le nom du jeton, et le champ « amt » représente la quantité de jetons.
En prenant le jeton bnbs comme exemple, nous pouvons constater que tant qu'un virement ordinaire est envoyé à l'adresse cible, saisissez data :,{“p”:”bsc-20”,”op”:”mint” in the calldata ,”tick”:”bnbs”,”amt”:”1000”} puis termine l'opération de création de jetons bnbs, comme indiqué ci-dessous. À l'heure actuelle, l'adresse 0x22ef contient 1 000 jetons Bnbs.
Ensuite, vous devez transférer le jeton. Comme ci-dessus, vous devez envoyer un virement ordinaire à l'adresse de réception et saisir le hachage de transaction qui a créé le jeton bnbs dans les données d'appel. Ensuite, l'adresse de réception sera propriétaire du jeton bnbs, comme indiqué ci-dessous :
Il en va de même pour Ethereum, Polygon et les autres chaînes, mais il convient de noter que le contenu de la chaîne BSC ci-dessus n'est pas la seule situation où des inscriptions sont créées sur la chaîne evm. Il peut y avoir des différences dans les champs de données de texte remplis entre les différentes chaînes EVM ou les différents protocoles. Il peut également y avoir des différences dans la manière dont les jetons sont transférés. Mais pour ce type de méthode, elles sont toutes implémentées à l'aide de l'attribut calldata de la chaîne EVM. Elles semblent donc similaires.
Dans cet article, nous abordons les principes de mise en œuvre des inscriptions sur plusieurs chaînes. En résumé, les inscriptions introduites sont toutes des processus qui utilisent certaines fonctionnalités du système de chaîne publique pour enregistrer les informations hors ligne dans la blockchain conformément aux normes prescrites, puis les identifier et les afficher sur des serveurs hors ligne. Aucune des inscriptions introduites n'utilise de contrats intelligents. Les utilisateurs peuvent réduire de nombreux frais de transaction supplémentaires lorsqu'ils participent. Cependant, les utilisateurs doivent bien comprendre la mise en œuvre du protocole d'inscription afin d'éviter les transferts erronés ou le fait de brûler accidentellement des inscriptions, ce qui entraînerait des pertes d'actifs.