XRPレジャー・コンセンサス・プロトコル
マイニングや従来型のプルーフ・オブ・ステークを用いずに、XRPレジャーが取引について合意を形成する仕組み。
XRPレジャーは、Bitcoinのようなプルーフ・オブ・ワーク型のマイニングも、多くのプルーフ・オブ・ステーク型チェーンのような従来型のステーク加重投票も使用しません。代わりに、独立した検証サーバーのネットワークが次の取引セットを繰り返し提案・投票し、合意された結果に収束していく連合型ビザンチン合意の一種である、**XRPレジャー・コンセンサス・プロトコル(XRP LCP)**を採用しています。
なぜマイニングを採用しなかったのか
プルーフ・オブ・ワークでは、バリデーターが膨大な計算資源を消費して競争する必要があり、エネルギー消費が大きく、「誰が次のブロックを決定するか」が生の計算能力に結びついてしまいます。XRPLの設計者は、数分ではなく数秒での取引確定を望み、かつそのエネルギーコストを完全に回避したいと考えたため、投票ベースの代替方式を構築しました。
基本的なプロセス
コンセンサスの各ラウンド(新しい「レジャーバージョン」を1つ生成するプロセスで、およそ3〜5秒ごとに行われます)は、おおよそ次のように進みます。
- 収集。 各バリデーターは、ネットワークから受け取った有効な未処理取引(候補セット)を収集します。
- 提案。 バリデーターは、信頼するピアに向けて提案する取引セットをブロードキャストします。
- 段階的な投票。 バリデーターは、自身が信頼するバリデーターからの提案を比較し、多数派に合わせて自身の提案を更新することを複数ラウンドにわたって繰り返します。各ラウンドでは、ある取引をセットに残すために必要な合意の閾値が(約50%から80%へと)徐々に引き上げられます。
- 収束。 あるバリデーターが信頼するピアの80%以上が同一の取引セットに合意すると、そのセットはコンセンサスに達したとみなされます。
- 適用とクローズ。 すべてのノードは、合意された取引を決定論的な正規の順序で適用し、その結果として得られるレジャー状態を計算して、そのレジャーバージョンを「クローズ」します。クローズ後は最終確定となり、変更や取り消しはできません。
ノードはどのバリデーターを信頼するのか
各サーバーは、**Unique Node List(UNL)**と呼ばれる独自の信頼バリデーターリストを選択します。ネットワーク全体で使用される各UNLが十分に重なり合い、各バリデーターが正直に振る舞う限り、ネットワーク全体として単一の一貫した取引履歴に収束します。信頼の確立方法や、単一のグローバルな「メンバーリスト」との違いについては、Unique Node List and Validators(英語)をご覧ください。
この仕組みがもたらすもの
- 高速で決定論的なファイナリティ — レジャーが一度クローズされればそれで最終確定であり、通常運用下ではブロックチェーンの「リオーグ」に相当する事象は発生しません。
- 低いエネルギー消費 — 計算競争が存在しないため、コンセンサス自体の追加的なエネルギーコストはわずかです。
- ブロック報酬なし — インセンティブを与えるべきマイニングレースが存在しないため、バリデーターにブロック補助金が支払われることはありません。ネットワークの経済的仕組みについてはTransaction Fees and Burning(英語)をご覧ください。
その代償として必要なもの
この設計は、パーミッションレスで純粋にステーク加重されたバリデーター選定を手放す代わりに、評判に基づく、任意参加型の信頼を採用しています。誰でもバリデーターを運営できますが、その投票がネットワークの他の参加者にとって意味を持つためには、他の参加者がそのバリデーターを信頼すると選択する必要があります。このトレードオフと、それが歴史的に招いてきた中央集権化への批判については、The Centralization Debate(英語)で詳しく解説しています。