Avec la naissance du Protocole Ordinals, il a fourni à Bitcoin la fonction de numérotation et d'inscription, élargissant ainsi la gamme de produits de l'écosystème Bitcoin et apportant une nouvelle vitalité à l'écosystème Bitcoin. Dans cet article, nous plongerons dans les détails du Protocole Ordinal, y compris comment chaque Bitcoin est numéroté et tracé, et la relation entre les inscriptions et les chiffres. Mais avant de nous plonger plus profondément dans ce sujet, nous devons d'abord comprendre certains antécédents de base de Bitcoin pour nous aider à mieux comprendre ce qui vient ensuite.
Après avoir lu cet article, vous maîtriserez le mécanisme de transaction de Bitcoin et le modèle de paiement, apprendrez comment les ordinaux peuvent numéroter et suivre chaque Satoshi, et comment les inscriptions sont créées et échangées. De plus, vous en apprendrez davantage sur les différences entre les différents types de portefeuilles.
Bitcoin utilise un modèle de transaction semblable à de l'argent (système de paiement en espèces), et sa méthode de paiement est basée sur un modèle appelé UTXO, qui est différent du modèle traditionnel basé sur les soldes de compte. Par exemple, dans le processus de tenue de comptes d'une banque, lorsque A transfère 100 yuans à B, la banque enregistre trois étapes. Ces trois étapes forment un processus de transaction. La première étape consiste à déduire 100 yuans du compte de A. L'identifiant d'enregistrement pour cette étape est tid1. La deuxième étape consiste à déposer 100 yuans sur le compte de B. L'identifiant d'enregistrement pour cette étape est tid2. La troisième étape consiste à enregistrer un enregistrement de transfert. Cet enregistrement relie tid1 et tid2, indiquant une réduction de 100 yuans pour le compte A et une augmentation de 100 yuans pour le compte B. De cette manière, la relation de transfert entre A et B est enregistrée et peut être consultée et suivie à l'avenir. Nous allons maintenant expliquer les méthodes de paiement de Bitcoin grâce à une introduction à UTXO et aux modèles de paiement.
Dans la blockchain Bitcoin, tous les soldes sont stockés dans une liste appelée « Unspent Transaction Output (UTXO) » (sortie de transaction non dépensée). Chaque UTXO contient une certaine quantité de bitcoins, ainsi que des informations sur les propriétaires de ces bitcoins, et indique s'ils sont disponibles. Pensez-y comme un chèque en espèces avec le nom du titulaire dessus. Tant que le titulaire le signe, vous pouvez transférer le droit de l'utiliser à une autre personne. Pour une adresse spécifique, tous ses montants UTXO s'additionnent pour former le solde du portefeuille de cette adresse. En passant par tous les UTXO, nous pouvons obtenir le solde actuel pour chaque adresse. La somme de tous les montants UTXO est le montant total de bitcoins actuellement en circulation.
Dans la structure de transaction de Bitcoin, chaque transaction comprend plusieurs entrées et sorties. Chaque entrée est une référence à une UTXO existante, et chaque sortie spécifie une nouvelle adresse de réception de fonds et le montant correspondant. Une fois qu'une transaction est initiée, l'UTXO référencée dans la section d'entrée est temporairement verrouillée pour empêcher la réutilisation jusqu'à ce que la transaction soit terminée. Ce n'est qu'une fois que la transaction est correctement emballée dans un bloc (Block) par le mineur et confirmée par le réseau que le statut de l'UTXO concerné change. Plus précisément, les UTXO utilisées pour l'entrée de transaction seront supprimées de la liste des UTXO, indiquant qu'elles ont été consommées, et la sortie de la transaction générera une nouvelle UTXO qui sera ajoutée à la liste des UTXO. On peut comprendre qu'un vieux chèque en espèces a été utilisé et est devenu invalide, créant ainsi un nouveau chèque en espèces, qui est maintenant détenu par le nouveau propriétaire.
Il convient de souligner que chaque UTXO ne peut être utilisé qu'une seule fois dans une seule transaction. Une fois qu'il est consommé en tant qu'entrée, il est définitivement supprimé de la liste des UTXO. Pendant ce temps, la sortie nouvellement générée est ajoutée à la liste en tant que nouveau UTXO. La liste des UTXO change constamment, et à chaque nouveau bloc créé, elle est mise à jour en conséquence. De plus, en analysant l'historique des transactions dans la blockchain, nous sommes en mesure de reconstruire l'état de la liste des UTXO à un moment donné.
De plus, le montant total d'entrée d'une transaction dépasse généralement légèrement le montant total de sortie. Cette différence, appelée frais de transaction (frais de transaction) ou frais de réseau (frais de réseau), est donnée comme une incitation aux mineurs responsables de regrouper les transactions en blocs. Le montant des frais de réseau est proportionnel à la complexité de la transaction, de sorte qu'une transaction avec plus d'entrées et de sorties nécessite généralement des frais de réseau plus élevés.
Maintenant, afin de mieux comprendre la structure des transactions Bitcoin, nous allons procéder à une analyse approfondie à travers un exemple spécifique. La structure de la transaction Bitcoin est la suivante. Les deux variables vin et vout représentent respectivement les "entrées" et les "sorties" d'une transaction Bitcoin. Les transactions Bitcoin ne sont pas comme les modèles de solde de compte traditionnels qui enregistrent les modifications des données de compte, mais sont exprimées à travers des entrées et des sorties.
Nous pouvons sélectionner aléatoirement un enregistrement de transaction sur blockchain.com à analyser. La figure ci-dessous montre que l'ID de hash est une transaction de 0627052b6f28912f2703066a912ea577f2ce4da4caa5a5f5fbd8a57286c345c2f2. Il contient une entrée et deux sorties.
En utilisant les commandes bitcoin-cli getrawtransaction et decoderawtransaction, nous pouvons voir la structure sous-jacente de la transaction ci-dessus :
Dans le réseau Bitcoin, la sortie de transaction contient deux informations importantes : l'adresse (hachage de clé publique) et le montant (en bitcoins). Si la sortie d'une transaction n'est pas utilisée en entrée d'une autre transaction, alors cette sortie de transaction est appelée sortie de transaction non dépensée (UTXO). Celui qui possède la clé privée correspondant à la clé publique dans l'UTXO a le droit d'utiliser (c'est-à-dire de dépenser) cet UTXO.
Jetons un coup d'œil aux informations dans le "vin" dans le code ci-dessus, ce qui indique que l'UTXO dépensé sur cet échange provient d'une autre transaction (son identifiant est 7957a35fe64f80d234d76d83a2a8a0d8a0d149a41d81de548f0a65a8a999f6f18). Nous pouvons trouver le montant de cet UTXO à partir des transactions historiques (par exemple, 0.1), Par conséquent, dans cette transaction, l'utilisateur a dépensé 0.1 BTC. La valeur 0.1 n'a pas besoin d'être explicitement écrite dans la transaction, mais est obtenue en recherchant des informations sur l'UTXO. Le "vout" de cette transaction a deux sorties. Ces deux sorties sont deux nouveaux UTXO, correspondant au nouveau solde et au détenteur jusqu'à ce qu'une autre transaction les consomme en tant qu'entrée.
Le nombre total de bitcoins est de 21 millions, et chaque bitcoin contient 10^8 Satoshi (Satoshi, Sat). En conséquence, il y a 21 millions*10^8 satoshi sur le réseau Bitcoin. Le protocole Ordinals distingue ces Satoshi et numérote de manière unique chaque Satoshi. Cette section explique comment cet accord numérote de manière unique chaque Satoshi et suit le compte dans lequel il se trouve. De plus, la classification de la rareté des Satoshi sera également introduite.
Selon l'accord des Ordinaux, les Satoshi sont numérotés selon l'ordre dans lequel ils ont été extraits. La figure ci-dessous montre comment le 0ème Satoshi est représenté par le 0ème bloc.
Il existe de nombreuses façons d'exprimer Satoshi :
Nous utiliserons un exemple pour expliquer comment numéroter les bitcoins nouvellement minés. En regardant le 795952e bloc de la blockchain Bitcoin, nous pouvons voir que la première transaction Tx 3a1f… b177 a enregistré la récompense du mineur (transaction Coinbase). La transaction inclut des bitcoins nouvellement minés, qui sont des récompenses emballées pour les mineurs, et des frais de traitement payés aux mineurs par l'initiateur de la transaction. En regardant l'entrée dans l'image ci-dessous, nous pouvons voir que son ID UTxO se compose d'une chaîne de zéros et de la hauteur du bloc. L'adresse de sortie est l'adresse du portefeuille du mineur, et le montant est la somme des récompenses et frais ci-dessus.
Si nous examinons de plus près la section de sortie vers les mineurs, nous pouvons voir l'adresse, le montant et la répartition des Satoshi inclus. Comme mentionné précédemment, ceux-ci comprennent les récompenses minières et les frais. Parmi eux, les informations du nombre de SATS verts 1941220000000000-1941220625000000 sont de nouveaux Satoshi générés par les récompenses minières, et les 712 enregistrements Satoshi restants correspondent à tous les frais de traitement dans ce bloc.
Nous pouvons vérifier le nombre Sat 1941220000000000. Son numéro de bloc est 795952, et le symbole décimal (décimal) est 795952,0, ce qui signifie que la hauteur de bloc pour miner ce Satoshi est 795952, le nombre dans ce bloc est 0, et la rareté (rareté) qui suit est marquée comme peu commune, que nous couvrirons plus en détail dans les sections ultérieures.
Parce que chaque BTC est généré par des récompenses minières, ils sont tous traçables. Les comptes Bitcoin utilisent le modèle UTXO. Disons que l'utilisateur A a obtenu les 100e à 110e Satoshi par l'exploitation minière (10 Satoshi sont stockés dans leur intégralité dans UTXO avec le même ID adc123). Lorsque l'utilisateur A veut payer l'utilisateur B 5 Satoshi, il choisit d'utiliser l'ID abc123 comme entrée pour la transaction. Parmi ceux-ci, 5 Satoshi sont donnés à l'utilisateur B, et 5 Satoshi sont retournés à l'utilisateur A en tant que zéros. Ces deux copies des 5 Satoshi forment un tout, stocké dans deux UTXO avec les ID abc456 et abc789, respectivement. Le nombre d'ID UTXO et de Satoshi mentionnés ci-dessus n'est donné qu'à titre d'exemple. Dans des circonstances réelles, le nombre minimum de Satoshi envoyés est limité à 546, et les ID UTXO ne sont pas exprimés sous cette forme.
Dans la transaction décrite ci-dessus, les chemins de transfert de 10 Satoshi de l'utilisateur A sont :
En tant que dérivé du protocole des Ordres, la rareté de Satoshi peut être définie en fonction de l'ordre dans lequel ils sont minés. Cela fera en sorte que certains Satoshi spéciaux aient des niveaux de rareté variables. Voici à quel point les différents types d'audition sont rares :
Ce concept rare et ingénieux peut ajouter plus de plaisir et de valeur à l'écosystème Bitcoin. Les Satoshi de rareté variable peuvent avoir des valeurs différentes sur le marché, attirant ainsi les collectionneurs et les investisseurs.
Ordinals est significativement différent des autres NFT non-Bitcoin on-chain. Parmi eux, la principale différence est que les métadonnées d'Ordinals ne sont pas stockées dans un emplacement spécifique. Au lieu de cela, ces métadonnées sont intégrées aux données témoins de la transaction (champ témoin), c'est pourquoi nous l'appelons "inscription", car ces données sont "gravées" comme une inscription sur une partie spécifique d'une transaction Bitcoin, et ces données sont attachées à un Satoshi spécifique. Ce processus d'inscription est réalisé grâce à Segregated Witness (SegWit) et "pay-to-taproot (P2TR)". Il comprend deux étapes de soumission (engagement) et de divulgation (révélation), et peut graver toute forme de contenu (tel que du texte, une image ou une vidéo) sur le tableau intelligent désigné. Nous introduirons ci-dessous une autre méthode de stockage plus directe, OP_RETURN, et expliquerons pourquoi elle n'a pas été utilisée comme moyen d'inscriptions. En même temps, nous présenterons ce que sont Segregated Witness et pay-to-taproot, et quel rôle ils jouent dans l'inscription. Enfin, nous expliquerons comment les inscriptions sont réalisées.
Dans la version 0.9 du client Bitcoin Core, un compromis a finalement été atteint en utilisant l'opérateur RETURN. **RETURN permet aux développeurs d'ajouter 80 octets de données non liées au paiement à la sortie de la transaction. **Contrairement aux faux paiements, RETURN crée une sortie vérifiable inutilisable de manière indiscutable; de telles données n'ont pas besoin d'être stockées dans un ensemble UTXO. Les sorties RETURN sont enregistrées sur la blockchain. Elles consomment de l'espace disque et font également croître la blockchain en taille, mais comme elles ne sont pas stockées dans la concentration UTXO, elles n'étendent pas le pool de mémoire UTXO, encore moins n'augmentent le coût de mémoire onéreux de l'ensemble du nœud.
Bien que OP_RETURN soit un moyen très direct de stocker des informations sur la blockchain Bitcoin, c'est aussi une méthode d'inscription potentielle. Cependant, les limites d'OP_RETURN le rendent confronté à certains défis lorsqu'il s'agit de stocker des métadonnées. Premièrement, OP_RETURN ne peut stocker que 80 octets de données, et dans les cas où de plus grandes quantités de données doivent être stockées, cette limite est clairement impossible à atteindre. Deuxièmement, les données OP_RETURN sont stockées dans la section de sortie de transaction. Bien que ces données ne soient pas stockées de manière centralisée dans UTXO, elles occupent de l'espace de stockage sur la blockchain, ce qui entraîne une augmentation de la taille de la blockchain. Enfin, l'utilisation d'OP_RETURN entraîne des frais de transaction plus élevés car il faut payer davantage pour poster ces transactions.
En revanche, SegWit propose une nouvelle approche qui peut surmonter ces problèmes. SegWit est une mise à niveau de protocole importante pour Bitcoin. Il a été proposé par le développeur principal de Bitcoin, Pieter Wuille, en 2015 et finalement officiellement adopté dans la version 0.16.0 en 2017. Séparé dans témoin séparé signifie séparation ou isolation, et témoin est une signature liée à une transaction. Par conséquent, SegWit sépare certaines données de signature de transaction (données de témoin) des transactions.
Le principal avantage de séparer les signatures des données liées aux transactions est la réduction de la taille des données stockées dans un bloc Bitcoin. Ainsi, chaque bloc a une capacité supplémentaire pour stocker plus de transactions, ce qui signifie également que le réseau peut traiter davantage de transactions et que l'expéditeur paie des frais de traitement moins élevés. Techniquement, les informations de signature de script (scriptSig) sont extraites de la structure de base (bloc de base) et placées dans une nouvelle structure de données. Les nœuds et les mineurs chargés de la vérification vérifieront également les signatures de script dans cette nouvelle structure de données pour garantir que les transactions sont valides. La mise à niveau Segwit a introduit un nouveau champ de témoin dans la sortie de transaction pour garantir la confidentialité et les performances. Bien que les données de témoin ne soient pas conçues pour le stockage de données, elles nous donnent en fait l'opportunité de stocker des choses comme des métadonnées d'inscription. Utilisons l'image suivante pour mieux comprendre le témoin de quarantaine :
P2TR est un type de sortie de transaction pour Bitcoin. Il a été introduit dans la mise à niveau de Taproot en 2021. Il permet de stocker de manière plus privée différentes conditions de transaction sur la blockchain. Dans l'inscription des Ordinals, P2TR joue un rôle critique. L'inscription intègre essentiellement un contenu de données spécifique dans les transactions Bitcoin, et les mises à niveau de Taproot, en particulier P2TR, ont rendu ces données intégrées plus flexibles et économiques.
Tout d'abord, en raison de la méthode de stockage des scripts Taproot, nous pouvons stocker le contenu de l'inscription dans les scripts de dépense du chemin du script Taproot. Ces scripts n'ont presque aucune restriction sur le contenu et peuvent en même temps bénéficier de réductions sur les données de témoin, ce qui le rend relativement économique pour stocker le contenu de l'inscription. Étant donné que la consommation du script Taproot ne peut être effectuée que depuis la sortie Taproot déjà existante, l'inscription utilise un processus de soumission/divulgation en deux étapes. Tout d'abord, en soumettant une transaction, une sortie Taproot a été créée qui promettait un script contenant le contenu de l'inscription. Ensuite, dans la transaction de révélation, la sortie créée en soumettant la transaction a été consommée, révélant ainsi le contenu de l'inscription sur la chaîne.
Cette approche a considérablement réduit la consommation de ressources. Si P2TR n'est pas utilisé, les informations de témoin sont stockées dans la sortie de la transaction. De cette manière, tant que cette sortie n'est pas consommée, les informations de témoin seront toujours stockées dans le pool UTXO. En revanche, si P2TR est utilisé, les informations de témoin n'apparaîtront pas dans les transactions générées lors de la phase de soumission, elles ne seront donc pas écrites dans l'ensemble UTXO. Ce n'est que lorsque cette UTXO est dépensée que les informations de témoin apparaîtront dans l'entrée de transaction lors de la phase de divulgation. P2TR permet d'écrire des métadonnées dans la blockchain Bitcoin, mais elles n'apparaissent jamais dans l'UTXO. Comme la maintenance/la modification des ensembles UTXO nécessite plus de ressources, cette approche peut économiser des ressources importantes.
Le protocole Ordinals a utilisé SegWit pour assouplir les restrictions de taille sur le contenu écrit sur le réseau Bitcoin, stockant le contenu de l'inscription dans les données de témoin. Cela lui permet de stocker jusqu'à 4 Mo de métadonnées. Taproot facilite le stockage de données de témoin arbitraires dans les transactions Bitcoin, permettant au développeur d'Ordinals Casey Rodarmor de réutiliser d'anciens opcodes (OP_FALSE, OP_IF, OP_PUSH) pour stocker des données arbitraires dans ce qu'il a décrit comme une "enveloppe" appelée une "inscription".
Le processus de coulée d'une inscription se compose des deux étapes suivantes :
Tout d'abord, il est nécessaire de créer une promesse dans la transaction de soumission à la sortie Taproot du script contenant le contenu de l'inscription. Le format de stockage est Taproot, c'est-à-dire que la sortie de la transaction précédente est P2TR (Pay-To-Taproot), et l'entrée de la transaction ultérieure intègre le contenu dans un format spécifique dans le script Taproot témoin ; la chaîne ord est d'abord empilée pour éliminer l'ambiguïté que l'inscription a d'autres utilisations. OP_PUSH 1 indique que la prochaine poussée contient le type de contenu, et OP_PUSH 0 indique que les poussées de données ultérieures incluent le contenu lui-même. Les grandes inscriptions doivent utiliser plusieurs poussées de données car l'une des rares limitations de taproot est qu'une seule poussée de données ne peut pas être plus grande que 520 octets. À ce stade, les données de l'inscription ont été appliquées à la sortie UTXO de la transaction, mais elles n'ont pas été divulguées.
Deuxièmement, il est nécessaire de révéler la sortie créée par la transaction de soumission d'achat dans la transaction. À ce stade, la transaction est initiée en utilisant l'UTXO correspondant à cette inscription comme entrée. À ce stade, le contenu de l'inscription correspondante a été rendu public à l'ensemble du réseau.
Grâce aux deux étapes ci-dessus, le contenu de l'inscription a été lié à l'UTXO gravé. De plus, selon la position de Satoshi décrite ci-dessus, l'inscription est effectuée sur le premier Satoshi correspondant à l'entrée UTXO, et le contenu de l'inscription est inclus dans l'entrée montrant la transaction. Selon l'introduction à la circulation et au suivi de Satoshi décrite ci-dessus, ce Satoshi, qui est gravé avec un contenu spécial, peut être transféré, acheté, vendu, perdu et récupéré. Notez que les inscriptions ne peuvent pas être répétées, sinon les inscriptions ultérieures ne seront pas valides.
Nous expliquerons ce processus en détail en inscrivant un exemple d'une petite image NFT de BTC. Ce processus comprend principalement les deux étapes de soumission (commit) et de divulgation (reveal) mentionnées précédemment. Tout d'abord, nous voyons que l'ID de hachage pour la première transaction est 2ddf9... f585c. On peut noter que la sortie de cette transaction n'incluait pas de données de témoin, et il n'y avait pas d'inscription pertinente sur la page.
Ensuite, examinons le compte rendu de la deuxième étape. L'ID de hash est e7454... 7c0e1. Ici, nous pouvons voir les informations sur l'inscription des ordinaux, c'est-à-dire le contenu de l'inscription du témoin. L'adresse d'entrée pour cette transaction est l'adresse de sortie de la transaction précédente, et la sortie 0,00000546 BTC (546 Satoshi) envoie cet NFT à sa propre adresse. En même temps, nous pouvons également utiliser Sat Find Satoshi où cette inscription est située dans 1893640468329373.
Dans le portefeuille Bitcoin, nous pouvons voir cet actif. Si nous voulons échanger cet NFT, nous pouvons l'envoyer directement à l'adresse de quelqu'un d'autre, c'est-à-dire envoyer cette UTXO, et cela complète la circulation de l'inscription.
Après avoir appris sur l'écosystème des Ordinals, la circulation de Satoshi et les connaissances connexes sur les inscriptions, il existe actuellement de nombreux scénarios d'application. Que ce soit l'émergence d'accords dérivés connexes tels que BRC-20, ORC-20, BRC-721, GBRC-721, etc., nous avons besoin d'un portefeuille correspondant pour prendre en charge et afficher les informations sur les jetons ou de petites images NFT. Dans cette section, nous introduirons les concepts et les caractéristiques des différentes adresses de portefeuille Bitcoin.
Les adresses Bitcoin commencent par 1, 3 ou bc1. Tout comme les adresses e-mail, elles peuvent être partagées avec d'autres utilisateurs de Bitcoin qui peuvent les utiliser pour envoyer des bitcoins directement à leurs portefeuilles. D'un point de vue sécurité, les adresses Bitcoin n'ont aucun contenu sensible. Elles peuvent être publiées n'importe où sans compromettre la sécurité du compte. Contrairement aux adresses e-mail, nous pouvons créer de nouvelles adresses à tout moment, toutes lesquelles déposeront des fonds directement dans votre portefeuille. En fait, de nombreux portefeuilles modernes créent automatiquement une nouvelle adresse pour chaque transaction afin de maximiser la confidentialité. Un portefeuille est simplement une collection d'adresses et de clés pour débloquer les fonds qui s'y trouvent. Tout d'abord, nous devons savoir comment l'adresse du portefeuille Bitcoin est générée.
Bitcoin utilise une courbe elliptique secp256k1. La « clé privée » est un nombre aléatoire compris entre 1 et n-1. n est un grand nombre (256 bits), et n est exprimé en notation scientifique environ 1.15792*10^77. La portée est énorme, et il est presque impossible pour nous de deviner les clés privées des autres. Cette clé privée entière aléatoire peut être utilisée avec 256 bits pour indiquer qu'il existe de nombreuses façons de coder. Si la clé privée utilisant WIF ou WIF-compressed n'est pas chiffrée, le « nombre entier aléatoire » d'origine peut être obtenu par décodage. Une autre méthode est BIP38. Il est proposé d'utiliser l'algorithme AES pour chiffrer la clé privée. La clé privée obtenue par ce schéma commence par le caractère 6P. Cette clé privée doit être importée dans divers portefeuilles Bitcoin. C'est la clé privée que nous utilisons habituellement.
Nous utiliserons ensuite la formule de courbe elliptique K = kG pour générer la clé publique de Bitcoin K à partir de la clé privée k. G est le point de base, qui est un paramètre de secp256k1. Vous pouvez obtenir les deux coordonnées de K, qui sont les deux expressions de la clé publique, respectivement "Format non compressé" et "Format compressé".
Les différents types d'adresses Bitcoin peuvent être vus dans la figure suivante. Il existe quatre façons de les exprimer :
1. Format hérité (P2PKH)
Exemple: 1fh7ajxabjbpzw8bjd3qu4cuq3prty9u
Les adresses commençant par “1” sont le format d'adresse original de Bitcoin et sont encore utilisées aujourd'hui. Obtenues à partir de la clé publique par le calcul de hachage, également connues sous le nom de P2PKH, sont une abréviation de Pay To PubKey Hash (paiement à la clé publique hachée).
2. Format SegWit imbriqué (P2SH)
Exemple: 3kf9nxowq4assgxrrzeitpdjmuwM2nyPan
Les adresses commencent par "3". P2SH est l'abréviation de Pay To Script Hash (Payer à un hachage de script), qui prend en charge des fonctionnalités plus complexes que les adresses Legacy. Le P2SH imbriqué obtient une adresse P2SH existante (commençant par "3") et l'encapsule avec l'adresse SegWit.
3. Format natif SegWit (Bech32)
Les adresses commençant par bc1 ont été proposées dans le BIP0173 ; ce sont des adresses de témoin de quarantaine natives. L'adresse encodée Bech32 est un format d'adresse spécialement développé pour SegWit. Bech32 a été défini dans le BIP173 à la fin de 2017. L'une des principales caractéristiques de ce format est qu'il n'est pas sensible à la casse (l'adresse ne contient que 0-9, az), ce qui permet d'éviter efficacement les confusions et rend l'entrée plus facile à lire. Comme moins de caractères sont nécessaires dans l'adresse, l'adresse utilise un encodage Base32 au lieu du traditionnel Base58, ce qui est plus pratique et plus efficace à calculer. Les données peuvent être stockées plus serrées dans un code QR. Bech32 offre une sécurité accrue, optimise mieux les codes de vérification et de détection d'erreurs, et minimise les risques d'adresses invalides.
L'adresse Bech32 elle-même est compatible SegWit. Aucun espace supplémentaire n'est nécessaire pour mettre l'adresse SegWit dans l'adresse P2SH, donc en utilisant une adresse au format Bech32, les frais de traitement seront plus bas. Les adresses Bech32 présentent plusieurs avantages par rapport aux anciennes adresses Base58 (le codage Base58Check est utilisé pour encoder des tableaux d'octets en Bitcoin en chaînes encodables par l'homme) : les codes QR sont plus petits ; ils sont plus fiables en cas d'erreur ; ils sont plus sécurisés ; ils ne sont pas sensibles à la casse ; ils sont uniquement composés de lettres minuscules, ce qui les rend plus faciles à lire, à taper et à comprendre.
4. Format Taproot (P2TR)
Bech32 a un inconvénient : si le dernier caractère de l'adresse est p, insérer ou supprimer un nombre quelconque de caractères q immédiatement avant p n'invalidera pas son checksum.
Pour pallier aux lacunes susmentionnées de Bech32, l'adresse Bech32M a été proposée dans BIP0350 :
Pour les adresses Bech32M, lorsque la version est 1, elles commencent toujours par bc1p (c'est-à-dire une adresse Taproot). Plus précisément, comme un témoin de mise en quarantaine local, un portefeuille peut se composer d'une phrase de récupération et d'une phrase secrète. Celles-ci sont utilisées pour générer des clés publiques et privées étendues, et sont utilisées pour dériver des adresses pour des chemins arbitraires dans des portefeuilles déterministes hiérarchiques. Principalement des NFT qui stockent BRC-20 et BTC.
Spectrum Labs est une équipe de maîtres et de doctorants spécialisés dans la recherche en blockchain, ainsi que des vétérans de l'industrie de la blockchain. Nous nous engageons dans la technologie de chaîne de recherche en blockchain et ses applications pour aider les gens à mieux comprendre la blockchain. Les activités principales de Spectrum Labs comprennent la rédaction de rapports de recherche, la rédaction de cours et le développement d'outils.
La communauté chinoise BTC NFT est une plateforme d'échange chinoise de jetons BTC NFT pour les nouveaux venus chinois du monde entier.
Mời người khác bỏ phiếu
Avec la naissance du Protocole Ordinals, il a fourni à Bitcoin la fonction de numérotation et d'inscription, élargissant ainsi la gamme de produits de l'écosystème Bitcoin et apportant une nouvelle vitalité à l'écosystème Bitcoin. Dans cet article, nous plongerons dans les détails du Protocole Ordinal, y compris comment chaque Bitcoin est numéroté et tracé, et la relation entre les inscriptions et les chiffres. Mais avant de nous plonger plus profondément dans ce sujet, nous devons d'abord comprendre certains antécédents de base de Bitcoin pour nous aider à mieux comprendre ce qui vient ensuite.
Après avoir lu cet article, vous maîtriserez le mécanisme de transaction de Bitcoin et le modèle de paiement, apprendrez comment les ordinaux peuvent numéroter et suivre chaque Satoshi, et comment les inscriptions sont créées et échangées. De plus, vous en apprendrez davantage sur les différences entre les différents types de portefeuilles.
Bitcoin utilise un modèle de transaction semblable à de l'argent (système de paiement en espèces), et sa méthode de paiement est basée sur un modèle appelé UTXO, qui est différent du modèle traditionnel basé sur les soldes de compte. Par exemple, dans le processus de tenue de comptes d'une banque, lorsque A transfère 100 yuans à B, la banque enregistre trois étapes. Ces trois étapes forment un processus de transaction. La première étape consiste à déduire 100 yuans du compte de A. L'identifiant d'enregistrement pour cette étape est tid1. La deuxième étape consiste à déposer 100 yuans sur le compte de B. L'identifiant d'enregistrement pour cette étape est tid2. La troisième étape consiste à enregistrer un enregistrement de transfert. Cet enregistrement relie tid1 et tid2, indiquant une réduction de 100 yuans pour le compte A et une augmentation de 100 yuans pour le compte B. De cette manière, la relation de transfert entre A et B est enregistrée et peut être consultée et suivie à l'avenir. Nous allons maintenant expliquer les méthodes de paiement de Bitcoin grâce à une introduction à UTXO et aux modèles de paiement.
Dans la blockchain Bitcoin, tous les soldes sont stockés dans une liste appelée « Unspent Transaction Output (UTXO) » (sortie de transaction non dépensée). Chaque UTXO contient une certaine quantité de bitcoins, ainsi que des informations sur les propriétaires de ces bitcoins, et indique s'ils sont disponibles. Pensez-y comme un chèque en espèces avec le nom du titulaire dessus. Tant que le titulaire le signe, vous pouvez transférer le droit de l'utiliser à une autre personne. Pour une adresse spécifique, tous ses montants UTXO s'additionnent pour former le solde du portefeuille de cette adresse. En passant par tous les UTXO, nous pouvons obtenir le solde actuel pour chaque adresse. La somme de tous les montants UTXO est le montant total de bitcoins actuellement en circulation.
Dans la structure de transaction de Bitcoin, chaque transaction comprend plusieurs entrées et sorties. Chaque entrée est une référence à une UTXO existante, et chaque sortie spécifie une nouvelle adresse de réception de fonds et le montant correspondant. Une fois qu'une transaction est initiée, l'UTXO référencée dans la section d'entrée est temporairement verrouillée pour empêcher la réutilisation jusqu'à ce que la transaction soit terminée. Ce n'est qu'une fois que la transaction est correctement emballée dans un bloc (Block) par le mineur et confirmée par le réseau que le statut de l'UTXO concerné change. Plus précisément, les UTXO utilisées pour l'entrée de transaction seront supprimées de la liste des UTXO, indiquant qu'elles ont été consommées, et la sortie de la transaction générera une nouvelle UTXO qui sera ajoutée à la liste des UTXO. On peut comprendre qu'un vieux chèque en espèces a été utilisé et est devenu invalide, créant ainsi un nouveau chèque en espèces, qui est maintenant détenu par le nouveau propriétaire.
Il convient de souligner que chaque UTXO ne peut être utilisé qu'une seule fois dans une seule transaction. Une fois qu'il est consommé en tant qu'entrée, il est définitivement supprimé de la liste des UTXO. Pendant ce temps, la sortie nouvellement générée est ajoutée à la liste en tant que nouveau UTXO. La liste des UTXO change constamment, et à chaque nouveau bloc créé, elle est mise à jour en conséquence. De plus, en analysant l'historique des transactions dans la blockchain, nous sommes en mesure de reconstruire l'état de la liste des UTXO à un moment donné.
De plus, le montant total d'entrée d'une transaction dépasse généralement légèrement le montant total de sortie. Cette différence, appelée frais de transaction (frais de transaction) ou frais de réseau (frais de réseau), est donnée comme une incitation aux mineurs responsables de regrouper les transactions en blocs. Le montant des frais de réseau est proportionnel à la complexité de la transaction, de sorte qu'une transaction avec plus d'entrées et de sorties nécessite généralement des frais de réseau plus élevés.
Maintenant, afin de mieux comprendre la structure des transactions Bitcoin, nous allons procéder à une analyse approfondie à travers un exemple spécifique. La structure de la transaction Bitcoin est la suivante. Les deux variables vin et vout représentent respectivement les "entrées" et les "sorties" d'une transaction Bitcoin. Les transactions Bitcoin ne sont pas comme les modèles de solde de compte traditionnels qui enregistrent les modifications des données de compte, mais sont exprimées à travers des entrées et des sorties.
Nous pouvons sélectionner aléatoirement un enregistrement de transaction sur blockchain.com à analyser. La figure ci-dessous montre que l'ID de hash est une transaction de 0627052b6f28912f2703066a912ea577f2ce4da4caa5a5f5fbd8a57286c345c2f2. Il contient une entrée et deux sorties.
En utilisant les commandes bitcoin-cli getrawtransaction et decoderawtransaction, nous pouvons voir la structure sous-jacente de la transaction ci-dessus :
Dans le réseau Bitcoin, la sortie de transaction contient deux informations importantes : l'adresse (hachage de clé publique) et le montant (en bitcoins). Si la sortie d'une transaction n'est pas utilisée en entrée d'une autre transaction, alors cette sortie de transaction est appelée sortie de transaction non dépensée (UTXO). Celui qui possède la clé privée correspondant à la clé publique dans l'UTXO a le droit d'utiliser (c'est-à-dire de dépenser) cet UTXO.
Jetons un coup d'œil aux informations dans le "vin" dans le code ci-dessus, ce qui indique que l'UTXO dépensé sur cet échange provient d'une autre transaction (son identifiant est 7957a35fe64f80d234d76d83a2a8a0d8a0d149a41d81de548f0a65a8a999f6f18). Nous pouvons trouver le montant de cet UTXO à partir des transactions historiques (par exemple, 0.1), Par conséquent, dans cette transaction, l'utilisateur a dépensé 0.1 BTC. La valeur 0.1 n'a pas besoin d'être explicitement écrite dans la transaction, mais est obtenue en recherchant des informations sur l'UTXO. Le "vout" de cette transaction a deux sorties. Ces deux sorties sont deux nouveaux UTXO, correspondant au nouveau solde et au détenteur jusqu'à ce qu'une autre transaction les consomme en tant qu'entrée.
Le nombre total de bitcoins est de 21 millions, et chaque bitcoin contient 10^8 Satoshi (Satoshi, Sat). En conséquence, il y a 21 millions*10^8 satoshi sur le réseau Bitcoin. Le protocole Ordinals distingue ces Satoshi et numérote de manière unique chaque Satoshi. Cette section explique comment cet accord numérote de manière unique chaque Satoshi et suit le compte dans lequel il se trouve. De plus, la classification de la rareté des Satoshi sera également introduite.
Selon l'accord des Ordinaux, les Satoshi sont numérotés selon l'ordre dans lequel ils ont été extraits. La figure ci-dessous montre comment le 0ème Satoshi est représenté par le 0ème bloc.
Il existe de nombreuses façons d'exprimer Satoshi :
Nous utiliserons un exemple pour expliquer comment numéroter les bitcoins nouvellement minés. En regardant le 795952e bloc de la blockchain Bitcoin, nous pouvons voir que la première transaction Tx 3a1f… b177 a enregistré la récompense du mineur (transaction Coinbase). La transaction inclut des bitcoins nouvellement minés, qui sont des récompenses emballées pour les mineurs, et des frais de traitement payés aux mineurs par l'initiateur de la transaction. En regardant l'entrée dans l'image ci-dessous, nous pouvons voir que son ID UTxO se compose d'une chaîne de zéros et de la hauteur du bloc. L'adresse de sortie est l'adresse du portefeuille du mineur, et le montant est la somme des récompenses et frais ci-dessus.
Si nous examinons de plus près la section de sortie vers les mineurs, nous pouvons voir l'adresse, le montant et la répartition des Satoshi inclus. Comme mentionné précédemment, ceux-ci comprennent les récompenses minières et les frais. Parmi eux, les informations du nombre de SATS verts 1941220000000000-1941220625000000 sont de nouveaux Satoshi générés par les récompenses minières, et les 712 enregistrements Satoshi restants correspondent à tous les frais de traitement dans ce bloc.
Nous pouvons vérifier le nombre Sat 1941220000000000. Son numéro de bloc est 795952, et le symbole décimal (décimal) est 795952,0, ce qui signifie que la hauteur de bloc pour miner ce Satoshi est 795952, le nombre dans ce bloc est 0, et la rareté (rareté) qui suit est marquée comme peu commune, que nous couvrirons plus en détail dans les sections ultérieures.
Parce que chaque BTC est généré par des récompenses minières, ils sont tous traçables. Les comptes Bitcoin utilisent le modèle UTXO. Disons que l'utilisateur A a obtenu les 100e à 110e Satoshi par l'exploitation minière (10 Satoshi sont stockés dans leur intégralité dans UTXO avec le même ID adc123). Lorsque l'utilisateur A veut payer l'utilisateur B 5 Satoshi, il choisit d'utiliser l'ID abc123 comme entrée pour la transaction. Parmi ceux-ci, 5 Satoshi sont donnés à l'utilisateur B, et 5 Satoshi sont retournés à l'utilisateur A en tant que zéros. Ces deux copies des 5 Satoshi forment un tout, stocké dans deux UTXO avec les ID abc456 et abc789, respectivement. Le nombre d'ID UTXO et de Satoshi mentionnés ci-dessus n'est donné qu'à titre d'exemple. Dans des circonstances réelles, le nombre minimum de Satoshi envoyés est limité à 546, et les ID UTXO ne sont pas exprimés sous cette forme.
Dans la transaction décrite ci-dessus, les chemins de transfert de 10 Satoshi de l'utilisateur A sont :
En tant que dérivé du protocole des Ordres, la rareté de Satoshi peut être définie en fonction de l'ordre dans lequel ils sont minés. Cela fera en sorte que certains Satoshi spéciaux aient des niveaux de rareté variables. Voici à quel point les différents types d'audition sont rares :
Ce concept rare et ingénieux peut ajouter plus de plaisir et de valeur à l'écosystème Bitcoin. Les Satoshi de rareté variable peuvent avoir des valeurs différentes sur le marché, attirant ainsi les collectionneurs et les investisseurs.
Ordinals est significativement différent des autres NFT non-Bitcoin on-chain. Parmi eux, la principale différence est que les métadonnées d'Ordinals ne sont pas stockées dans un emplacement spécifique. Au lieu de cela, ces métadonnées sont intégrées aux données témoins de la transaction (champ témoin), c'est pourquoi nous l'appelons "inscription", car ces données sont "gravées" comme une inscription sur une partie spécifique d'une transaction Bitcoin, et ces données sont attachées à un Satoshi spécifique. Ce processus d'inscription est réalisé grâce à Segregated Witness (SegWit) et "pay-to-taproot (P2TR)". Il comprend deux étapes de soumission (engagement) et de divulgation (révélation), et peut graver toute forme de contenu (tel que du texte, une image ou une vidéo) sur le tableau intelligent désigné. Nous introduirons ci-dessous une autre méthode de stockage plus directe, OP_RETURN, et expliquerons pourquoi elle n'a pas été utilisée comme moyen d'inscriptions. En même temps, nous présenterons ce que sont Segregated Witness et pay-to-taproot, et quel rôle ils jouent dans l'inscription. Enfin, nous expliquerons comment les inscriptions sont réalisées.
Dans la version 0.9 du client Bitcoin Core, un compromis a finalement été atteint en utilisant l'opérateur RETURN. **RETURN permet aux développeurs d'ajouter 80 octets de données non liées au paiement à la sortie de la transaction. **Contrairement aux faux paiements, RETURN crée une sortie vérifiable inutilisable de manière indiscutable; de telles données n'ont pas besoin d'être stockées dans un ensemble UTXO. Les sorties RETURN sont enregistrées sur la blockchain. Elles consomment de l'espace disque et font également croître la blockchain en taille, mais comme elles ne sont pas stockées dans la concentration UTXO, elles n'étendent pas le pool de mémoire UTXO, encore moins n'augmentent le coût de mémoire onéreux de l'ensemble du nœud.
Bien que OP_RETURN soit un moyen très direct de stocker des informations sur la blockchain Bitcoin, c'est aussi une méthode d'inscription potentielle. Cependant, les limites d'OP_RETURN le rendent confronté à certains défis lorsqu'il s'agit de stocker des métadonnées. Premièrement, OP_RETURN ne peut stocker que 80 octets de données, et dans les cas où de plus grandes quantités de données doivent être stockées, cette limite est clairement impossible à atteindre. Deuxièmement, les données OP_RETURN sont stockées dans la section de sortie de transaction. Bien que ces données ne soient pas stockées de manière centralisée dans UTXO, elles occupent de l'espace de stockage sur la blockchain, ce qui entraîne une augmentation de la taille de la blockchain. Enfin, l'utilisation d'OP_RETURN entraîne des frais de transaction plus élevés car il faut payer davantage pour poster ces transactions.
En revanche, SegWit propose une nouvelle approche qui peut surmonter ces problèmes. SegWit est une mise à niveau de protocole importante pour Bitcoin. Il a été proposé par le développeur principal de Bitcoin, Pieter Wuille, en 2015 et finalement officiellement adopté dans la version 0.16.0 en 2017. Séparé dans témoin séparé signifie séparation ou isolation, et témoin est une signature liée à une transaction. Par conséquent, SegWit sépare certaines données de signature de transaction (données de témoin) des transactions.
Le principal avantage de séparer les signatures des données liées aux transactions est la réduction de la taille des données stockées dans un bloc Bitcoin. Ainsi, chaque bloc a une capacité supplémentaire pour stocker plus de transactions, ce qui signifie également que le réseau peut traiter davantage de transactions et que l'expéditeur paie des frais de traitement moins élevés. Techniquement, les informations de signature de script (scriptSig) sont extraites de la structure de base (bloc de base) et placées dans une nouvelle structure de données. Les nœuds et les mineurs chargés de la vérification vérifieront également les signatures de script dans cette nouvelle structure de données pour garantir que les transactions sont valides. La mise à niveau Segwit a introduit un nouveau champ de témoin dans la sortie de transaction pour garantir la confidentialité et les performances. Bien que les données de témoin ne soient pas conçues pour le stockage de données, elles nous donnent en fait l'opportunité de stocker des choses comme des métadonnées d'inscription. Utilisons l'image suivante pour mieux comprendre le témoin de quarantaine :
P2TR est un type de sortie de transaction pour Bitcoin. Il a été introduit dans la mise à niveau de Taproot en 2021. Il permet de stocker de manière plus privée différentes conditions de transaction sur la blockchain. Dans l'inscription des Ordinals, P2TR joue un rôle critique. L'inscription intègre essentiellement un contenu de données spécifique dans les transactions Bitcoin, et les mises à niveau de Taproot, en particulier P2TR, ont rendu ces données intégrées plus flexibles et économiques.
Tout d'abord, en raison de la méthode de stockage des scripts Taproot, nous pouvons stocker le contenu de l'inscription dans les scripts de dépense du chemin du script Taproot. Ces scripts n'ont presque aucune restriction sur le contenu et peuvent en même temps bénéficier de réductions sur les données de témoin, ce qui le rend relativement économique pour stocker le contenu de l'inscription. Étant donné que la consommation du script Taproot ne peut être effectuée que depuis la sortie Taproot déjà existante, l'inscription utilise un processus de soumission/divulgation en deux étapes. Tout d'abord, en soumettant une transaction, une sortie Taproot a été créée qui promettait un script contenant le contenu de l'inscription. Ensuite, dans la transaction de révélation, la sortie créée en soumettant la transaction a été consommée, révélant ainsi le contenu de l'inscription sur la chaîne.
Cette approche a considérablement réduit la consommation de ressources. Si P2TR n'est pas utilisé, les informations de témoin sont stockées dans la sortie de la transaction. De cette manière, tant que cette sortie n'est pas consommée, les informations de témoin seront toujours stockées dans le pool UTXO. En revanche, si P2TR est utilisé, les informations de témoin n'apparaîtront pas dans les transactions générées lors de la phase de soumission, elles ne seront donc pas écrites dans l'ensemble UTXO. Ce n'est que lorsque cette UTXO est dépensée que les informations de témoin apparaîtront dans l'entrée de transaction lors de la phase de divulgation. P2TR permet d'écrire des métadonnées dans la blockchain Bitcoin, mais elles n'apparaissent jamais dans l'UTXO. Comme la maintenance/la modification des ensembles UTXO nécessite plus de ressources, cette approche peut économiser des ressources importantes.
Le protocole Ordinals a utilisé SegWit pour assouplir les restrictions de taille sur le contenu écrit sur le réseau Bitcoin, stockant le contenu de l'inscription dans les données de témoin. Cela lui permet de stocker jusqu'à 4 Mo de métadonnées. Taproot facilite le stockage de données de témoin arbitraires dans les transactions Bitcoin, permettant au développeur d'Ordinals Casey Rodarmor de réutiliser d'anciens opcodes (OP_FALSE, OP_IF, OP_PUSH) pour stocker des données arbitraires dans ce qu'il a décrit comme une "enveloppe" appelée une "inscription".
Le processus de coulée d'une inscription se compose des deux étapes suivantes :
Tout d'abord, il est nécessaire de créer une promesse dans la transaction de soumission à la sortie Taproot du script contenant le contenu de l'inscription. Le format de stockage est Taproot, c'est-à-dire que la sortie de la transaction précédente est P2TR (Pay-To-Taproot), et l'entrée de la transaction ultérieure intègre le contenu dans un format spécifique dans le script Taproot témoin ; la chaîne ord est d'abord empilée pour éliminer l'ambiguïté que l'inscription a d'autres utilisations. OP_PUSH 1 indique que la prochaine poussée contient le type de contenu, et OP_PUSH 0 indique que les poussées de données ultérieures incluent le contenu lui-même. Les grandes inscriptions doivent utiliser plusieurs poussées de données car l'une des rares limitations de taproot est qu'une seule poussée de données ne peut pas être plus grande que 520 octets. À ce stade, les données de l'inscription ont été appliquées à la sortie UTXO de la transaction, mais elles n'ont pas été divulguées.
Deuxièmement, il est nécessaire de révéler la sortie créée par la transaction de soumission d'achat dans la transaction. À ce stade, la transaction est initiée en utilisant l'UTXO correspondant à cette inscription comme entrée. À ce stade, le contenu de l'inscription correspondante a été rendu public à l'ensemble du réseau.
Grâce aux deux étapes ci-dessus, le contenu de l'inscription a été lié à l'UTXO gravé. De plus, selon la position de Satoshi décrite ci-dessus, l'inscription est effectuée sur le premier Satoshi correspondant à l'entrée UTXO, et le contenu de l'inscription est inclus dans l'entrée montrant la transaction. Selon l'introduction à la circulation et au suivi de Satoshi décrite ci-dessus, ce Satoshi, qui est gravé avec un contenu spécial, peut être transféré, acheté, vendu, perdu et récupéré. Notez que les inscriptions ne peuvent pas être répétées, sinon les inscriptions ultérieures ne seront pas valides.
Nous expliquerons ce processus en détail en inscrivant un exemple d'une petite image NFT de BTC. Ce processus comprend principalement les deux étapes de soumission (commit) et de divulgation (reveal) mentionnées précédemment. Tout d'abord, nous voyons que l'ID de hachage pour la première transaction est 2ddf9... f585c. On peut noter que la sortie de cette transaction n'incluait pas de données de témoin, et il n'y avait pas d'inscription pertinente sur la page.
Ensuite, examinons le compte rendu de la deuxième étape. L'ID de hash est e7454... 7c0e1. Ici, nous pouvons voir les informations sur l'inscription des ordinaux, c'est-à-dire le contenu de l'inscription du témoin. L'adresse d'entrée pour cette transaction est l'adresse de sortie de la transaction précédente, et la sortie 0,00000546 BTC (546 Satoshi) envoie cet NFT à sa propre adresse. En même temps, nous pouvons également utiliser Sat Find Satoshi où cette inscription est située dans 1893640468329373.
Dans le portefeuille Bitcoin, nous pouvons voir cet actif. Si nous voulons échanger cet NFT, nous pouvons l'envoyer directement à l'adresse de quelqu'un d'autre, c'est-à-dire envoyer cette UTXO, et cela complète la circulation de l'inscription.
Après avoir appris sur l'écosystème des Ordinals, la circulation de Satoshi et les connaissances connexes sur les inscriptions, il existe actuellement de nombreux scénarios d'application. Que ce soit l'émergence d'accords dérivés connexes tels que BRC-20, ORC-20, BRC-721, GBRC-721, etc., nous avons besoin d'un portefeuille correspondant pour prendre en charge et afficher les informations sur les jetons ou de petites images NFT. Dans cette section, nous introduirons les concepts et les caractéristiques des différentes adresses de portefeuille Bitcoin.
Les adresses Bitcoin commencent par 1, 3 ou bc1. Tout comme les adresses e-mail, elles peuvent être partagées avec d'autres utilisateurs de Bitcoin qui peuvent les utiliser pour envoyer des bitcoins directement à leurs portefeuilles. D'un point de vue sécurité, les adresses Bitcoin n'ont aucun contenu sensible. Elles peuvent être publiées n'importe où sans compromettre la sécurité du compte. Contrairement aux adresses e-mail, nous pouvons créer de nouvelles adresses à tout moment, toutes lesquelles déposeront des fonds directement dans votre portefeuille. En fait, de nombreux portefeuilles modernes créent automatiquement une nouvelle adresse pour chaque transaction afin de maximiser la confidentialité. Un portefeuille est simplement une collection d'adresses et de clés pour débloquer les fonds qui s'y trouvent. Tout d'abord, nous devons savoir comment l'adresse du portefeuille Bitcoin est générée.
Bitcoin utilise une courbe elliptique secp256k1. La « clé privée » est un nombre aléatoire compris entre 1 et n-1. n est un grand nombre (256 bits), et n est exprimé en notation scientifique environ 1.15792*10^77. La portée est énorme, et il est presque impossible pour nous de deviner les clés privées des autres. Cette clé privée entière aléatoire peut être utilisée avec 256 bits pour indiquer qu'il existe de nombreuses façons de coder. Si la clé privée utilisant WIF ou WIF-compressed n'est pas chiffrée, le « nombre entier aléatoire » d'origine peut être obtenu par décodage. Une autre méthode est BIP38. Il est proposé d'utiliser l'algorithme AES pour chiffrer la clé privée. La clé privée obtenue par ce schéma commence par le caractère 6P. Cette clé privée doit être importée dans divers portefeuilles Bitcoin. C'est la clé privée que nous utilisons habituellement.
Nous utiliserons ensuite la formule de courbe elliptique K = kG pour générer la clé publique de Bitcoin K à partir de la clé privée k. G est le point de base, qui est un paramètre de secp256k1. Vous pouvez obtenir les deux coordonnées de K, qui sont les deux expressions de la clé publique, respectivement "Format non compressé" et "Format compressé".
Les différents types d'adresses Bitcoin peuvent être vus dans la figure suivante. Il existe quatre façons de les exprimer :
1. Format hérité (P2PKH)
Exemple: 1fh7ajxabjbpzw8bjd3qu4cuq3prty9u
Les adresses commençant par “1” sont le format d'adresse original de Bitcoin et sont encore utilisées aujourd'hui. Obtenues à partir de la clé publique par le calcul de hachage, également connues sous le nom de P2PKH, sont une abréviation de Pay To PubKey Hash (paiement à la clé publique hachée).
2. Format SegWit imbriqué (P2SH)
Exemple: 3kf9nxowq4assgxrrzeitpdjmuwM2nyPan
Les adresses commencent par "3". P2SH est l'abréviation de Pay To Script Hash (Payer à un hachage de script), qui prend en charge des fonctionnalités plus complexes que les adresses Legacy. Le P2SH imbriqué obtient une adresse P2SH existante (commençant par "3") et l'encapsule avec l'adresse SegWit.
3. Format natif SegWit (Bech32)
Les adresses commençant par bc1 ont été proposées dans le BIP0173 ; ce sont des adresses de témoin de quarantaine natives. L'adresse encodée Bech32 est un format d'adresse spécialement développé pour SegWit. Bech32 a été défini dans le BIP173 à la fin de 2017. L'une des principales caractéristiques de ce format est qu'il n'est pas sensible à la casse (l'adresse ne contient que 0-9, az), ce qui permet d'éviter efficacement les confusions et rend l'entrée plus facile à lire. Comme moins de caractères sont nécessaires dans l'adresse, l'adresse utilise un encodage Base32 au lieu du traditionnel Base58, ce qui est plus pratique et plus efficace à calculer. Les données peuvent être stockées plus serrées dans un code QR. Bech32 offre une sécurité accrue, optimise mieux les codes de vérification et de détection d'erreurs, et minimise les risques d'adresses invalides.
L'adresse Bech32 elle-même est compatible SegWit. Aucun espace supplémentaire n'est nécessaire pour mettre l'adresse SegWit dans l'adresse P2SH, donc en utilisant une adresse au format Bech32, les frais de traitement seront plus bas. Les adresses Bech32 présentent plusieurs avantages par rapport aux anciennes adresses Base58 (le codage Base58Check est utilisé pour encoder des tableaux d'octets en Bitcoin en chaînes encodables par l'homme) : les codes QR sont plus petits ; ils sont plus fiables en cas d'erreur ; ils sont plus sécurisés ; ils ne sont pas sensibles à la casse ; ils sont uniquement composés de lettres minuscules, ce qui les rend plus faciles à lire, à taper et à comprendre.
4. Format Taproot (P2TR)
Bech32 a un inconvénient : si le dernier caractère de l'adresse est p, insérer ou supprimer un nombre quelconque de caractères q immédiatement avant p n'invalidera pas son checksum.
Pour pallier aux lacunes susmentionnées de Bech32, l'adresse Bech32M a été proposée dans BIP0350 :
Pour les adresses Bech32M, lorsque la version est 1, elles commencent toujours par bc1p (c'est-à-dire une adresse Taproot). Plus précisément, comme un témoin de mise en quarantaine local, un portefeuille peut se composer d'une phrase de récupération et d'une phrase secrète. Celles-ci sont utilisées pour générer des clés publiques et privées étendues, et sont utilisées pour dériver des adresses pour des chemins arbitraires dans des portefeuilles déterministes hiérarchiques. Principalement des NFT qui stockent BRC-20 et BTC.
Spectrum Labs est une équipe de maîtres et de doctorants spécialisés dans la recherche en blockchain, ainsi que des vétérans de l'industrie de la blockchain. Nous nous engageons dans la technologie de chaîne de recherche en blockchain et ses applications pour aider les gens à mieux comprendre la blockchain. Les activités principales de Spectrum Labs comprennent la rédaction de rapports de recherche, la rédaction de cours et le développement d'outils.
La communauté chinoise BTC NFT est une plateforme d'échange chinoise de jetons BTC NFT pour les nouveaux venus chinois du monde entier.