ブロックチェーン/レベル V · レイヤー/5.3 ビットコインネイティブ資産/レッスン 4
BRC-20とメタプロトコル
コンセンサスに無視されるデータ層、そしてそれに意味を与えるインデックサー
用意するものウィットネスデータを確認できるビットコインのフルノードまたはブロックエクスプローラーへのアクセス複数のBRC-20トークンについてインデクサーの状態を追跡するためのスプレッドシートDomoによるオリジナルのBRC-20ドキュメント(domo-2.gitbook.io)RunesまたはOrdinalsに対応したブロックエクスプローラー
問い
- トークン規格が、ビットコイン自身のコンセンサスではなく第三者のサーバーに残高の追跡を頼ると、何が起こるのか?
- 2023年春、小さなトークンをミントしようとする殺到は、どのようにメンプールを詰まらせたのか?
- 何百万もの小さなアウトプットが作られることは、なぜUTXOセットの長期的な健全性にとって特有の脅威となるのか?
探究
- ビットコインのプロトコルは、トランザクションに埋め込まれたデータの意味を考慮せず、支出が有効であるかどうかだけを検証する。インスクリプション(前回のレッスン)は、コンセンサスルールを変更せずに誰でもTaprootのウィットネスデータに任意のコンテンツを書き込めることを示した。BRC-20はさらに一歩進み、その同じ経路を使って、ビットコイン自体はまったく関知しない代替可能なトークンシステムを動かした。
- BRC-20は2023年3月、Ordinalsのインスクリプションの仕組みの上に直接構築された実験的なトークン規格として登場した。仮名の開発者Domoが作成したもので、シンプルなJSONオブジェクトを使って代替可能なトークンを管理する。「deploy」インスクリプションが最大供給量と1回あたりのミント上限を持つ新しいトークンを定義し、その後の「mint」インスクリプションが各自の残高を増やし、「transfer」インスクリプションが残高をウォレット間で移動させる。ビットコインのノードはコンセンサスの目的でこのデータを検証しないため、BRC-20は解釈レイヤーにのみ存在する付随的なアプリケーション(サイドカー)として機能する。
- ネイティブアセットとの決定的なアーキテクチャ上の違いは、ビットコイン自体がBRC-20の残高を追跡しないことである。オフチェーンのインデクサーは、ユーザーの保有量を計算するために、ブロックチェーンの全履歴をスキャンしてすべてのdeploy、mint、transferのインスクリプションを記録しなければならない。この分離により、「残高」はビットコインのプルーフ・オブ・ワークによるコンセンサスで検証された事実ではなく、外部サービスが行う計算の結果となる。インデクサーごとにトランザクションの処理方法が異なったりダウンタイムが発生したりすると、状態についての見解が食い違う可能性があり、ネイティブなビットコインにはない依存関係が生じる。
- 2023年春、BRC-20トークンへの投機的な関心が、ビットコインネットワークのトランザクション手数料の歴史的な急騰を招いた。トークン全体の供給上限に達する前に自分の割り当てを確保しようと、何千人ものユーザーが一斉に「mint」トランザクションを実行しようとした。このブロックスペースの奪い合いにより、手数料率(1仮想バイトあたりのサトシ数)は過去2年で最も高い平均値に達し、一部のブロックでは手数料の合計が2017年以来初めてブロック報酬を上回った。メンプールは詰まり、通常の支払いは遅延した。この出来事は、外部のアプリケーションレイヤーがベースレイヤーの経済的な力学に大きな影響を与えうることを示した。
- 批判派は、BRC-20は他のアセットプロトコルと比べて、ビットコインの限られたブロックスペースを非常に非効率的に使っていると主張する。単純なJSON文字列をウィットネスデータに格納することで、本来なら通常の送金に使えるはずの容量を消費し、手数料の上昇を通じて事実上すべてのネットワーク利用者に負担を課している。さらに、頻繁なミントや送金によって作られた多数の小さなアウトプットが未使用トランザクションアウトプット(UTXO)セットを大幅に肥大化させ、フルノードのストレージ要件を増大させた。これに対し支持派は、この活動はビットコインのブロックスペースへの正当な需要であり、ブロック報酬の半減期が近づくなかでマイナーに新たな収益源をもたらすと反論する。
- ブロックエクスプローラーを開き、2023年5月のBRC-20のmintトランザクションを調べてみよう。生のJSONデータは、Taprootアウトプットを消費するインプットのウィットネスに埋め込まれている。標準的なビットコインウォレットで「BRC-20の残高」を照会しても、UnisatやMagic Edenのような外部インデクサーに接続していない限りゼロが返される。これは、このトークンが解釈レイヤーにしか存在しないことを浮き彫りにしている。オンチェーンのデータとオフチェーンの会計とのこの断絶こそが、BRC-20という実験を特徴づける性質である。
- ケイシー・ロダーモアは2023年1月にOrdinalsを立ち上げ、チェーン内での位置に基づいてすべてのサトシにシリアル番号を割り当てた。これにより、Taprootのスクリプトパスを使って特定のサトシにデータを刻み込む(インスクライブする)ことが可能になった。このプロトコルは、他のチェーンの非代替性トークンと同様に、各単位を唯一無二のものとして扱った。ビットコインのノードはトランザクションを記録したが、インスクリプションの内容を検証したり、標準的なUTXOルールを超えるトークンロジックを強制したりはしなかった。
- 2023年3月、DomoはOrdinals内のJSONインスクリプションを使い、deploy、mint、transferの各機能によって代替可能なトークンを作成するBRC-20を導入した。このやり方は洗練されていなかった。残高の管理は、JSONを解析するオフチェーンのインデクサーに完全に依存していた。インデクサーがトランザクションを見落としたりルールを異なって解釈したりすると、インデクサーごとに状態が食い違う可能性があった。この規格は、トークン自体にコンセンサスレベルのセキュリティを加えることなく、大量のブロックスペースを消費した。
- ロダーモアは2024年4月20日、ブロック報酬が3.125 BTCに減った半減期と同時に、ブロック840,000でRunesをローンチした。Runesの送金は、OP_RETURNアウトプット内の「ルーンストーン(runestone)」と呼ばれるプロトコルメッセージによって記述され、残高そのものは通常のUTXO上に置かれる。BRC-20のJSONとは異なり、Runesはインデクサーが解析するコンパクトなバイナリ形式を使用する。1つのトランザクションのアウトプットに、複数のルーンの残高を持たせることができる。このプロトコルはUTXOベースであり、ルーンの残高は特定のアウトプットに紐付けられ、インプットからアウトプットへと移動する。
- これらのプロトコルはすべてメタプロトコルである。ビットコインはデータをオンチェーンに記録するが、ルールを解釈するのはオフチェーンのソフトウェアである。コンセンサスノードはトークン残高を追跡せず、ミントの上限も強制しない。それを行うのはインデクサーである。こうして、決済層(ビットコイン)は安全だが、アプリケーションロジックはインデクサー間の合意に依存するという信頼モデルが生まれる。インデクサーが機能しなくなったり悪意を持って動いたりすれば、基盤となるサトシが無傷のままでも、ユーザーは自分が持っていると認識している残高にアクセスできなくなるおそれがある。
- Alkanesのような新しいメタプロトコルは、インデクサー内でWebAssemblyコントラクトを実行することでこれを拡張し、単純なトークン転送を超えるプログラマビリティを加えている。これにより複雑さが増し、オフチェーン計算への依存も深まる。トレードオフは変わらない。ユーザーは表現力の高い機能を得る代わりに、ルールの強制をビットコインのコンセンサス層の外へ移すことになる。決済はビットコインのレベルで確定するが、状態の一貫性は完全にインデクサーのエコシステムに依存している。
- これを確認するには、Runesに対応したブロックエクスプローラーを開き、ルーンストーンのデータを含むOP_RETURNアウトプットを持つトランザクションを調べてください。ルーンストーンには、ルーンID(BLOCK:TX形式)と数量がエンコードされている。次に、標準的なビットコインノードで確認してください。署名とUTXO構造は検証されるが、トークン残高の情報は一切表示されず、トークンの状態がインデクサーのデータベースの中にしか存在しないことがわかる。
パート IBRC-20トークン
パート IIビットコイン上のトークン:Ordinals、BRC-20、Runes、そしてプログラム可能なメタプロトコル
重要な事実
- BRC-20は2023年3月、仮名の開発者Domoによって作られた。
- ビットコインのノードはBRC-20の残高を検証しないため、台帳を維持するには第三者のインデクサーがすべてのJSON操作を記録しなければならない。
- 2023年春のミントラッシュはメンプールを詰まらせ、手数料をここ数年で最高の水準に押し上げた。
- BRC-20トークンは、作成のための「deploy」、発行のための「mint」、移動のための「transfer」という3つのJSON操作を使用する。
- この規格は多数の小さなアウトプットを生み出してUTXOセットを膨らませ、フルノードのストレージ負担を増大させる。
- ネイティブなコンセンサスによるサポートがないにもかかわらず、その後、大手取引所がBRC-20トークンを上場した。
- Ordinalsは2023年1月にケイシー・ロダーモアが立ち上げたもので、データを刻み込むために個々のサトシに番号を付ける。
- BRC-20(2023年3月)は代替可能なトークンにJSONインスクリプションを用いたが、状態の管理は完全にオフチェーンのインデクサーに依存していた。
- Runesは2024年4月20日にブロック840,000でローンチされ、UTXOベースの代替可能なトークンの送金にOP_RETURNのルーンストーンを使用する。
- メタプロトコルはビットコイン上にデータを記録するが、ルールを強制するのはコンセンサスノードではなくオフチェーンのインデクサーである。
- ルーンはBLOCK:TX形式のIDで識別され、1つのトランザクションアウトプットに複数のトークン残高を保持できる。
- Alkanesはインデクサー内でWebAssemblyコントラクトを実行し、インデクサーへの依存が深まることと引き換えにプログラマビリティを加える。
演習 九・六・三・一
9集めるビットコイン上に構築された、それぞれ異なるトークン規格またはアセットプロトコルを9つ挙げてください(BRC-20、Runes、Counterparty、Omniなどを含む)。それぞれのローンチ年と、オフチェーンのインデックスに依存しているかどうかを記録してください。
6まとめる9つを残高の追跡メカニズムによって6つに分類してください:ネイティブなUTXOベース、オフチェーンのJSONインデックス、OP_RETURNによるデータ付加、その他のハイブリッドモデルなど。どのグループがインデクサー間の不一致の影響を最も受けやすいかを特定してください。
3絞り込む6つのグループを、ビットコイン上のアセット発行における分散性、効率性、複雑性の間の3つの根本的なトレードオフに絞り込んでください。
1結晶化するオフチェーンのインデクサーに依存するトークン規格が、セキュリティ保証の点でネイティブなビットコインと根本的に異なる理由を説明する1文を書いてください。
事実確認
日付、数字、主張は、下記に記載された公表資料と照合して確認しました。
- Domo, 'BRC-20' documentation (March 2023)
- Bitcoin Optech newsletter coverage (2023)
- mempool.space fee history data (Spring 2023)
- C. Rodarmor, Ordinals documentation (docs.ordinals.com, 2023)
- domo, BRC-20 experiment documentation (March 2023)
- C. Rodarmor, Runes documentation (April 2024)
- A. M. Antonopoulos & D. A. Harding, Mastering Bitcoin, 3rd ed. (2023)
- Alkanes protocol documentation