合意形成の基礎(コンセンサスの原理)
分散システムがなぜ合意を必要とするかから始め、ビザンチン将軍問題・FLP 不可能性定理・ネットワーク同期モデル・Sybil 耐性・ファイナリティ類型・フォーク選択則・ブロックチェーントリレンマを体系化した合意形成の概念基盤。
article technology ja 分散システムがなぜ合意を必要とするかから始め、ビザンチン将軍問題・FLP 不可能性定理・ネットワーク同期モデル・Sybil 耐性・ファイナリティ類型・フォーク選択則・ブロックチェーントリレンマを体系化した合意形成の概念基盤。合意形成の基礎(コンセンサスの原理)
分散台帳やブロックチェーンにおける「合意形成(コンセンサス)」は、互いを信頼できない複数の参加者が単一の正典的な状態に同意する仕組みである。コンセンサスが必要な根本理由は二重支払い防止にあり、誰がどの順序でどのトランザクションを台帳に刻むかを決定するための原理が本記事の主題だ。PoW / PoS / BFT などの具体的メカニズムは各専門記事で詳述し、ここでは全アルゴリズムに共通する理論的基盤を体系化する。情報カットオフ ~2025-08、confidence: medium 固定(2026-06 時点での外部再検証は未実施)。
なぜ合意が必要か — 二重支払いと正典的台帳
デジタルデータは物理的な現金と異なり、コピーが容易である。台帳が単一の信頼できる管理者(銀行など)に集中している場合、管理者が「アリスの口座残高」の唯一の権威となるため二重支払いは防止できる。しかし分散システムでは、すべての参加者(ノード)が同じ台帳の状態に合意しなければ、アリスが同じコインをボブとチャーリー双方に同時に送ることができてしまう。
コンセンサスプロトコルが解決すべき問題は「単一の正典的な台帳状態(canonical ledger state)」の確立である。具体的には次の二性質を満たすことが求められる。
- Safety(安全性):正直なノードが異なる値に合意しない(二つの正典的分岐が同時に存在しない)
- Liveness(活性):最終的に何らかの値に合意が到達する(処理が永久に停止しない)
この二性質の間には根本的なトレードオフがあり、以降で解説する FLP 定理・CAP 定理・ネットワーク同期モデルと深く関係する。
ビザンチン将軍問題とビザンチン障害耐性(BFT)
ビザンチン将軍問題(Byzantine Generals Problem)は 1982 年に Lamport・Shostak・Pease が定式化した分散合意の古典的思考実験である。複数の将軍が共同作戦のために「攻撃」または「撤退」を合意しなければならないが、一部の将軍が裏切り者で矛盾するメッセージを送る可能性がある。
この問題は次のことを示す。
- 裏切り者(故障ノード)が任意の悪意ある行動を取れる(ビザンチン障害)場合、全体の 1/3 以上が故障すると合意は原理的に不可能である
- 単なるクラッシュ障害(停止するだけ)より、任意の虚偽メッセージを送れるビザンチン障害の方が格段に扱いが難しい
**ビザンチン障害耐性(BFT)**とは、全参加者の 1/3 未満がビザンチン障害を起こしても合意を維持できる性質を指す。許可型 BFT(PBFT・Tendermint・HotStuff など)は既知の参加者リストを前提にこの保証を提供する。一方、無許可型(パブリック)ブロックチェーンでは参加者が動的かつ匿名なため、後述の Sybil 耐性メカニズムで BFT 相当の保証を経済的に実現する。
FLP 不可能性定理と実用系の対処法
FLP 不可能性定理(Fischer・Lynch・Paterson、1985)は分散合意理論の基礎定理であり、次を証明した。
完全非同期ネットワーク上で、1 台以上のクラッシュ障害が発生しうる場合、確定的(deterministic)なコンセンサスプロトコルは常に終了することを保証できない。
これは「安全性」と「活性」を同時に保証することが非同期環境では不可能であることを意味する。実用系はこの壁を以下の方法で回避する。
| 回避戦略 | 代表例 | 要点 |
|---|---|---|
| 部分同期仮定 | PBFT・Tendermint | 通常は非同期だが最終的に同期する期間(GST)が来ると仮定 |
| 確率的終了 | Nakamoto PoW | ブロックが追加されるほど覆る確率が指数的に低下(確率的ファイナリティ) |
| ランダム化 | HoneyBadgerBFT | コインフリップで活性を保証(非同期 BFT の理論的解) |
| 弱い同期仮定 | Casper FFG | バリデータが最終的にメッセージを受け取ると仮定 |
FLP 定理が示すのは「不可能」であり「難しい」ではない点に注意が必要だ。実用系は仮定を緩めることで FLP を回避しており、仮定が崩れたとき(例:ネットワーク分断)に Safety か Liveness のどちらかを犠牲にする。
ネットワーク同期モデルと Safety / Liveness のトレードオフ
分散システムの理論では、ネットワークメッセージの到達時間に関して三つのモデルを区別する。
- 同期(Synchronous):メッセージは既知の上限 Δ 以内に到達する。強い仮定で安全だが現実のインターネットには当てはまらない。
- 部分同期(Partially Synchronous):上限 Δ は存在するが不明、または最終的に Δ が成立する期間(GST)が来る。PBFT / Tendermint などの実用 BFT が採用する。
- 非同期(Asynchronous):メッセージはいつか到達するが遅延上限はない。最も現実的だが FLP により決定的な合意は不可能。
CAP 定理(Brewer、2000; Gilbert-Lynch 証明)はネットワーク分断(Partition)が発生した際、Consistency(一貫性 ≈ Safety)と Availability(可用性 ≈ Liveness)を同時に保証できないと述べる。ブロックチェーンの設計はこのトレードオフの反映である。
- CP 選択(一貫性優先):許可型 BFT(Tendermint など)はネットワーク分断時に新規ブロックを停止し Safety を維持する
- AP 選択(可用性優先):Nakamoto PoW はネットワーク分断時も各パーティションが独自チェーンを延ばし続け(Liveness 維持)、分断解消後にフォーク解消で一本化する(最終的 Safety)
Sybil 耐性 — コスト型と認可型
無許可型ネットワークでは参加者が無制限に参加・離脱できるため、攻撃者が大量の偽 ID(Sybil ノード)を作成して多数決を乗っ取るリスクがある(Sybil 攻撃)。これを防ぐ Sybil 耐性戦略は大きく二種類に分かれる。
コスト型では投票権に現実のコストを対応させることで Sybil 攻撃を経済的に高価にする。
- PoW(Proof of Work):投票権 ∝ 計算資源の消費量。SHA-256 ハッシュパズルを解くことが「票」に相当。詳細は別記事で詳述。
- PoS(Proof of Stake):投票権 ∝ 保有・担保(ステーク)する資本量。コインを失うリスクが正直な行動を促す。詳細は別記事で詳述。
認可型では参加者をあらかじめ特定し、Sybil を構造的に排除する。
- PoA(Proof of Authority):既知の認証済みバリデータのみが参加する。プライベートチェーンや Hyperledger Besu のコンソーシアム向け。
- 許可型 BFT(PBFT / Tendermint):メンバー管理層が Sybil を排除し、合意プロトコルは BFT 数学的保証に集中する。
コスト型は開放性と検閲耐性を確保するが、資源・資本への依存度がそれぞれ異なる外部性を持つ。認可型は性能と BFT 保証が強いが中央集権的なメンバー管理が必要となる。
ファイナリティの類型
ファイナリティとは、ブロック(トランザクション確定)が覆らないとどれほど確信できるかの度合いを指す。類型は主に三つある。
確率的ファイナリティはブロックが深く埋まるほど覆る確率が指数的に低下するが、理論上はゼロにならない。Nakamoto PoW(Bitcoin)および chain-based PoS が該当する。実用上は「N 確認後に確定とみなす」(Bitcoin は 6 確認が慣習)。
**決定的ファイナリティ(絶対的ファイナリティ)**はプロトコルが一度コミットしたら覆ることが暗号数学的に保証される。許可型 BFT(PBFT・Tendermint)が該当し、1 ブロックで即時ファイナリティが得られる。ただし BFT の 1/3 以上が故障すると Safety が破れる可能性がある。
経済的ファイナリティは slashing(担保没収)ペナルティにより覆すコストを極めて高くする方式である。Ethereum の Casper FFG / PoS では、バリデータが二重投票したときにステーク全量を没収するため、チェーンを覆すには莫大な経済的損失が必要になる。厳密には「覆ることが不可能」ではなく「覆すインセンティブが消える」点で決定的ファイナリティと区別される。
フォーク選択則
複数のノードが異なるブロック候補を提案したとき(フォーク)、どのチェーンを「正典」とするか決める規則が**フォーク選択則(fork choice rule)**である。
**最長鎖則(Nakamoto ルール)**は累積難易度が最大のチェーン(通常は最長チェーン)を正典とする。Bitcoin および旧 Ethereum PoW が採用。シンプルで Sybil 耐性が高いが、確率的ファイナリティのためブロック確定に時間がかかる。
**GHOST(Greedy Heaviest-Observed SubTree)**はチェーン長ではなく、サブツリーの総ブロック数(重さ)で正典を選ぶ。叔父ブロックも計上することで孤立ブロックの影響を減らし、スループットと安全性を改善する。
**LMD-GHOST(Latest Message Driven GHOST)**は Ethereum PoS が採用するフォーク選択則で、各バリデータが直近に投票したチェーン(Latest Message)の重さで分岐を解決する。Casper FFG と組み合わせて使われ、最終的にチェックポイントが経済的ファイナリティに到達する。
最重量チェーンはブロック数だけでなく累積 PoW や累積ステーク重みで正典を判断する拡張概念の総称であり、GHOST 系の亜種を含む。
ブロックチェーントリレンマとの関係
ブロックチェーントリレンマは Vitalik Buterin が提唱した命題で、「分散性(Decentralization)」「安全性(Security)」「スケーラビリティ(Scalability)」の三つを同時に最大化することが難しいと述べる。
コンセンサス設計はトリレンマの核心にある。
- 分散性を上げる(より多くのノードが参加できるようにする)と、全ノードが全ブロックを検証する必要があるため、処理速度(スケーラビリティ)が下がる。
- スケーラビリティを上げる(ブロックサイズ拡大・バリデータ数削減)と、参加の障壁が上がり分散性が低下する、またはバリデータ集中による安全性リスクが生じる。
- 安全性を上げる(より厳密な BFT 保証を求める)と、バリデータ間の通信量が参加者数の二乗でスケールするため大規模分散が困難になる。
この制約は FLP 定理や CAP 定理の別の表れともいえる。Layer-2 Rollup・シャーディング・モジュラーアーキテクチャ(実行 / DA / 合意の分離)は、実行レイヤーをコンセンサスの外に移すことでトリレンマを緩和しようとするアプローチである(詳細は別記事を参照)。
Backlinks
9 backlinks
- has_parts Layer-1 Blockchains(L1 チェーン総覧)
- requires Proof of Work(PoW / プルーフ・オブ・ワーク)
- requires Proof of Stake(PoS / プルーフ・オブ・ステーク)
- requires BFT・DAG 系コンセンサス
- requires その他の合意方式とコンセンサスのセキュリティ
- requires 分散台帳とブロック構造
- requires ブロックチェーンの暗号技術
- requires ブロックチェーンのネットワークとノード
- requires トランザクションモデル(UTXO と Account)