🦔

【XRPL徹底解説】新しいBFT型コンセンサスアルゴリズムとは?

に公開

はじめに

こんにちは!一般社団法人XRPL Japan 理事の増田(通称:ぽこ太郎)です。

ブロックチェーンや分散システムの分野でよく登場する「BFT(Byzantine Fault Tolerant)型」という言葉をご存じでしょうか。
これは、一部のノードが故障したり、悪意を持って裏切った場合でも、正しい合意(コンセンサス)を得られる仕組みを指します。

rippledのREADME.mdには「a novel Byzantine Fault Tolerant consensus algorithm」と記載されており、私も興味を持ったため、今回解説記事を作成しました。

本記事では、BFTの概要からブロックチェーンでの活用例、そしてXRPLとの関係までを、できるだけわかりやすく解説していきます。

なぜ合意が難しいのか

分散台帳は「中央管理者なしで全員が同じ正解に辿り着く」必要があります。
まずは何が障害になるのかを整理しておきましょう。

  • ノードが壊れたり、悪意を持って嘘をつくことがある
  • ネットワークが遅延・断線し、メッセージが欠落したり改ざんされることがある

こうした前提を踏まえると、「ミスなく・素早く・確定的」な合意を得る難し さが見えてきます。
次のセクションでは、その難しさを端的に表した有名な例を見てみましょう。

ビザンチン将軍問題

分散合意の本質的な困難さを物語化した 「ビザンチン将軍問題」 を押さえておくと理解が進みます。

  • 一部の将軍(ノード)は裏切り者で、嘘の情報を送る
  • 通信は遅延したり、途中で改ざんされたりする
  • それでも正直な将軍同士は同じ行動(攻撃か撤退か)をとる必要がある

このストーリーが示すのは、 「不正・故障・通信不良があっても一致した決断を下す必要性」 です。ここから“BFT”という性質が必要になります。

https://ja.wikipedia.org/wiki/ビザンチン将軍問題

BFT(Byzantine Fault Tolerant)とは何か

ビザンチン将軍問題を踏まえたうえで、BFTの概念を噛み砕いて説明します。

  • BFT = 一部が壊れてたり嘘をついても、全体として正しい結論を出せる性質
  • 古典的BFTでは、しばしば 「最大で全体の3分の1未満が不正でもOK」 という条件が用いられます
  • この条件は数式で表すと n ≥ 3f + 1 です(n=総ノード数、f=不正ノード数)

例として、10台のノードがあるなら3台まで壊れていても、残り7台で正しい合意を取れればOKというイメージです。

この性質を満たすプロトコル群を、次のセクションで「BFT型」と呼んで区別 していきます。

“BFT型コンセンサス”って何?

BFTはあくまで性質の名前です。では、その性質をどうやって“仕組み”として実現するのでしょう?そこで登場するのが BFT型コンセンサス です。

  • 署名付きメッセージを複数ラウンドで交換して投票する
  • Safety(間違えない) と Liveness(止まらない) を同時に守る
  • PoWのような計算競争に依存せず、 省エネ&高速

こうした特徴から、 正確性とスピードが同時に求められる決済・サプライチェーン領域で特に力を発揮 します。

代表例が PBFT / Tendermint / HotStuff / XRPLのUNL方式 です。

古典的BFTが前提にするもの

“古典的BFT”とは、PBFT(Practical Byzantine Fault Tolerance)を中心にした初期のメッセージ交換型プロトコル群を指す通称です。
BFT型の代表例であるPBFTを中心に、どんな前提で動いているかを確認しましょう。

  • 部分同期ネットワーク :いつかは遅延上限が安定する前提
  • 認証通信 :電子署名などでなりすまし防止
  • 静的メンバーシップ :参加ノード集合が事前にわかっている
  • 決定論的状態機械 :同じ入力ログなら同じ結果(State Machine Replication)
  • 配達の最終成功 :メッセージは遅れても最終的に届く(lossless)

この前提を置くことで、

  • Safety(矛盾しない最終状態)
  • Liveness(処理が進み続ける)
    を満たすことが可能になります。ただし、完全非同期では両立できない(FLP不可能性)ため、現実的な仮定が必要なのです。

https://gaiax-blockchain.com/pbft

PoW / PoSはBFT?

「PoW / PoSはBFTじゃないの?」という疑問は多いので、ここで整理しておきます。

  • 広義にはBFT的 :PoW / PoS もビザンチン障害に耐える性質を持つ
  • 狭義の“BFT型” :PBFT / Tendermint / HotStuff のように “決定的Finality”を持ち、メッセージ交換型 のプロトコルを指すことが多い
観点 BFT型(PBFT/Tendermint/UNL等) PoW/PoS
Finality 決定的(確定後は原則巻き戻し不可) 確率的(ブロック深さで再編成確率が下がる)
故障許容 n ≥ 3f + 1(f < 1/3) 正直ハッシュ/ステーク > 50% など
合意手段 署名付きメッセージの多段投票 最長(最重)ブロックのルール
前提 部分同期 + 認証通信 完全オープン、遅延・分岐前提で収束

この違いを押さえておくと、XRPLの位置づけがよりクリアになります。

2011年、Jedの「マイナー不要」宣言

XRPLの“新しさ”は技術だけでなく思想の部分にもあります。ここでは、その源流を作った人物 Jed McCaleb を紹介しつつ、彼の「マイナー不要」提案を振り返ります。


※ Geminiで作成したイメージです

Jed McCaleb って誰?

起業家/エンジニア

  • 2010年:暗号資産取引所 Mt.Gox を立ち上げ(2011年に売却)
  • 2012年:OpenCoin(後のRipple Labs) を共同創業し、後にXRP Ledgerの開発に関与
  • 2014年:Stellar Development Foundation を創設し、Stellarネットワークを立ち上げ

「マイナー不要」宣言とは?

  • 日時 :2011年5月27日
  • 場所 :Bitcointalk フォーラム
  • スレッド名 :「Bitcoin without mining」
  • 主張要旨
    • PoWマイニングは電力を浪費しがちで“残念な副作用”
    • マイナー不要のビットコイン(=PoWなしで合意形成する方法)を考えたい
    • “It would be cool to come up with a bitcoin that doesn’t need miners.”(マイナーがいらないビットコインを作れたらクールだよね)

https://bitcointalk.org/index.php?topic=10193.0

何がXRPLにつながるの?

Jed の問題意識は、「PoWの電力浪費を避けつつ、正確で速い合意をどう作るか?」に集約されます。これが、後に UNL方式+BFT型コンセンサス という XRPL 独自の設計へと結びつきました。

XRPLの“新しいBFT型” = UNL方式

XRPLのコアは UNL(Unique Node List) という信頼モデルです。PBFTをそのまま使うのではなく、各ノードが“誰を信頼するか”を自分で決める仕組みを持ち込んでいます。

https://xrpl.org/ja/docs/concepts/consensus-protocol/unl

UNLの考え方

  • 各ノードが自分で「信頼するバリデータ一覧(UNL)」を持つ
  • 全ネットワークでUNLが完全一致する必要はない
  • UNL同士の重複が十分大きいほど安全性が高まる

合意フロー(ざっくり)

  1. 提案共有:各バリデータがTx集合を提案
  2. 投票ラウンド:UNL内で一定閾値(例:80%)を満たすまで収束
  3. 最終バリデーション:レジャーにコミット
    平均3〜5秒でFinality 、原則巻き戻し不可/極めて困難

性能・強み

  • 決定的Finalityを秒単位で実現
  • マイニング不要で低電力・低コスト
  • 決済・送金など“正確&高速”が必須な領域で最適

まとめ

ここまでの内容を振り返り、XRPLとBFT型合意の位置づけを再確認しましょう。

  • XRPLはUNL方式という“新しいBFT型コンセンサス”を採用し、 正確性+スピードの両立 が必要な決済領域に特化
  • BFT(性質)とBFT型(方式)を分けて理解 するとPoW/PoSとの違いが明確
  • UNL重複率90% は研究で示唆される安全目安であり、仕様固定値ではない
  • 2011年のJedの「マイナー不要」提案 がXRPL設計思想の出発点の一つ

この流れを押さえておけば、XRPLのコンセンサスを他プロジェクトと比較・評価する際の“軸”がしっかりします。

最後に...

この記事を通じて、XRPLのマルチチェーン対応や、Axelar・Wormholeの仕組みについて少しでも理解が深まっていれば嬉しいです。

今後、Web3やブロックチェーンがチェーンの壁を越えてつながっていく世界の中で、XRPLがどんな可能性を広げていくのか、ぜひ一緒にワクワクしながら追いかけていきましょう!

最後まで読んでいただき、ありがとうございました!

GitHubで編集を提案

Discussion