カウンターパーティ
ビットコインへの拡張
ステートマシンレプリケーション
アダム・クレレンスタイン
2024-03-29
目次
- 背景 .................................................................... 3
1.1. ステートマシンレプリケーション .......................................... 3 - カウンターパーティ、ブロックチェーンメタプロトコル ..................... 5
2.1. カウンターパーティトランザクション ......................................... 6
2.2. トランザクションエンコーディング ................................................. 7
2.3. ネイティブ通貨 .......................................................... 8 - 将来の開発 ...................................................... 9
- 他のレイヤー 2 プロトコルとの比較 ................... 10
背景
カウンターパーティの開発は 2013 年 11 月下旬に始まりました。翌年の 1 月 2 日に、カウンターパーティはビットコインフォーラムに投稿され、すぐに本稼働に入りました。¹
1: https://bitcointalk.org/index.php?topic=395761.0
それ以来、カウンターパーティネットワークは公開され、活発に利用されています。このホワイトペーパーは 10 年遅れて書かれています — 元々の意図はカウンターパーティのコードベース自体がその実現可能性を文書化することでした。しかし、プロトコル設計と歴史の説明を正式化することには依然として利点があります。特に、設計の特定の機能に関する誤解が続いていること、カウンターパーティがブロックチェーンエコシステムの歴史において果たした特異な役割、最近のビットコイン「L2」プロトコルへの関心の再燃を考慮すると重要です。
カウンターパーティのアイデアは元々マスターコインプロジェクトから来ました。² マスターコインは、カウンターパーティのローンチの数ヶ月前に、J.R. ウィレットによって初の ICO の一部として説明されました。³
3: https://www.forbes.com/sites/laurashin/2017/09/21/heres-the-man-who-createdicos-and-this-is-the-new-token-hes-backing/
カウンターパーティの創設者 — アダム・クレレンスタイン、エヴァン・ワグナー、ロビー・ダーモディ — は、マスターコインの設計における巨大な可能性を見ましたが、そのマスターコインが発表され、開発された一般的な方法には満足していませんでした。カウンターパーティは、マスターコインの背後にあるアーキテクチャのビジョンを実現するための試みでしたが、対照的に、サトシと彼の創造物の原則と価値に従っていました。
マスターコインがその独自のトークンの単純な転送を超える機能を持つ前から、カウンターパーティは後にメタプロトコルまたはメタチェーンと呼ばれるものの実現可能性の広範な能力を示すことができ、ウィレットによって元々考案されたアーキテクチャのモデル実装となりました。それ以来、カウンターパーティは STAMPS、SRC-20、BRC-20、そしてマスターコイン自体など、多くの模倣者や二次的メタプロトコルにインスピレーションを与えています。しかし、カウンターパーティのアーキテクチャ的特徴は広く理解されておらず、これは部分的にはビットコインの特異な設計の結果であり、その偶発的な特徴はすべてのブロックチェーンの本質的な特性と誤って見なされています。
ステートマシンレプリケーション
ブロックチェーンは一般的に「不変のデータベース」と呼ばれます。なぜなら、従来の可変データベースとは異なり、ブロックチェーンにはその状態を自由に変更できる中央権限が存在しないからです。ブロックチェーンでは、データはログ構造であり、数千の匿名のエンティティによってグローバルに複製され、プルーフ・オブ・ワークによって保護されています。しかし、「ブロックチェーン」という用語は、ブロックとトランザクションの歴史的ログだけでなく、分散型システム自体、すなわちプロトコルとそのプロトコルが特定のネットワークにおいて具現化されたものを指します。
特にビットコインのブロックチェーンは、単なるデータベース以上のものです — カノニカルブロックとトランザクションのコレクションを構成するデータ構造以上のものであり、参照実装において具現化されるプロトコルも説明します。ビットコインコアのコードベースがなければ、ビットコインは完全には仕様化されません。例えば、歴史的ログとしてのブロックチェーンは、将来のブロック報酬の半減を決定するものではありません。より関連性のあることに、データがどのように解釈されるべきかを決定するものでもありません。例えば、残高がそのアドレスで使用可能な UTXO の値の合計として計算される方法です。これらの残高は決定論的に計算されなければならず、ネットワーク内の各ノードが特定のブロックチェーンログのコピーに対して同じ残高を報告する必要があります。そして、残高自体はブロックに記録されず、マイナーによって検証されることもありません。
もしビットコインプロトコルの代替実装がビットコインコアが報告する残高とは異なる残高を報告した場合、それは定義上、ビットコインの不正な実装となります。実際、ビットコインの設計の興味深い特徴は、ビットコインプロトコルの大多数がマイナーによって検証されるため、無効なトランザクション自体は一般的にトランザクションログに入ることはありません。しかし、二重支払いトランザクションがブロックに無駄なデータとして含まれ、各ノードが特定のアドレスの(有効な)UTXO のリストを計算する際に無視される代替設計を容易に想像することができます。厳密に言えば、ブロックチェーンは単なるデータではなく、論理と状態でもあります。
ブロックチェーンの定義的な特徴は、ステートマシンレプリケーションのアーキテクチャパターンです。このアーキテクチャには 2 つのコンポーネントがあります:分散ログ(すなわちブロックのリスト)と、そのログを(決定論的に)解析し、他のすべてのノードと同一のローカル状態を保存するステートマシンです。ログはすべてのビットコインノードに複製され、各ノードはそのログ内のデータの解釈に基づいて同じネットワーク状態を報告します。
カウンターパーティ、ブロックチェーンメタプロトコル
真のメタプロトコルとして、カウンターパーティはブロックチェーンのアーキテクチャパターンを論理的な結論に持っていきます:カウンターパーティはビットコインプロトコルを拡張し、ビットコインブロックチェーンログを新しいプロトコルメッセージのストアとして扱う新しいステートマシンの助けを借りて解析ロジックと派生状態を追加します。ビットコインノードによって明示的に無視されるブロックチェーンデータは、カウンターパーティソフトウェアによって解析され、追加の状態が決定論的に導出されます。
カウンターパーティはビットコインと同じセキュリティモデルを持っています:すべてのカウンターパーティトランザクションはビットコイントランザクションであり、したがってカウンターパーティトランザクションの完全な履歴はビットコインマイニングネットワークの完全なハッシュパワーで保護されています。唯一の違いは、カウンターパーティのユーザーはビットコインコアとカウンターパーティコアの 2 つのコードベースに依存しなければならないということです。ビットコインマイナーはカウンターパーティを「知らない」ため、ビットコインプロトコルよりもカウンターパーティプロトコルの小さな部分を検証しますが、この区別は定量的であり、質的ではありません。これは、オーディナルを含むさまざまなカラードコインプロトコルでも同様でした。
もし誰かがカウンターパーティプロトコルに準拠していないカウンターパーティソフトウェアのバージョンを実行した場合、それは参照実装で暗黙的に指定されているのとまったく同じ結果になります。カウンターパーティネットワークのマイナーは単にビットコインマイナーであり、ビットコインフルノードがマイナーである必要がないのと同じように、特に問題はありません。それでも、カウンターパーティプロトコルは、ビットコインのハードフォークまたはソフトフォークでないハードフォークまたはソフトフォークを経験することはできません。
カウンターパーティトランザクション
カウンターパーティプロトコルは、ビットコインプロトコルへの真の拡張です。ビットコインが提供しない多くの機能を実装しています。これには、トークン発行、完全に分散化された信頼不要の資産交換、差分契約、ネイティブオラクル、信頼不要のゲームプレイなどが含まれますが、これに限りません。カウンターパーティはビットコイントランザクションの「余白に書き込む」:カウンターパーティトランザクションを作成するために、カウンターパーティソフトウェアは、そのプロトコルのメッセージを構成するメタデータを含むビットコイントランザクションを構築します。
例えば、カウンターパーティでトークンを発行するには、自分自身にダストを送信し、ビットコインスクリプトの OP_RETURN オペコードを含む追加の出力を含むビットコイントランザクションを構築することができます。⁴
このオペコードは、ビットコインノードによって解析されると、スクリプトの実行がその後のデータバイトを無視する原因となります。したがって、最も単純な発行トランザクションの場合、カウンターパーティはこの出力にトークンの名前と発行される数量をエンコードします。ビットコイントランザクションがネットワークにブロードキャストされ、マイニングされると、すべてのカウンターパーティソフトウェアのインスタンスはビットコインブロックチェーン内のトランザクションを見て発行を解析し、そのイベントをローカルデータベースに保存します。各カウンターパーティユーザーは、そのトークンが指定された識別子で希望の数量で発行されたことに同意することができます。
カウンターパーティはそのメタデータを解析するための独自のルールを実装しています。カウンターパーティトランザクションが無効な場合 — 例えば、送信者が十分なトークンを保持していない場合 — そのトランザクションはビットコインブロックチェーンに保存されますが、すべてのカウンターパーティノードによって無効として認識されます。カウンターパーティデータは、したがって有効なビットコイントランザクションに保存され、ビットコインブロックチェーン内にあり、単にビットコインフルノードによって無視されます。無効なトランザクションは、カウンターパーティプロトコルによって定義される以外は、他のすべてのビットコイントランザクションと同じです。
トランザクションエンコーディング
カウンターパーティトランザクションデータは、いくつかの方法を使用してビットコイントランザクションに埋め込まれています。最も単純な方法は OP_RETURN オペコードを使用することで、これがデフォルトでもあります。しかし、より大きな OP_RETURN データのリレーに対する任意の制限により、カウンターパーティは他の方法でデータをエンコードする必要があります。これらの方法は、後でビットコインブロックチェーンからデータをプルーニングすることを許可しないものもあります。カウンターパーティは可能な限りプルーニング可能な出力の使用を好みます。しかし、プルーニング可能なデータがあれば、ビットコインノードはカウンターパーティトランザクションを無期限に保存する必要はありません。それでも、カウンターパーティユーザー自身が実行するビットコインノードなど、一部のビットコインノードがこのデータをプルーニングしない限り、そのデータは決して失われることはありません。
長年にわたる論争は、ビットコイン自体に関連しないトランザクションを保存するためにビットコインブロックチェーンを使用することの倫理に関する問題に関連しています。カウンターパーティのようなメタプロトコルからのデータは時には「スパム」とラベル付けされることさえありますが、カウンターパーティデータは意味的に有意義であり、大量に生成されるものではありません。カウンターパーティや他のビットコインレイヤー 2(L2)ネットワークの運用は、ビットコインプロトコルの脆弱性を利用することを含まず、例えばビットコインの手数料システムを回避することを可能にするものではありません。むしろ、カウンターパーティトランザクションの作成は、通常のビットコイントランザクションと同様にビットコイン手数料を支払うことを含みます:支払われるビットコイン手数料は、カウンターパーティデータのリレーとマイニングに対してネットワークにかかる負担に直接比例します。カウンターパーティトランザクションに関連する経済的価値が必要な手数料を上回る場合にのみ、そのトランザクションの作成はネットワークに価値を追加することを意味します。
最も重要なことは、ビットコインは第一に許可なしのプラットフォームであり、正直な参加のための経済的インセンティブによって駆動されるプロトコルです。手数料を支払うカウンターパーティトランザクションの作成を嘆くことは、特定の「望ましくない活動」のためにビットコイン自体の使用を嘆くことに等しいです。カウンターパーティトランザクションは、その人気のために、非カウンターパーティビットコイントランザクションのコストを増加させる可能性があります。しかし、彼らはまた、ビットコインネットワーク全体の価値を高めるために機能します — マイナーはそれに対してかなりの手数料を受け取ります — 特にカウンターパーティ資産が信頼不要の方法でオンチェーンでビットコインと交換できることを考慮すると。ビットコインプロトコルは、1 秒あたりのトランザクション数がわずかであるグローバルネットワークであるため、少額の価値の移転のためのプロトコルではなく、少なくともライトニングネットワークのようなレイヤー 2 プロトコルなしではそうなることはありません。したがって、ビットコインをスケーラブルにする技術的課題は、カウンターパーティや他の L2 プロトコルメッセージの量とは完全に独立しています。
この論争の歴史的なピークは、2014 年にいわゆる「OP_RETURN 戦争」の間に発生しました。⁵
その時、ビットコインコアの開発者は、カウンターパーティが 40 バイト以上のデータを OP_RETURN ペイロードに保存することを防ぐために、ビットコインの参照実装がトランザクションをリレーするために使用するルールを人工的に制限しました。⁶
もちろん、ハッシュが受け入れられるペイロードと見なされ、意味的データがそうでないという事実は、このようなルールセットの偽善と非効果を示しています — ハッシュは単なるデータであり、データペイロードがビットコインネットワークに与える影響はその内容とは明らかに独立しています。この 40 バイトの制限は後に、カウンターパーティがローンチされる前の計画サイズである 80 バイトの恣意的なサイズに引き上げられました。⁷
今日では、分離されたウィットネススキームを使用することで、個々のビットコイントランザクションにキロバイトのプルーニング可能なデータを保存することさえ可能です。⁸
ネイティブ通貨
カウンターパーティはビットコインプロトコルへの一般的な拡張であるため、独自のネイティブ暗号通貨 —XCP も提供しています。XCP トークンは、ビットコイントークンが単位として機能したり、ネットワーク手数料を支払ったりできない場合に使用されます:ビットコインプロトコルはカウンターパーティメタプロトコルを認識していないため、カウンターパーティデータを含むビットコイントランザクションの総サイズに基づく最小限のアンチスパムメカニズムとしてしか使用できません。それにもかかわらず、カウンターパーティトランザクションの中には、その単純さのために XCP トークンの使用を必要としないものがいくつかあります。特に、単純な資産転送や数値資産(人間が読める識別子を持たないカウンターパーティ資産)の発行は、カウンターパーティノードに対して低い計算負担を生み出します。
XCP の作成と初期配布は、シビル耐性を提供するマイニングネットワークがない状態で、できるだけ分散化され、信頼不要であるように設計されました。2014 年初頭には、いくつかの暗号通貨が「初期コインオファリング」(ICO)と呼ばれる方法で既にローンチされていましたが、そのようなローンチはプロトコルの作成者に対する信頼を必要とし、トークンを中央集権的に配布(「販売」)しなければなりません。プルーフ・オブ・バーンは、ビットコインマイニングのセキュリティモデルを反映した優れた代替手段を提供します:ビットコインと同様に、ビットコインを作成する際にエネルギーが破壊されます;プルーフ・オブ・バーンでは、XCP を作成する際にビットコインが破壊されます。これらのビットコインを作成するために使用されたエネルギーは、追加のエネルギーを消費することなく XCP を作成するために再利用されました。プルーフ・オブ・バーンは 2013 年に理論化されましたが、これまで実装されたことはありませんでした。⁹
プルーフ・オブ・バーンは、証明可能に使えないアドレス(1CounterpartyXXXXXXXXXXXXXXXUWLpVr)の公開を含み、その低エントロピーは、そのアドレスに送信されたコインが使えるプライベートキーが存在しないことを示しています。カウンターパーティコアコードは、2014 年 1 月 2 日から 2 月 3 日までの間にこのアドレスに BTC を送信するトランザクションを検出し、自動的かつ信頼不要で XCP を生成しました。1BTC ごとに 1,500 から 1,000 の XCP が生成され(線形に減少)、ユーザーがバーン期間の早い段階で BTC を破壊するインセンティブを提供しました。合計で 2,130BTC が破壊され(当時約 2,000,000 米ドル)、2,648,755XCP が生成されました。
カウンターパーティの創設者は、XCP の作成において特別な権利や特権を持っておらず、カウンターパーティプロトコルの使用に対して手数料を受け取ることはありません。これは、カウンターパーティの開発がビットコインのエコシステムのように代替の資金源を求めなければならなかったことを意味します。XCP はデフレ通貨です:プルーフ・オブ・バーン期間が終了して以来、新しい XCP は作成されていません。XCP はカウンターパーティユーザーによってカウンターパーティネットワーク手数料の支払いのために定期的に破壊されますが、XCP はカウンターパーティを認識しているため、単に削除され、使えないアドレスに送信されて燃やされる必要はありません。
将来の開発
この文書の執筆時点で、カウンターパーティプロトコルには 2 つの主な制限があり、どちらも中程度の追加開発努力で克服可能です。これらは: - BTC とのより深い統合
現在実装されているカウンターパーティは、ビットコインの UTXO システムとカウンターパーティのステートマシンの間に強い抽象化レイヤーを維持しています。つまり、カウンターパーティはビットコインを単純な分散型不変ログとして扱い、個々のビットコイントランザクション出力の意味的価値をほとんど無視しています。その結果、分散型取引所でのカウンターパーティネイティブトークンと BTC の間の取引は遅く高価であり、マッチを決済するために複数のブロック確認が必要です。
この抽象化の境界を破り、UTXO をプロトコル内の第一級オブジェクトとして扱うことで、カウンターパーティはビットコイントークンとのシームレスな統合を提供できるようになります:カウンターパーティ資産は UTXO に直接添付でき、標準のビットコインウォレットソフトウェアを使用して保持および転送できます。おそらく、より重要なのは、このアップグレードにより、ネイティブカウンターパーティ資産と BTC の間で信頼不要の原子的なスワップが可能になることです。オーディナルのように。
実際、オーディナル資産をカウンターパーティ資産と取引することも可能になります。 - 汎用バーチャルマシンの実装
ステートマシンレプリケーションモデルのコア機能は、任意の決定論的計算をサポートすることです。実際、カウンターパーティは 2014 年にイーサリアムバーチャルマシン全体をビットコインブロックチェーンにポートすることでこれを示しました。ⁱ⁰ この機能は、維持に必要な開発リソースの不足により、メインラインに統合されることはありませんでした。
スマートコントラクトシステムは、公共のブロックチェーンで何年も使用されてきましたが、一般的には非常に小さなアプリケーションを構築するためにのみ使用されています。これには、(a) 言語の安全性が低い、(b) モジュール性がない、(c) 構文が難しいという組み合わせが主な理由です。カウンターパーティのスマートコントラクト言語は、既存のシステムのこれらの制限に対処し、ビットコインブロックチェーンに汎用計算をもたらすことを目的としています。サイドチェーンを使用せずに。もちろん、XCP はこのバーチャルマシンを使用した計算とストレージのためのガストークンとして機能し、手数料はネットワークの負荷に基づいて動的になります。
他のレイヤー 2 プロトコルとの比較
ビットコインレイヤー 2 プロトコルは、ビットコインブロックチェーンとの基本的な統合レベルに基づいて大まかに分類できます:
・オーバーレイネットワークは、ビットコインに価値や機能を追加しないビットコインへの拡張ですが、パフォーマンスの大幅な改善を提供する可能性があります。ライトニングネットワークはこのカテゴリに該当します。
・カラードコインは、UTXO システムとスクリプトに依存しているビットコインへの拡張です:これらのプロトコルはビットコインブロックチェーンに意味的価値と機能を追加しますが、スクリプトの単純さと柔軟性のなさによって大きく制限されています。オーディナルプロトコルはカラードコインプロトコルの一例です。
・メタプロトコルは、独自のステートマシンを実装するビットコインへの拡張です。メタプロトコルはビットコインに任意の機能を追加できます。カウンターパーティはメタプロトコルの最初の実働インスタンスでした。
・サイドチェーンは、ビットコイントークンへの双方向のペグを単に許可する独立したプロトコルとネットワークであり、したがって真の「L2 プロトコル」ではありません。リキッド、ルートストック、スタックスは本質的にサイドチェーンです。
オーバーレイネットワークやカラードコインと比較して、カウンターパーティメタプロトコルは、基盤となるブロックチェーンのセキュリティモデルを保持しながら、劇的に多くの機能を提供し、ビットコインとの深い統合を可能にします。
サイドチェーンプロトコルは、独立したネットワークを持つため、独自のコンセンサスシステムを実装し、ビットコインプロトコル自体の外部のすべてのロジックを検証するためにビットコインノードを実行している中央集権的なエンティティのセットに依存しなければなりません。
あらかじめ言えば、オーディナルのようなプロトコルがカウンターパーティに対して持つ唯一の重要なアーキテクチャ上の利点は、その内在的な単純さです:オーディナルは、トークンの作成と転送をサポートしますが、それ以上のものはありません。もちろん、過去 10 年間のカウンターパーティの継続的な運用は、メタプロトコルモデルの実用性を示しています。
上記の機能が実装されると、カウンターパーティはカラードコインとサイドチェーンプロトコルの最良の機能を提供し、オーディナルを特徴づけるビットコインとの深いネイティブ統合と、ルートストックやスタックスのようなアルトコインやサイドチェーンの力と柔軟性を提供します。カウンターパーティの技術は、ビットコイン上で真に信頼不要なイーサリアムの代替手段を作成することを可能にし、この努力は近い将来、カウンターパーティがビットコインにおける革新と価値創造の焦点としての地位を取り戻すことにつながるでしょう。