Où va l’inscription ?
Préface
Le 6 décembre 2023, alors que les investisseurs Bitcoin applaudissaient aux gains que les inscriptions avaient apportés à Bitcoin, Luke Dashjr, le développeur du client de nœud Bitcoin Core, a versé de l'eau froide dessus. Il a estimé que l'inscription était une attaque de « spam » et a soumis un code correctif et un rapport de vulnérabilité CVE (CVE-2023-50428). Puis la communauté Bitcoin a explosé, une fois de plus plongée dans un débat houleux suite au chaos du hard fork de 2017.

Alors Bitcoin devrait-il accorder plus d’attention à la sécurité et abandonner certaines fonctionnalités inattendues, ou devrait-il être plus tolérant aux innovations inattendues et légèrement tolérant aux éventuels problèmes de sécurité ?
Nous savons que le parcours de Bitcoin n’est pas seulement une spéculation et un battage médiatique, mais aussi une évolution continue de son écosystème et de son paysage de sécurité. Cet article vise à approfondir les deux récits de la croissance de Bitcoin : l’expansion de l’utilité au sein de son écosystème et le renforcement des mesures de sécurité. Nous explorerons comment la synergie de l’innovation et des protocoles de sécurité solides peuvent ouvrir la voie à une nouvelle ère d’actifs numériques.
Aperçu de l'écosystème BTC et connaissances de base
Nous savons qu’en tant que pierre angulaire de la révolution des cryptomonnaies, le Bitcoin a toujours été utilisé comme réserve de valeur comme l’or. Alors que d’autres innovations de la chaîne publique DEFI battent leur plein, les gens semblent avoir oublié l’existence du Bitcoin.
Cependant, c'est précisément sur Bitcoin que les pionniers ont commencé à expérimenter les pièces stables, Layer2 et même DEFI. Par exemple, l'USDT, la monnaie forte actuelle dans le cercle des devises, a été émise pour la première fois sur le réseau Bitcoin Omnilayer. la perspective de la mise en œuvre technique Une classification de base de l’écosystème Bitcoin.

Y compris des technologies telles que des chaînes latérales basées sur un ancrage bidirectionnel, une analyse de texte basée sur des scripts de sortie (OP_RETURN), une gravure basée sur des scripts Taproot, des chaînes de transmission basées sur des mises à jour et des mises à niveau BIP300 et des réseaux Lightning basés sur des canaux d'état.
Vous ne comprenez peut-être pas la plupart des termes ci-dessus, alors ne vous inquiétez pas. Commençons par nous familiariser avec les connaissances de base suivantes, puis expliquons les principes techniques de ces écosystèmes un par un et discutons des problèmes de sécurité impliqués.
UTXO est l'unité de base des transactions Bitcoin
Contrairement au système de solde de compte d'Ethereum, il n'y a pas de concept de compte dans le système Bitcoin. Ethereum présente quatre Merkle Patricia Tries complexes pour stocker et vérifier les changements de statut du compte. En revanche, Bitcoin utilise intelligemment UTXO pour résoudre ces problèmes de manière plus concise.

Les quatre arbres d'Ethereum

Entrées et sorties Bitcoin
UTXO (Unspent Transaction Outputs, sorties de transaction non dépensées), le nom semble très difficile à prononcer, mais en fait, il est facile à comprendre après avoir compris les trois concepts d'entrée, de sortie et de transaction.
Entrées et sorties de transactions
Les amis qui connaissent Ethereum doivent savoir qu'une transaction est l'unité de communication de base du réseau blockchain. Une fois la transaction emballée et confirmée, cela signifie que le changement d'état sur la chaîne est confirmé. Dans les transactions Bitcoin, il n'y a pas une seule opération d'état d'adresse à adresse, mais plusieurs scripts d'entrée et de sortie.

L’image ci-dessus est une transaction Bitcoin 2-to-2 très typique. Théoriquement, le nombre d'entrées BTC et le nombre de sorties BTC devraient être égaux. En fait, la sortie BTC inférieure à l'entrée est gagnée par les mineurs de bloc sous forme de frais de mineur, ce qui équivaut aux frais de gaz d'Ethereum.
Nous pouvons voir que lors du transfert de BTC, les deux adresses d'entrée doivent être vérifiées dans le script d'entrée pour prouver que ces deux adresses d'entrée peuvent dépenser ces deux entrées (c'est-à-dire la sortie non dépensée de la précédente, UTXO), et la sortie Le script stipule les conditions pour dépenser deux sorties de Bitcoin, c'est-à-dire quelles conditions doivent être remplies la prochaine fois que cette sortie non dépensée sera utilisée comme entrée (pour les transferts ordinaires, la condition est la signature de l'adresse de sortie, comme l'image ci-dessus, P2wPKH indique que la vérification de la signature de l'adresse racine pivotante est requise, et P2PKH indique que la signature de la clé privée de l'adresse héritée est requise).
Plus précisément, la structure des données des transactions Bitcoin est la suivante :

Dans une transaction Bitcoin, la structure de base se compose de deux parties clés : les entrées et les sorties. La partie entrée spécifie l'initiateur de la transaction, tandis que la partie sortie spécifie le destinataire de la transaction et la modification (le cas échéant). Les frais de transaction sont la différence entre le montant total des entrées et le montant total des sorties. Puisque l’entrée de chaque transaction est la sortie d’une transaction précédente, la sortie de la transaction devient l’élément central de la structure de la transaction.
Cette structure forme une chaîne de connexion. Dans le réseau Bitcoin, chaque transaction légitime peut être retracée jusqu'au résultat d'une ou plusieurs transactions précédentes. Le point de départ de ces chaînes de transactions est la récompense minière, et le point final est le résultat de la transaction qui n'a pas encore été dépensé. Toutes les sorties non dépensées du réseau sont collectivement appelées UTXO (Unspent Transaction Output) du réseau Bitcoin.
Dans le réseau Bitcoin, les entrées de chaque nouvelle transaction doivent être des sorties non dépensées. De plus, chaque entrée nécessite également la signature de clé privée correspondante de la sortie précédente. Chaque nœud du réseau Bitcoin stocke tous les UTXO actuellement sur la blockchain pour vérifier la légitimité des nouvelles transactions. Grâce aux mécanismes UTXO et de vérification de signature, les nœuds sont capables de vérifier la légitimité des nouvelles transactions sans retracer l'intégralité de l'historique des transactions, simplifiant ainsi le processus d'exploitation et de maintenance du réseau.
La structure de transaction unique de Bitcoin est conçue conformément à son livre blanc « Bitcoin : un système de paiement électronique peer-to-peer ». Bitcoin est un système de paiement électronique. Sa structure de transaction simule le processus de transaction d'espèces. Le montant dépend du montant d'argent reçu auparavant. Chaque transaction nécessite que tout l'argent liquide à cette adresse soit dépensé dans son ensemble, et l'adresse de sortie de la transaction est généralement une adresse de réception et une adresse de changement, tout comme dans un supermarché Change. lors de transactions en espèces.
Scénario
Dans le réseau Bitcoin, les scripts jouent un rôle essentiel. En fait, chaque sortie d’une transaction Bitcoin pointe en réalité vers un script plutôt que vers une adresse spécifique. Ces scripts sont comme un ensemble de règles qui définissent la manière dont le destinataire peut utiliser les ressources verrouillées dans la sortie.
La vérification de la légalité des transactions repose sur deux scripts : le script de verrouillage et le script de déverrouillage. Un script de verrouillage existe dans la sortie d'une transaction et définit les conditions requises pour déverrouiller cette sortie. Les scripts de déverrouillage, en revanche, doivent suivre les règles définies par les scripts de verrouillage pour déverrouiller les actifs UTXO. Ces scripts sont situés dans la partie entrée de la transaction. La flexibilité de ce langage de script permet à Bitcoin de réaliser diverses combinaisons de conditions, démontrant ainsi ses caractéristiques de « monnaie partiellement programmable ».
Dans le réseau Bitcoin, chaque nœud exécute un interpréteur de pile qui interprète ces scripts en fonction des règles du « premier entré, premier sorti ».
Il existe deux principaux types courants de scripts Bitcoin les plus classiques : P2PKH (Pay-to-Public-Key-Hash) et P2SH (Pay-to-Script-Hash). P2PKH est un type de transaction simple dans lequel le destinataire signe simplement avec la clé privée correspondante pour utiliser l'actif. P2SH est plus complexe, comme dans le cas de signatures multiples, où une signature combinée de plusieurs clés privées est requise pour utiliser l'actif, ou.
Ensemble, ces scripts et mécanismes de vérification constituent le cœur du fonctionnement du réseau Bitcoin, garantissant la sécurité et la flexibilité des transactions.
Par exemple, dans Bitcoin, les règles du script de sortie de P2PKH sont les suivantes :
Script de clé publique : OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
La saisie nécessite une signature
Script de signature : sig
Les règles du script de sortie de P2SH sont les suivantes :
Script de clé publique : OP_HASH160 OP_EQUAL
La saisie nécessite une liste multi-signatures
Script de signature : [dire] [dire...]
Parmi les deux types de règles de script ci-dessus, le script Pubkey représente le script de verrouillage et le script Signature représente le script de déverrouillage. Les mots commençant par OP_ sont des commandes de script associées et sont également des instructions que le nœud peut analyser. Ces règles de commande sont réparties selon différents scripts Pubkey, qui déterminent également les règles de déverrouillage des scripts.
Le mécanisme de script de Bitcoin est relativement simple. Il s'agit simplement d'un moteur basé sur une pile qui interprète les instructions OP pertinentes. Il n'y a pas beaucoup de règles de script pouvant être analysées et il ne peut pas implémenter une logique très complexe. Mais il a fourni un prototype de programmabilité blockchain, et certains projets écologiques ultérieurs ont en fait été développés sur la base de principes de script. Avec les mises à jour de Segregated Witness et Taproot, les types d'instructions OP sont devenus plus abondants, la taille des scripts pouvant être inclus dans chaque transaction a été étendue et l'écosystème Bitcoin a marqué le début d'une croissance explosive.
Principes techniques d’inscription et questions de sécurité
La popularité de la technologie d’inscription est indissociable des mises à jour Segregated Witness et Taproot de Bitcoin.
Techniquement, plus une blockchain est décentralisée, moins elle est généralement efficace. En prenant Bitcoin comme exemple, la taille de son bloc reste à 1 Mo, soit la même taille que le premier bloc initialement extrait par Satoshi Nakamoto. Face au problème de l’expansion, la communauté Bitcoin n’a pas choisi la voie d’une augmentation simple et directe de la taille des blocs. Au lieu de cela, ils ont adopté une approche appelée Segregated Witness (SegWit), un système de mise à niveau qui ne nécessite pas de hard fork et vise à améliorer le réseau en optimisant la structure des données dans le bloc.
Témoin séparé
Dans les transactions Bitcoin, les informations de chaque transaction sont principalement divisées en deux parties : les données de base de la transaction et les données des témoins. Les données de transaction de base comprennent des informations financières clés telles que les soldes des comptes, tandis que les données des témoins sont utilisées pour vérifier l'identité de l'utilisateur. Pour les utilisateurs, leur principale préoccupation concerne les informations directement liées aux actifs, telles que les soldes des comptes, tandis que les détails de vérification d'identité ne nécessitent pas trop de ressources dans les transactions. En d’autres termes, la partie qui reçoit l’actif se préoccupe avant tout de savoir si l’actif est disponible et n’a pas à prêter trop d’attention aux coordonnées de l’expéditeur.
Cependant, dans la structure des transactions de Bitcoin, les données des témoins (c'est-à-dire les informations de signature) occupent une grande quantité d'espace de stockage, ce qui entraîne une efficacité de transfert réduite et une augmentation des coûts de conditionnement des transactions. Afin de résoudre ce problème, la technologie Segregated Witness (SegWit) a été introduite. Son idée principale est de séparer les données des témoins des principales données de transaction et de les stocker séparément. Le résultat est une utilisation optimisée de l’espace de stockage, augmentant ainsi l’efficacité des transactions et réduisant les coûts.

De cette façon, même si la taille du bloc d'origine de 1 Mo reste inchangée, chaque bloc peut accueillir plus de transactions et les données des témoins séparés (c'est-à-dire divers scripts de signature) peuvent occuper un espace supplémentaire de 3 Mo, fournissant des instructions de script Taproot. pour le stockage.
Racine pivotante
Taproot est une mise à niveau logicielle importante du réseau Bitcoin, conçue pour améliorer la confidentialité et l'efficacité des scripts Bitcoin, ainsi que les capacités de traitement des contrats intelligents. Cette mise à niveau est considérée comme une avancée majeure depuis la mise à niveau SegWit 2017.
Cette mise à niveau de Taproot comprend trois propositions d'amélioration Bitcoin (BIP) différentes : Taproot (Merkle Abstract Syntax Tree, MAST), Tapscript et un nouveau système de signature numérique convivial multi-signature appelé "Schnorr signature". L’objectif de Taproot est de fournir aux utilisateurs de Bitcoin une variété d’avantages, notamment une confidentialité accrue des transactions et des coûts de transaction réduits. De plus, cela améliorera la capacité de Bitcoin à effectuer des transactions plus complexes, élargissant ainsi son champ d’application.
La mise à jour de Taproot affecte directement trois écosystèmes : l'un est le protocole ordinal, qui utilise les scripts de dépenses de chemin de script de Taproot pour implémenter des données supplémentaires ; l'autre est la mise à niveau du réseau Lightning vers Taproot Asset, qui évolue du simple BTC peer-to-peer ; paiement peer-to-peer Il prend en charge l'émission de nouveaux actifs, l'autre est le nouveau BitVM proposé, qui utilise op_booland et op_not dans Taproot pour « graver » le circuit bool dans le script Taproot afin de réaliser la fonction de machine virtuelle de contrat intelligent.
ordinaux
Ordinals est un protocole inventé par Casey Rodarmor en décembre 2022 qui attribue à chaque Satoshi un numéro de série unique et les suit dans les transactions. N'importe qui peut joindre des données supplémentaires, notamment du texte, des images, des vidéos, etc., dans le script Taproot d'UTXO via Ordinals.
Les amis qui connaissent les Ordinaux doivent le savoir : le nombre total de Bitcoins est de 21 millions, et chaque Bitcoin contient 10^8 Satoshi (Satoshi), il y a donc un total de 21 millions*10^8 Satoshis sur le réseau Bitcoin, et le Le protocole des ordinaux permettra de distinguer ces Satoshis et chaque Satoshi possède un numéro unique. C’est théoriquement possible, mais en pratique cela n’est pas réalisable.
Parce que le réseau BTC a une limite de transfert minimale de 546 satoshis (segwit est d'au moins 294 satoshis) pour résister aux attaques de poussière, c'est-à-dire que les transferts de 1 satoshi et 1 satoshi ne sont pas autorisés. Selon le type d'adresse de transfert, au moins 546. les satoshis ou 294 satoshis doivent être transférés Satoshi, et selon la théorie de la numérotation premier entré, premier sorti des ordinaux, au moins les Satoshi n° 1 à Satoshi n° 294 de chaque bloc sont indivisibles.
Ainsi, la soi-disant gravure n'est pas gravée sur un certain satoshi, mais gravée dans le script d'une transaction, et cette transaction doit contenir au moins un transfert de 294 satoshis, puis être suivie par un indexeur centralisé (comme unisat) et identifier le transfert de ces 294 satoshis ou 456 satoshis.
Comment les inscriptions sont codées dans les transactions
En principe, l'utilisation des scripts Taproot ne peut être effectuée qu'à partir de la sortie Taproot existante, donc l'inscription devrait théoriquement se faire via une procédure de validation/révélation en deux étapes. Tout d’abord, dans la transaction de validation, créez une entrée Taproot basée sur le contenu du chemin de script dépenser et spécifiez les conditions de dépense/de signature révélées dans la sortie. Deuxièmement, dans une transaction de révélation, la sortie créée par la transaction de validation est dépensée, révélant le contenu de l'inscription sur la chaîne.
Cependant, dans le scénario réel de l'indexeur, nous ne prêtons pas beaucoup d'attention au rôle de révélation des transactions. Au lieu de cela, nous lisons directement un fragment de script composé d'un OP_FALSE OP_IF ... OP_ENDIF dans le script d'entrée et lisons le contenu de l'inscription. à partir de cela.
Étant donné que la combinaison des instructions OP_FALSE et OP_IF empêchera l'exécution du script, des octets de contenu arbitraire peuvent y être stockés sans affecter la logique du script d'origine.
Une inscription textuelle contenant la chaîne « Hello, world ! » est sérialisée comme suit :
OP_FALSE OP_IF OP_PUSH "ord"OP_1OP_PUSH
"text/plain;charset=utf-8"OP_0OP_PUSH "Bonjour tout le monde !"OP_ENDIF
Le protocole Ordinals sérialise essentiellement ce morceau de code dans le script Taproot.
Retrouvons une transaction de la chaîne pour expliquer en détail le principe de codage des ordinaux :
https://explorer.btc.com/btc/transaction/885d037ed114012864c031ed5ed8bbf5f95b95e1ef6469a808e9c08c4808e3ae
Nous pouvons consulter les détails de cette transaction :

Nous analysons l'encodage du champ témoin à partir de 0063 (OP_FALSE OP_IF), et nous pouvons comprendre le contenu de l'encodage sérialisé :

Donc, tant que nous pouvons décoder cette partie du code dans le script du témoin, nous pouvons connaître le contenu inscrit. Ce qui est codé ici, ce sont des informations en texte brut, et d'autres données telles que du HTML, des images, des vidéos, etc. sont également similaires.
En théorie, vous pouvez également définir votre propre contenu encodé, voire même un contenu crypté que vous seul connaissez, mais ces contenus ne peuvent pas être affichés dans les navigateurs ordinaires.
BRC20
Le 9 mars 2023, un utilisateur anonyme de Twitter nommé domo a publié un tweet sur Twitter pour créer une norme de jeton fongible au-dessus du protocole Ordinals, l'appelant la norme BRC20. L'idée est que les données de chaîne JSON peuvent être inscrites dans des scripts Taproot via le protocole Ordinals pour déployer, créer et transférer des jetons BRC-20 fongibles.
Figure 1 : Les humbles débuts du token BRC-20 (premier message de domo sur le sujet)

Source : Twitter (@domodata)
Figure 2 : Trois opérations initiales possibles pour les jetons BRC-20 (p = nom du protocole, op = opération, tick = ticker/identifiant, max = approvisionnement maximum, lim = limite de frappe, amt = quantité)

Source : https://domo-2.gitbook.io/brc-20-experiment/, recherche Binance
L'initiateur du jeton déploie le jeton brc20 sur la chaîne via le déploiement, puis les participants obtiennent le jeton via mint presque sans frais (uniquement les frais de minage). Lorsque le nombre de mint dépasse le maximum, l'inscription de l'inscription mint sera effectuée. être considéré comme invalide par l'indexeur. Après cela, l'adresse propriétaire du Token peut transférer le Token via l'inscription de transfert.
Il convient de noter que le fondateur d'Ordinals, Casey, est très mécontent du fait que les transactions BRC-20 représentent la majorité du protocole Ordinals. Il a déclaré publiquement que le BRC-20 avait apporté un tas de déchets aux Ordinals qu'il avait créés. Par conséquent, l'équipe Casey a envoyé publiquement une lettre demandant à Binance de supprimer les ordinaux dans l'introduction du jeton ORDI. Il ne voulait pas que le protocole Ordinals soit lié à ORDI.
protocole étendu
Échange BRC20
Unisat, actuellement le plus grand fournisseur de marché, d'indexeur et de portefeuille pour le trading d'inscription, a proposé le protocole d'échange BRC20 pour les transactions BRC20, qui est désormais disponible pour les premiers utilisateurs.
Les transactions d'inscription précédentes ne pouvaient être effectuées que via une méthode appelée PSBT (Partially Signed Bitcoin Transaction), qui est similaire au système de signature hors chaîne d'Opensea et utilise des services centralisés pour « faire correspondre » les signatures des acheteurs et des vendeurs. Cela a pour conséquence que les actifs BRC20 ne peuvent être négociés que via des ordres en attente comme les actifs NFT, et que la liquidité et l'efficacité des transactions sont très faibles.
brc20 swap introduit un mécanisme appelé module dans la chaîne json du protocole brc20. Dans ce module, un ensemble de scripts similaires aux contrats intelligents peut être déployé. En prenant le module d'échange comme exemple, l'utilisateur peut verrouiller BRC20 dans le module par transfert, c'est-à-dire initier une transaction de transfert vers lui-même, mais l'inscription dans la transaction est verrouillée dans le module une fois que l'utilisateur a terminé la transaction ou s'en retire. LP, vous pouvez lancer une transaction et retirer les jetons brc20.
Actuellement, le swap brc20 fonctionne dans le mode étendu du module noir, pour des raisons de sécurité, sans consensus ni vérification, les fonds que les utilisateurs peuvent retirer sont déterminés par la somme des fonds dans le module, c'est-à-dire qu'aucun utilisateur ne peut le faire. retirer les actifs qui dépassent le total des actifs verrouillés dans le module.

Lorsque le comportement du module noir est compris et mis en œuvre par les utilisateurs, devient progressivement fiable et est progressivement accepté par un plus grand nombre d'indexeurs, le produit passe du module noir au module blanc et atteint une mise à niveau consensuelle. Les utilisateurs peuvent librement déposer et retirer des actifs.

De plus, comme le protocole brc20 et même l'ensemble de l'écosystème Ordinals en sont encore à leurs débuts, Unisat occupe une plus grande influence et réputation. Il fournit des services d'indexation complets tels que les transactions et les demandes de solde pour le protocole, et il existe un risque de centralisation unique. Son architecture de fonctionnement modulaire permet à davantage de prestataires de services de participer, obtenant ainsi un index plus décentralisé.
BRC420
Le protocole Brc420 a été développé par RCSV. Ils ont développé l'inscription originale en ajoutant un index récursif. Des formats d'actifs plus complexes sont définis de manière récursive. Dans le même temps, Brc420 établit une relation contraignante entre les droits d'usage et les redevances sur la base d'une seule inscription. Lorsqu'un utilisateur crée un actif, il doit payer des redevances au créateur, et lorsqu'il possède une inscription, il peut attribuer le droit de l'utiliser et en fixer le prix. Cette décision peut encourager davantage d'innovation dans l'écosystème Ordinals. .
La proposition de Brc420 offre un espace d'imagination plus large pour l'écologie des inscriptions. En plus de construire un métaverse plus complexe via des références récursives, l'écologie des contrats intelligents peut également être construite via des références récursives d'inscriptions de code.
ARC20
Le standard de jeton ARC20 est fourni par le protocole Atomics. Dans ce standard, « atome » est l'unité de base, construite sur la plus petite unité de Bitcoin, Satoshi (sat). Cela signifie que chaque jeton ARC20 est toujours soutenu par 1 sat. De plus, ARC20 est le premier protocole de jeton à créer via des inscriptions Proof of Work (PoW), permettant aux participants d'exploiter directement des inscriptions ou des NFT d'une manière similaire à l'extraction de Bitcoin.
Assumer 1 jeton ARC20 à 1 sat apporte plusieurs avantages :
1. Tout d’abord, la valeur de chaque jeton ARC20 ne sera jamais inférieure à 1 sat, ce qui fait que Bitcoin agit comme une « ancre d’or numérique » dans le processus.
2. Deuxièmement, lors de la vérification d'une transaction, il vous suffit d'interroger l'UTXO correspondant à sat, ce qui contraste avec BRC20, qui nécessite des enregistrements d'état du grand livre hors chaîne et la complexité d'un séquenceur tiers.
3. De plus, toutes les opérations d'ARC20 peuvent être effectuées via le réseau Bitcoin sans étapes supplémentaires.
4. Enfin, grâce à la composabilité d'UTXO, il est théoriquement possible d'échanger directement des jetons ARC20 avec Bitcoin, ce qui offre la possibilité d'une liquidité future.
Le protocole Atomics définit des paramètres de préfixe spéciaux pour Bitwork Mining pour les jetons ARC20. Les émetteurs de jetons peuvent choisir un préfixe spécial, et les utilisateurs doivent calculer un préfixe correspondant via le minage de CPU avant de pouvoir créer le jeton ARC20. Ce modèle « un processeur, une voix » est conforme à la philosophie des fondamentalistes du Bitcoin.
L'inscription est-elle sûre ?
L'inscription semble n'être qu'un morceau de texte « inoffensif » téléchargé sur la chaîne et analysé via un indexeur centralisé. Il semble que le problème de sécurité ne soit qu'une considération de sécurité pour les services centralisés. il faut quand même faire attention aux points suivants :
Problèmes de sécurité en chaîne
1. Augmenter la charge des nœuds
Les inscriptions augmentent la taille des blocs Bitcoin, ce qui augmente les ressources dont les nœuds ont besoin pour propager, stocker et valider les blocs sur le réseau. S’il y a trop d’inscriptions, cela réduira la décentralisation du réseau Bitcoin et rendra le réseau plus vulnérable aux attaques.
2. Réduire la sécurité
Les inscriptions peuvent être utilisées pour stocker tout type de données, y compris du code malveillant. Si du code malveillant est ajouté aux blocs Bitcoin, cela pourrait entraîner des vulnérabilités en matière de sécurité du réseau.
3. Les transactions doivent être structurées
Le commerce des inscriptions nécessite la construction de transactions et une attention particulière à la règle du premier entré, premier sorti pour les ordinaux afin d'éviter la destruction par inadvertance de l'indexicalité des inscriptions.
4. Il y a des risques à acheter et à vendre
Le marché commercial d'Inscription, qu'il soit OTC ou PSBT, présente un risque de perte d'actifs.
problèmes de sécurité spécifiques
1. Augmentation du taux de bloc orphelin et du taux de fork
Les inscriptions augmentent la taille des blocs, ce qui entraîne une augmentation du taux de blocs orphelins et du taux de fork. Les blocs orphelins font référence à des blocs qui ne sont pas reconnus par les autres nœuds, et les forks font référence à l'existence de plusieurs blockchains concurrentes dans le réseau. Les blocs et forks orphelins réduisent la stabilité et la sécurité du réseau.
2. L'attaquant a falsifié l'inscription
Un attaquant peut exploiter l’ouverture de l’inscription pour mener des attaques de falsification.
Par exemple, un attaquant pourrait remplacer les informations stockées dans l'inscription par un code malveillant avant de pénétrer dans les serveurs de l'indexeur ou de compromettre les appareils des utilisateurs via des chevaux de Troie.
3. Mauvaise utilisation du portefeuille
Si le portefeuille est utilisé de manière inappropriée et qu'il ne peut pas indexer les inscriptions, il est probable que les inscriptions seront transférées de manière incorrecte, entraînant des pertes d'actifs.
4. Phishing ou fraude
Les attaquants peuvent utiliser de faux sites Web d'Unisat et d'autres indexeurs pour inciter les utilisateurs à effectuer des transactions d'inscription, volant ainsi les actifs des utilisateurs.
5. Omission de la signature PSBT
Atomics Market a autrefois causé des dommages aux actifs des utilisateurs en raison d’une utilisation incorrecte des méthodes de signature.
Lecture connexe :
<L’analyse de la perte d’actifs des utilisateurs du marché des produits atomiques>
https://metatrust.io/company/blogs/post/the-analysis-of-the-atomicals-market-user-asset-loss
Actions pouvant être entreprises
1. Limiter la taille des inscriptions
La taille des inscriptions peut être limitée pour réduire l’impact sur la charge des nœuds, ce que Luke a mentionné au début de l’article.
2. Chiffrer l'inscription
Les inscriptions peuvent être cryptées pour se protéger contre les codes malveillants.
3. Utilisez des sources d'inscriptions fiables
Des sources d'inscription fiables peuvent être utilisées pour éviter les problèmes de signature et le phishing.
4. Utilisez un portefeuille prenant en charge les inscriptions
Utilisez un portefeuille compatible Inscription pour effectuer des virements.
5. Faites attention à l'examen des codes d'inscription et des scripts associés
Dans les nouvelles expériences de brc20-swap et d'inscription récursive, en raison de l'introduction de codes et de scripts associés, il est nécessaire d'assurer la sécurité de ces codes et scripts.
Résumer
D'un point de vue technique et de sécurité, Bitcoin Inscription est essentiellement une vulnérabilité de contournement des règles. Le script taproot ne semble pas stocker de données, et il présente également certains problèmes de sécurité. Les modifications apportées par Luke au code principal du Bitcoin sont correctes du point de vue de la sécurité. Luke n'a pas directement modifié la couche de consensus de Bitcoin, mais a choisi d'ajuster le module Spam Filter (filtre stratégique) afin que les nœuds puissent filtrer automatiquement les transactions Ordinals lors de la réception de messages de diffusion P2P. Dans ce filtre stratégique, il existe plusieurs fonctions appelées isStandard() qui vérifient si différents aspects de la transaction sont conformes à la norme. Si une transaction ne répond pas aux critères, la transaction reçue par le nœud sera rapidement rejetée.
En d'autres termes, bien que les transactions Ordinals puissent éventuellement être ajoutées à la blockchain, la plupart des nœuds n'ajouteront pas ce type de données au pool de transactions, ce qui augmentera le délai de réception des données Ordinals par le pool minier disposé à les empaqueter sur le pool de transactions. chaîne. Cependant, si un pool de minage diffuse un bloc contenant une transaction BRC-20, les autres nœuds le reconnaîtront toujours.
Luke a déjà apporté des modifications au filtre de politique dans le client Bitcoin Knots et prévoit d'introduire des modifications similaires dans le client Bitcoin Core. Dans cette révision, il a introduit un nouveau paramètre appelé g_script_size_policy_limit qui limite la taille des scripts à plusieurs endroits différents. Ce changement signifie qu'il y aura des limitations supplémentaires sur la taille des scripts lors du traitement des transactions, affectant la façon dont les transactions sont acceptées et traitées.

Actuellement, la valeur par défaut de ce paramètre est 1650 octets, et n'importe quel nœud client peut la définir au démarrage via le paramètre -maxscriptsize :


Cependant, même si le code est mis à jour, il faudra encore beaucoup de temps avant que tous les nœuds mineurs soient mis à jour vers la nouvelle version. Pendant ce temps, les innovateurs de la communauté Inscription devraient être en mesure de créer un protocole plus sécurisé.
Metatrust Labs a évalué et surveillé les risques d'investissement d'inscription sur la plate-forme MetaScore via des données en chaîne et un suivi des actifs. Dans le même temps, il a également lancé un moteur de règles de surveillance du réseau Bitcoin sur la plate-forme MetaScout, qui peut aider les investisseurs à surveiller le réel. état temporel des données d’inscription Bitcoin.
Dans ce numéro, nous explorons les principes techniques et les problèmes de sécurité possibles de l'écologie d'inscription désormais populaire. Dans le prochain numéro, nous vous présenterons une technologie de gravure de circuit Taproot plus complexe - bitVM, alors restez à l'écoute.
À propos des laboratoires MetaTrust
MetaTrust Labs est l'un des principaux fournisseurs d'outils de sécurité d'intelligence artificielle Web3 et de services d'audit de code incubés par l'Université technologique de Nanyang à Singapour. Nous fournissons des solutions d'IA avancées qui permettent aux développeurs et aux parties prenantes du projet de sécuriser les applications Web3 et les contrats intelligents. Nos services complets comprennent l'analyse de sécurité par l'IA, l'audit de code, la surveillance des contrats intelligents et la surveillance des transactions. En intégrant l'IA, nous garantissons un écosystème sécurisé et renforçons la confiance entre les utilisateurs et les développeurs.
Site officiel : https://www.metatrust.io/
Twitter : https://twitter.com/MetaTrustLabs
Linkedin : https://www.linkedin.com/in/metatrust

