Arc-20 と Brc-20 のプロトコルについて深く掘り下げた記事

中級Feb 01, 2024
この記事では、技術的な観点から、2つのプロトコルの詳細、長所と短所について説明します。
Arc-20 と Brc-20 のプロトコルについて深く掘り下げた記事

紹介

最近、Arc-20プロトコルの導入により、碑文市場は再び熱狂的な動きを見せています。 この記事では、技術的な観点から、2つのプロトコルの詳細と長所と短所を掘り下げます。

なぜBrc-20とArc-20があるのですか?

ビットコインはもともと、安全で安定した信頼性の高い分散型デジタル通貨として設計されました。 ただし、その技術アーキテクチャとイーサリアムと比較して比較的柔軟性の低いスクリプト言語のため、ビットコインはスマートコントラクトを直接実行するのには適していません。

それにもかかわらず、開発者の革新的なアイデアと大胆な試みは、ビットコインエコシステムに繁栄をもたらしました。 典型的な例の 1 つは、Brc-20 プロトコルです。 プロトコルの核となるアイデアは、ミームを中心とした実験的なトークン形式です。 誰でもスマートコントラクトに頼ることなく、先着順でビットコインチェーン上でこれらのトークンを直接鋳造できます。 Brc-20トークンの主な特徴は、プライベートセール、プレセール、ロック解除やステーキングなどのメカニズムを排除する分散型の性質です。 これにより、真に分散化されたエンゲージメントが保証されます。

これに関連して、Arc-20プロトコルは碑文への強い関心を再び呼び起こしました。

UTXOモデルとは?

Brc-20 プロトコルと Arc-20 プロトコルはどちらも Btc チェーンに基づいているため、Arc-20 プロトコルと Brc-20 プロトコルを正式に導入する前に、UTXO (未使用トランザクション出力) について簡単に理解しておきましょう。

ビットコインについて話すとき、UTXO(未使用トランザクション出力)モデルは重要な設計概念です。 これは、ビットコインで使用されるアカウントモデルの一種であり、銀行口座などの従来の残高モデルとは異なります。

UTXOモデルでは、すべてのビットコイントランザクションが一連の未使用のアウトプットを作成し、各アウトプットは一定量のビットコインを表します。 これらの未使用のアウトプットは、紙幣や硬貨と同様に、基本的にデジタル通貨の未使用の単位です。 あなたがビットコインを受け取るとき、誰かが実際にあなたのビットコインアドレスに関連付けられた新しい未使用のアウトプットを作成しました。 この出力はUTXO.

UTXOモデルについて、簡単な例を挙げて説明しましょう。

0.7BTCと0.5BTCの2つのトランザクションがある場合、0.7BTCと0.5BTCの2つのUTXOを持つことになります。 1BTCを支払いたい場合、1つのUTXOを単純に使うのではなく、2つのUTXOを新しいUTXO(合計1.2BTC)に統合し、1BTCを受取人に送り、残りの0.2BTCをおつりとして自分に返す必要があります。 ただし、取引の円滑な運用を確保するために、ユーザーはマイナーに取引手数料を支払う必要があるため、実際の変化は0.2BTC未満になる可能性があります。

Brc-20 プロトコルの技術的な実装

BRC-20は、順序理論と碑文を活用することにより、ビットコインのレイヤー1で代替可能なトークンを作成する可能性を実証する実験的標準です。 Ordinalsプロトコル(プロトコルの標準で鋳造された最初のトークン)を使用すると、テキスト、画像、ビデオなどのコンテンツをビットコインの最小単位であるサトシに刻印できるため、独自のデジタル資産を作成できます。

順序理論は、BTCネットワークに碑文を実装するための鍵です。

それぞれのサトシは本質的に同じであり、オーディナルは物語理論を通じてサトシの秩序プロトコルを開発しました。 この順序付けは、サトシのマイニングと、そのトランザクションのインプットとアウトプットの順序に基づいています。

序数を表すには、いくつかの方法があります。

  • 整数表記:2099994106992659は、サトシが採掘された順序に従って割り当てられる序数です。
  • 10進表記:3891094.16797 最初の数字はサトシが採掘されたブロックの高さで、2番目の数字はブロック内のサトシのオフセットです。
  • 度表記:3°111094′214"16797'''。 これについては後で説明します。
  • パーセンタイル表記:99.99971949060254%。 ビットコインサプライにおけるサトシの位置をパーセンテージで示します。

次数式には、A°B'C"D'''、A、B、C、D の 4 つの部分があり、異なる意味を表します。

  • A: ピリオド、0 から始まる番号。(周期サイクル:6つの半減ごとに魔法のようなことが起こります:半減と難易度の調整が同時に起こります。 これがいわゆる接続詞です。 接続詞間の期間はサイクルです。 だいたい24年に1回くらいの確率で起こる。 コンジャンクション、最初のコンジャンクションは2032年のいつか起こるはずです。
  • 半減期のブロックインデックス。
  • 難易度調整中のブロックインデックス。
  • ブロック内のサトシのインデックス。

ナラティヴ理論は、度数表現によってサトシの序列を決定し、その順番によってサトシごとに異なる希少性レベルを定義することで、それぞれのサトシの独自性を実現しています

  • コモン:ブロック内の先攻以外のサトシ。
  • アンコモン:各ブロックの最初のサトシ。
  • レア:各難易度調整サイクルの最初のサトシ。
  • エピック:各半減期の最初のサトシ。
  • レジェンダリー:各サイクルの最初のサトシ。
  • 俗説:ジェネシス・ブロックの最初のサトシ。

たとえば、既存の次数は 1°1′0"0''' と表されます。

  • 1°:2番目のサイクルを表します
  • 1′:半減期ではない最初のブロックを表します。
  • 0":難易度調整の最初のブロックを表します
  • 0''': ブロックの最初のサトシを表します。

上記のレアリティの定義により、このサトシはレアストシと定義されています。

一般的なプロセスは次のとおりです。

序数のコードでどのように実装されますか?

py# 高さが与えられたブロックの物語(報酬)を計算する

DEF助成金(身長):

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

この関数は、50*100_000_000がビットコインの開始報酬>>、右シフト演算子であり、2つの整数除算で割ることに相当する、特定の高さのビットコインブロックの報酬を計算するために使用されます。 この関数は、指定された高さのブロックの報酬額を表す整数を返します。

指定された高さのブロックの最初の報酬の序数を計算します

def first_ordinal(高さ):

開始 = 0

範囲 (高さ) の h の場合:

スタート+=補助金(H)

スタートを返す

この関数は、指定された高さのブロックの最初の報酬の序数を計算します。 最初のブロックから特定の高さまでの報酬の総数を、高さを反復して各ブロックの報酬を累積することで計算し、最初の報酬の序数を求めます。

指定されたブロックに序数を割り当てる

def assign_ordinals(ブロック):

最初 = first_ordinal(block.height)

last = first + 補助金(block.height)

coinbase_ordinals =list(範囲(最初, 最後))

指定されたブロックに序数を割り当てる

def assign_ordinals(ブロック):

最初 = first_ordinal(block.height)

last = first + 補助金(block.height)

coinbase_ordinals =list(範囲(最初, 最後))

block.transactions[1:]のトランザクションの場合:

序数 = []

transaction.inputs の入力の場合:

 ordinals.extend(input.ordinals)

transaction.outputs の出力の場合:

 output.ordinals = ordinals[:output.value]

序数[:output.value]

coinbase_ordinals.extend(序数)

block.transactions[0].outputs の出力の場合:

output.ordinals = coinbase_ordinals[:output.value]

coinbase_ordinals[:output.value]の

この関数は、特定のビットコインブロックに序数を割り当てるために使用されます。 まず、ブロックの最初と最後の報酬の序数範囲を計算します。 次に、ブロック内の各トランザクションを反復処理し、各出力に序数を割り当てます。 最後に、トランザクションのアウトプットには序数が割り当てられ、ブロック全体のすべてのサトシが一意の序数を持つようになります。

要するに、オーディナル理論では、オリジナルは加工によって本質的に同じサトシをユニークにし、ルールによって各サトシの希少な親しみやすさを定義し、コレクション属性を実現したり、ゲームプレイに合ったルールを策定したりします。

ユースケース

  • 興味深い:ユニークで興味深いプロトコルは、ビットコインエコシステムに再び繁栄をもたらします。
  • 資産の発行:BRC-20トークンは、資産、株式、またはその他の代替可能なエンティティのデジタル表現として機能します。 これらは、ステーブルコイン、ユーティリティトークン、またはミームベースのトークンです。
  • dApp統合:開発者は、BRC-20トークンをビットコインネットワークを利用する分散型アプリケーションに統合できます。 その用途は、収入の創出や担保付きローンから株式のステーキングまで多岐にわたります。
  • 資産のトークン化:brc-20規格は、あらゆる資産や利益のトークン化を容易にし、トークンベースのコミュニティやDAO投票など、多くの可能性を開きます。
  • 交換メカニズム:brc-20トークンは、さまざまなプラットフォームを介してビットコインネットワークの最初のレイヤーで便利に交換および取引できます。 現在はオーダーブックからアクセスできますが、最近、流動性プール取引所に統合する計画が浮上しています。

Arc-20 技術的な実装

Atomicalsプロトコルは、ビットコインなどの未使用のトランザクションアウトプット(UTXO)を使用してブロックチェーン上のデジタルオブジェクト(伝統的に非代替性トークンとして知られていました)を鋳造、転送、および更新するためのシンプルで柔軟なプロトコルです。 アトミカル(または「アトム」)は、デジタルオブジェクトの作成、転送、更新を管理する方法であり、基本的にはいくつかの単純なルールによって定義されるデジタル所有権チェーンです。

Arc-20はカラーコインモデルを採用しているため、順序で区別されるBrc-20トークンとは異なり、Arc-20トークンにはサトシのサポートが必要です。 Arc-20トークンは完全にサトシに基づいているため、分割およびマージ(記事の冒頭で述べたUTXOと同様)が可能で、ビットコインネットワークを介して直接転送できます。

例えば、Atomicalsプロトコルでは、100サトシを100枚の「映画チケット」と定義し、ユーザーはこの100サトシのうちの1枚を使って、Atomicalsプロトコルに対応した映画館で支払いを行い、映画のチケットとして機能させることができます。

ただし、マイナーとビットコインネットワークは、どのUTXOが「アトミック化」されているかを知ることができないため、Arc-20トークンをマイナー手数料と誤ってみなす可能性があります。 この問題を解決するために、Atomicalsは、偶発的なトークンの破壊を避けるために、各Arc-20トークンをトランザクションの最初の出力にするように指示しています。

ユースケース

  • デジタルコレクティブル、メディア、アート
  • デジタル ID、認証、トークン ゲーティング コンテンツ。
  • ウェブホスティングとファイルストレージ
  • ポイント・ツー・ポイント・スワップとアトミック・スワップ
  • 数値名前空間の割り当て
  • 仮想の土地と所有権の登録
  • ゲーム内の動的オブジェクトと状態
  • ソーシャルメディアのプロフィール、投稿、コミュニティ
  • どこでも、セキュリティと分散化が重要な問題です。 ミリタリーグレードのセキュリティと検証要件を備えています。

BRC-20 対 Arc-20

次に、2つのプロトコルの類似点と相違点を分析して比較します。

BRC-20

契約は大きく3つのステップに分かれています

  1. デプロイヤーは、プロトコル形式に従って、トークンの関連情報をBTCチェーンに書き込む必要があります。

{

"p": "BRC-20"、

"on": "デプロイ",

"tick": "オルディ",

"最大": "21000000"、

"lim": "1000"

}

  1. インデクサーは、チェーン上のトークンに関連するデータを読み取ります
  2. オフチェーン台帳は、トークンの関連する残高を記録し、転送を処理します

デプロイヤーがトークンをデプロイする際には、BTCはトークン情報自体を認識できないため、インデクサーは、チェーン上の関連データを取得し、このデータを使用して、関連する履歴を記録し、関連するデータ更新を処理するために、チェーン外に台帳を作成する必要がある。

オフチェーンインデクサーは、トークン操作ごとにオフライン台帳を正確にキャプチャして更新する必要があります。 しかし、ブロックチェーンと同様に、トランザクション数が増えるにつれて、ノードによって保存されるデータはどんどん大きくなります。 台帳の整合性を確保し、膨大な量のデータの中から変更が必要な情報を見つけることがBRC-20の課題になります。

アーク-20

同様に、Arc-20プロトコルも、トークンをデプロイする際に、BTCチェーンのフォーマットに従って関連情報を記録する必要があります。

program.command('init-dft')

.description('分散型発行モードで代替性トークン(FT)をアトミックに初期化する')

.argument('<ticker> ', '文字列')

.argument('<mint_amount>', '数値')

.argument('<max_mints>', '数値')

.argument('<mint_height>', '数値')

.argument('<file> ', '文字列')

.option('—rbf', 'トランザクションに対して RBF を有効にするかどうか')

.option('—資金調達<string> ', '資金調達と変更に使用するウォレットエイリアスwifキーを使用')

.option('—satsbyte <number>', '手数料のバイトあたりのサトシ', '15')

.option('—mintbitworkc <string>', 'bitwork のプルーフ オブ ワークをミントに要求するかどうか。 コミット トランザクションに適用されます。

.option('—mintbitworkr <string>', 'bitworkのプルーフオブワークをミントに要求するかどうか。 公開トランザクションに適用されます。

.option('—bitworkc <string>', 'ビットワークのプルーフ・オブ・ワークをトークンミントに入れるかどうか。 コミット トランザクションに適用されます。

.option('—bitworkr <string>', 'ビットワークのプルーフ・オブ・ワークをトークンミントに入れるかどうか。 公開トランザクションに適用されます。

.option('—親<string> ', '親アトミックをミントと一緒に使う必要があるかどうか')

.option('—parentowner <string>', 'ミントと一緒に使う親のウォレット所有者')

.option('—disablechalk', 'Bitworkマイニングの各ハッシュのリアルタイムチョークロギングを無効にするかどうか。 このフラグを設定するためのマイニングパフォーマンスを改善します')

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

.....

}

atomicals-js cli ソースコードには、トークンを初期化するための手順があります。チェーンに記録する必要があるパラメータは次のとおりです。

ticker: トークン名

mint_amount:ミントの総量

max_mints:1回のミント数

mint_height:ミントを開始するブロックの高さを指定します

ファイル: 関連メタデータ

しかし、Brc20とは異なり、Arc20は色付き通貨モデルを採用しています。 トークン関連の情報がBTCチェーンに入力された後、プロトコルはトークンをSats:1 token = 1 satで固定します。

同時に、色付き通貨モデルを使用することで、ユーザーはオフチェーン台帳ではなく、BTCネットワークを介して直接取引を行うことができます。 トークンの残高はUTXOのサトシと一致しているため、トークンに関連する変化を直感的にチェーンに反映することができます。. Arc-20 のインデクサーは、チェーン上のトークンの関連するデプロイ情報を読み取り、どのトークンが Arc-20 プロトコルに準拠しているかを確認するためにのみ使用されます。

結論

Brc-20の設計構造はオフチェーン台帳に大きく依存していますが、Arc-20はBtcの特性により合っており、Brc-20と比較して分散化されています。 しかし、カラーコインモデルでは、ミームコインはトークンの総供給量が多いことが多く、1トークン=1サットという特徴から、ミームコインを発行する際に大量のBTCを消費する必要があるため、Arc-20はミームコインの発行を完了できません。

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

免責事項:

  1. この記事は[medium]からの転載です。 すべての著作権は原著作者に帰属します [@YanAemons]。 この転載に異議がある場合は、 Gate Learn チームに連絡していただければ、迅速に対応いたします。
  2. 免責事項:この記事で表明された見解や意見は、著者のものであり、投資アドバイスを構成するものではありません。
  3. 記事の他言語への翻訳は、Gate Learnチームによって行われます。 特に明記されていない限り、翻訳された記事を複製、配布、盗用することは禁止されています。
今すぐ始める
登録して、
$100
のボーナスを獲得しよう!
アカウント作成