Un article qui vous permet d'approfondir les protocoles Arc-20 et Brc-20

IntermédiaireFeb 01, 2024
Cet article aborde les détails, les avantages et les inconvénients des deux protocoles d'un point de vue technique.
Un article qui vous permet d'approfondir les protocoles Arc-20 et Brc-20

Introduction

Récemment, l'introduction du protocole Arc-20 a de nouveau déclenché une frénésie sur le marché de l'inscription. Cet article se penche sur les détails, les avantages et les inconvénients des deux protocoles d'un point de vue technique.

Pourquoi existe-t-il des Brc-20 et des Arc-20 ?

Le bitcoin a été conçu à l'origine pour être une monnaie numérique décentralisée sûre, stable et fiable. Cependant, en raison de son architecture technique et de son langage de script relativement moins flexible que celui d'Ethereum, Bitcoin n'est pas adapté à l'exécution directe de contrats intelligents.

Malgré cela, les idées novatrices et les tentatives audacieuses des développeurs ont apporté la prospérité à l'écosystème Bitcoin. Le protocole Brc-20 en est un exemple typique. L'idée centrale du protocole est une forme expérimentale de jeton, centrée sur les mèmes. N'importe qui peut frapper ces jetons directement sur la chaîne Bitcoin, selon le principe du premier arrivé, premier servi, sans s'appuyer sur des contrats intelligents. La caractéristique principale du jeton Brc-20 est sa nature décentralisée, qui élimine les mécanismes tels que les ventes privées, les préventes et le déblocage ou le jalonnement. Cela garantit un engagement véritablement décentralisé.

Dans ce contexte, le protocole Arc-20 a de nouveau suscité un vif intérêt pour les inscriptions.

Qu'est-ce que le modèle UTXO ?

Les protocoles Brc-20 et Arc-20 sont tous deux basés sur la chaîne Btc. Avant de présenter officiellement le protocole Arc-20 et le protocole Brc-20, nous allons brièvement comprendre ce qu'est l'UTXO (unspent transaction output).

En ce qui concerne le bitcoin, le modèle UTXO (unspent transaction output) est un concept important. Il s'agit d'un type de modèle de compte utilisé par Bitcoin, qui est différent des modèles de solde traditionnels tels que les comptes bancaires.

Dans le modèle UTXO, chaque transaction en bitcoins crée une série de sorties non dépensées, chaque sortie représentant une certaine quantité de bitcoins. Ces produits non dépensés sont essentiellement des unités inutilisées de monnaie numérique, semblables à des billets ou des pièces de monnaie en papier. Lorsque vous recevez des bitcoins, quelqu'un a en fait créé une nouvelle sortie non dépensée qui est associée à votre adresse bitcoin. Cette sortie est l'UTXO.

Expliquons le modèle UTXO à l'aide d'un exemple simple :

Si vous avez deux transactions, l'une recevant 0,7 BTC et l'autre 0,5 BTC, vous aurez deux UTXO, l'une valant 0,7 BTC et l'autre 0,5 BTC. Lorsque vous voulez payer 1 BTC, vous ne pouvez pas simplement utiliser un UTXO, mais vous devez fusionner les deux UTXO en un nouvel UTXO (avec un total de 1,2 BTC), puis envoyer 1 BTC au destinataire, les 0,2 BTC restants vous étant rendus sous forme de monnaie. Cependant, le changement réel peut être inférieur à 0,2 BTC car les utilisateurs doivent payer des frais de transaction aux mineurs pour assurer le bon déroulement de la transaction.

Protocole Brc-20 Mise en œuvre technique

BRC-20 est une norme expérimentale qui démontre la possibilité de créer des jetons fongibles sur la couche 1 de Bitcoin en s'appuyant sur la théorie ordinale et les inscriptions. Le protocole Ordinals (le premier jeton frappé selon les normes du protocole) permet d'imprimer du contenu, notamment du texte, des images ou des vidéos, sur la plus petite unité de Bitcoin, Satoshi, et de créer ainsi des actifs numériques uniques.

La théorie ordinale est la clé de la mise en œuvre des inscriptions sur le réseau BTC.

Chaque Satoshi est essentiellement le même, et les Ordinaux ont développé un protocole d'ordonnancement des Satoshi par le biais de la théorie narrative. Cet ordre est basé sur l'exploitation des Satoshis et sur l'ordre de leurs transactions d'entrée et de sortie.

Il existe plusieurs façons de représenter les nombres ordinaux :

  • Notation en nombres entiers : 2099994106992659 est un nombre ordinal attribué en fonction de l'ordre dans lequel les Satoshi sont extraits.
  • Notation décimale : 3891094.16797 Le premier nombre est la hauteur du bloc où Satoshi a été extrait, et le deuxième nombre est le décalage de Satoshi dans le bloc.
  • Notation du degré : 3°111094′214″16797‴. Nous y reviendrons plus tard.
  • Notation du percentile : 99.99971949060254%. Indique la position du Satoshi dans l'offre de Bitcoin, exprimée en pourcentage.

L'expression du degré contient quatre parties : A°B′C″D‴, et A, B, C et D représentent des significations différentes :

  • A : Période, numérotée à partir de 0. (Cycle périodique : Tous les six mi-temps, il se passe quelque chose de magique : la réduction de moitié et l'ajustement de la difficulté se produisent en même temps. C'est ce que l'on appelle la conjonction. La période de temps entre les conjonctions est un cycle. Cela se produira environ une fois tous les 24 ans. La première conjonction devrait avoir lieu en 2032.)
  • Indice de bloc à l'époque de la réduction de moitié.
  • Index des blocs lors de l'ajustement de la difficulté.
  • Index des Satoshi dans le bloc.

La théorie narrative détermine l'ordre d'un Satoshi par l'expression du degré, et définit différents niveaux de rareté pour chaque Satoshi par l'ordre, réalisant ainsi l'unicité de chaque Satoshi.

  • Commun : tout Satoshi qui n'est pas le premier dans le bloc.
  • Peu commun : le premier Satoshi de chaque bloc.
  • Rare : Le premier satoshi de chaque cycle d'ajustement de la difficulté.
  • Épique : Le premier satoshi de chaque époque de division par deux.
  • Légendaire : Le premier satoshi de chaque cycle.
  • Mythe : Le premier Satoshi dans le bloc de genèse.

par exemple, un degré existant est exprimé par 1°1′0″0‴,

  • 1° : représente le deuxième cycle
  • 1′ : représente le premier bloc qui n'est pas le cycle de division en deux
  • 0″ : représente le premier bloc d'ajustement de la difficulté
  • 0‴ : représente le premier satoshi du bloc

Avec la définition de la rareté ci-dessus, ce Satoshi est défini comme un stoshi rare.

Le processus général est le suivant :

Comment est-elle mise en œuvre dans le code des Ordinales ?

py# Calculez la narration (récompense) d'un bloc en fonction de sa hauteur.

def subsidy(height) :

return 50*100_000_000 >> height // 210_000

Cette fonction est utilisée pour calculer la récompense d'un bloc de bitcoins d'une hauteur donnée, où 50*100_000_000 est la récompense de départ du bitcoin, >> est l'opérateur de décalage vers la droite, équivalent à la division par 2 divisions entières. Cette fonction renvoie un nombre entier représentant le montant de la récompense pour un bloc à une hauteur donnée.

Calculez le numéro ordinal de la première récompense pour un bloc d'une hauteur donnée.

def first_ordinal(height) :

début = 0

pour h dans l'intervalle (hauteur) :

start += subsidy(h)

Retourner le début

Cette fonction calcule le numéro ordinal de la première récompense pour un bloc à une hauteur donnée. Calculez le nombre total de récompenses à partir du premier bloc jusqu'à une hauteur donnée en itérant à travers les hauteurs et en accumulant les récompenses pour chaque bloc, ce qui donne le numéro ordinal de la première récompense.

Attribuer un numéro ordinal à un bloc donné

def assign_ordinals(block) :

first = first_ordinal(block.height)

last = first + subsidy(block.height)

coordonnées coinbase =list(range(first, last))

Attribuer un numéro ordinal à un bloc donné

def assign_ordinals(block) :

first = first_ordinal(block.height)

last = first + subsidy(block.height)

coordonnées coinbase =list(range(first, last))

pour transaction dans block.transactions[1 :]:

ordinaux = []

pour input dans transaction.inputs :

 ordinals.extend(input.ordinals)

pour output dans transaction.outputs :

 output.ordinals = ordinals[:output.value]

 des ordinals[:output.value]

coinbase_ordinals.extend(ordinals)

pour output dans block.transactions[0].outputs :

output.ordinals = coinbase_ordinals[:output.value]

de la valeur de coinbase_ordinales[:output.value]

Cette fonction permet d'attribuer un numéro d'ordre à un bloc de bitcoins donné. Il calcule d'abord l'intervalle ordinal de la première et de la dernière récompense du bloc. Ensuite, il passe en revue chaque transaction du bloc, en attribuant un numéro ordinal à chaque sortie. Enfin, les résultats de la transaction se voient attribuer des numéros ordinaux afin de garantir que tous les satoshis de l'ensemble du bloc ont des numéros ordinaux uniques.

En bref, grâce à la théorie ordinale, les originaux rendent chaque Satoshi essentiellement le même unique grâce au traitement, et définissent une familiarité rare pour chaque Satoshi grâce aux règles, en réalisant les attributs de la collection ou en formulant des règles pour s'adapter au jeu.

Cas d'utilisation

  • Intéressant : Des protocoles uniques et intéressants apporteront à nouveau la prospérité à l'écosystème Bitcoin.
  • Émission d'actifs : Les jetons BRC-20 peuvent servir de représentations numériques d'actifs, d'actions ou d'autres entités fongibles. Il peut s'agir de stablecoins, de jetons utilitaires ou de jetons basés sur des mèmes.
  • Intégration dApp : Les développeurs peuvent intégrer les jetons BRC-20 dans des applications décentralisées qui utilisent le réseau Bitcoin. Leurs applications vont de la génération de revenus et de prêts garantis à la constitution de fonds propres.
  • Tokenisation des actifs : La norme brc-20 facilite la tokenisation de n'importe quel actif ou intérêt, ce qui ouvre de nombreuses possibilités telles que les communautés basées sur les jetons ou le vote DAO.
  • Mécanisme d'échange : les jetons brc-20 peuvent être facilement échangés et négociés sur la première couche du réseau Bitcoin par le biais de diverses plateformes. Bien qu'ils soient actuellement accessibles via le carnet d'ordres, des projets visant à les intégrer dans des bourses de liquidités ont récemment fait surface.

Arc-20 Mise en œuvre technique

Le protocole Atomicals est un protocole simple et flexible pour frapper, transférer et mettre à jour des objets numériques (traditionnellement connus sous le nom de jetons non fongibles) sur une blockchain avec des sorties de transaction non dépensées (UTXO) comme Bitcoin. Un Atomical (ou "atome") est un moyen de gérer la création, le transfert et la mise à jour d'objets numériques - essentiellement une chaîne de propriété numérique définie par quelques règles simples.

Arc-20 adopte le modèle des pièces colorées, ce qui signifie qu'un jeton Arc-20 doit avoir un support satoshi, contrairement aux jetons Brc-20 qui sont différenciés par la commande. Comme les jetons Arc-20 sont entièrement basés sur des satoshis, ils peuvent être divisés et fusionnés (comme les UTXO mentionnés au début de l'article) et peuvent être directement transférés sur le réseau Bitcoin.

Par exemple, en utilisant le protocole Atomicals, nous pouvons définir 100 satoshis comme 100 "tickets de cinéma", et les utilisateurs peuvent utiliser un de ces 100 satoshis pour payer dans un cinéma qui supporte le protocole Atomicals, agissant comme un ticket de cinéma.

Cependant, les mineurs et le réseau Bitcoin ne peuvent pas savoir quels UTXO ont été "Atomicalisés", ce qui peut les amener à considérer à tort les jetons Arc-20 comme des frais de minage. Pour résoudre ce problème, Atomicals demande que chaque jeton Arc-20 soit la première sortie d'une transaction afin d'éviter la destruction accidentelle du jeton.

Cas d'utilisation

  • Objets de collection numériques, médias et art
  • Identité numérique, authentification et contenu du token gating.
  • Hébergement web et stockage de fichiers
  • Échanges point à point et échanges atomiques
  • Attribution d'un espace de noms numériques
  • Enregistrement virtuel des terrains et des titres de propriété
  • Objets et états dynamiques dans le jeu
  • Profils, messages et communautés dans les médias sociaux
  • La sécurité en tout lieu et la décentralisation sont des questions clés. Avec des exigences de sécurité et de vérification de niveau militaire.

Brc-20 vs Arc-20

Ensuite, nous analyserons et comparerons les similitudes et les différences entre les deux protocoles.

Brc-20

L'accord se divise grosso modo en trois étapes

  1. Le déployeur doit écrire les informations pertinentes du jeton dans la chaîne BTC conformément au format du protocole.

{

"p" : "brc-20",

"on" : "déployer",

"tick" : "ordi",

"max" : "21000000",

"lim" : "1000"

}

  1. L'indexeur lit les données relatives aux jetons de la chaîne.
  2. Le grand livre hors chaîne enregistre les soldes de jetons et traite les transferts.

Étant donné que les informations relatives au jeton ne peuvent pas être reconnues par la CTB lorsque le déployeur déploie le jeton, un indexeur est nécessaire pour obtenir les données pertinentes sur la chaîne et les utiliser pour créer un grand livre hors de la chaîne afin d'enregistrer l'historique et le processus liés à l'exploitation et d'effectuer des mises à jour de données.

L'indexeur hors chaîne doit capturer et mettre à jour avec précision le grand livre hors ligne pour chaque opération de jeton. Toutefois, à l'instar de la blockchain, les données stockées par les nœuds deviennent de plus en plus volumineuses à mesure que le nombre de transactions augmente. Garantir l'intégrité du grand livre et trouver l'information qui doit être modifiée dans l'immense quantité de données deviendra un défi pour le CRB-20.

Arc-20

De même, le protocole Arc-20 doit également enregistrer les informations pertinentes conformément au format de la chaîne BTC lors du déploiement des jetons.

program.command('init-dft')

.description('Initialize fungible token (FT) atomical in decentralized issuance mode')

.argument('<ticker>', 'string')

.argument('<mint_amount>', 'number')

.argument('<max_mints>', 'number')

.argument('<mint_height>', 'number')

.argument('<file> ', 'string')

.option('-rbf', 'Activer ou non la fonction RBF pour les transactions.')

.option('-funding <string>', 'Use wallet alias wif key to be used for funding and change')

.option('-satsbyte <number>', 'Satoshis per byte in fees', '15')

.option('-mintbitworkc <string>', 'Exiger ou non une preuve de travail bitwork pour frapper la monnaie. S'applique à la transaction de validation.)

.option('-mintbitworkr <string>', 'Exiger ou non une preuve de travail bitwork pour frapper la monnaie. S'applique à la transaction de révélation.)

.option('-bitworkc <string>', 'S'il faut mettre une preuve de travail bitwork dans le token mint. S'applique à la transaction de validation.)

.option('-bitworkr <string>', 'S'il faut mettre une preuve de travail bitwork dans le token mint. S'applique à la transaction de révélation.)

.option('-parent <string>', 'Exiger ou non qu'un atome parent soit dépensé en même temps que la menthe.')

.option('-parentowner <string>', 'Portefeuille du propriétaire du parent à dépenser en même temps que la monnaie.')

.option('-disablechalk', 'Désactiver ou non l'enregistrement en temps réel de chaque hachage pour l'exploitation minière Bitwork. Amélioration de la performance minière pour activer ce drapeau")

.action(async (ticker, mintAmount, maxMints, mintHeight, file, options) => {

.....

}

Dans le code source du cli atomicals-js, vous trouverez les instructions pour initialiser un jeton. Les paramètres qui doivent être enregistrés sur la chaîne sont les suivants :

ticker : nom du jeton

mint_amount : quantité totale de menthe

max_mints : le nombre de monnaies en une seule fois

mint_height : spécifie la hauteur du bloc pour démarrer le mint

fichier : métadonnées connexes

Mais contrairement à Brc20, Arc20 adopte un modèle de monnaie colorée. Une fois que les informations relatives au jeton sont entrées dans la chaîne BTC, le protocole ancrera le jeton avec des Sats:1 jeton = 1 sat。

Dans le même temps, l'utilisation du modèle de monnaie colorée permet aux utilisateurs d'effectuer des transactions directement via le réseau BTC au lieu des grands livres hors chaîne. Comme le solde du jeton est cohérent avec les satoshis dans UTXO, les changements liés au jeton peuvent être reflétés intuitivement sur la chaîne. . L'indexeur d'Arc-20 n'est utilisé que pour lire les informations de déploiement des jetons de la chaîne et vérifier quels jetons sont conformes au protocole Arc-20.

Conclusion

La structure de conception de Brc-20 repose davantage sur des grands livres hors chaîne, tandis qu'Arc-20 est plus conforme aux caractéristiques de la Btc et est plus décentralisé que Brc-20. Cependant, le modèle des pièces colorées empêche Arc-20 de mener à bien l'émission de mèmes pièces, car les mèmes pièces ont souvent une offre totale de jetons élevée, et la caractéristique 1 jeton = 1 sat exige qu'une grande quantité de Btc soit consommée lors de l'émission de mèmes pièces.

auteur :<a href="https://twitter.com/YanAemons"" > @YanAemons

Clause de non-responsabilité:

  1. Cet article est repris de [medium]. Tous les droits d'auteur appartiennent à l'auteur original[@YanAemons]. Si vous avez des objections à cette réimpression, veuillez contacter l'équipe de Gate Learn, qui s'en chargera rapidement.
  2. Clause de non-responsabilité : Les points de vue et les opinions exprimés dans cet article sont uniquement ceux de l'auteur et ne constituent pas un conseil en investissement.
  3. Les traductions de l'article dans d'autres langues sont effectuées par l'équipe de Gate Learn. Sauf mention contraire, il est interdit de copier, distribuer ou plagier les articles traduits.
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!
立即註冊