コンセンサス(PoW・PoS)
中央管理者なしで台帳が一致する理由をつかめる。ナカモト合意の確率的ファイナリティ、PoWとPoSのシビル耐性の違い、エネルギーとセキュリティの関係まで原理で腑に落ちる。
- 1.パブリックチェーンの合意は「投票者を数える」のではなく、参加コスト(計算量やステーク)で多数派を定義してシビル攻撃を防ぐ。これがPoW・PoSの本質。
- 2.ナカモト合意は最長(最重量)チェーン規則で分岐を1本へ収束させる。確定は白黒ではなく確率的で、後続ブロックが積み上がるほど巻き戻り確率が指数的に下がる。
- 3.PoWの安全性はハッシュレートの過半数コスト、PoSはステークの過半数コストに帰着する。PoSは省エネだが、二重投資やnothing-at-stakeへの追加対策(スラッシング等)が要る。
パブリックチェーンで合意が難しい理由
分散台帳(distributed ledger)の合意は、社内クラスタの合意(/devops/)とは前提が根本的に違います。社内ならノードの身元は既知で数も固定なので、過半数や3分の2といった票数で多数派を決められます。ところがパブリックチェーンは誰でも匿名で参加できる(permissionless)ため、一人が大量の偽ノード(Sybil)を立てれば、票数ベースの多数決は容易に乗っ取られます。
そこでナカモト(Satoshi Nakamoto, 2008)が持ち込んだ発想は、**「一人一票」ではなく「一計算力一票」**でした。合意への影響力を、いくらでも複製できるアイデンティティではなく、複製にコストがかかる希少資源(計算量、のちにステーク)に結びつける。これがシビル耐性の核であり、PoW・PoS双方に共通する土台です。
分散合意は一般に安全性(正直なノードが矛盾した値を確定しない)と活性(いつかは確定が進む)の両立を要求されます。BFT型(/devops/ の合意記事群)が即時に覆らない確定を与えるのに対し、ナカモト合意はこの2性質を確率的に、かつ大規模な匿名参加者の下で満たす点が新しさでした。
Proof of Work(PoW)の仕組み
PoWでは、ブロックを提案する権利を得るために計算パズルを解きます。中身はハッシュ関数(/security/ の暗号ハッシュ)の逆問題です。ブロックヘッダに含まれるノンス(nonce)を変えながらハッシュを計算し、その値がある目標値(target)以下になる入力を探します。ハッシュは出力が予測不能なので、条件を満たすノンスは総当たりで探すしかない——ここに計算コストが生じます。
# PoW マイニングの本質(擬似コード)
target = 難易度から定まる上限値(小さいほど難しい)
nonce = 0
loop:
h = Hash(block_header_without_nonce || nonce)
if h <= target:
return nonce # 発見。ブロックをネットワークへ放送
nonce = nonce + 1
重要なのは検証の非対称性です。正しいノンスを見つけるには膨大な試行が要るのに、他ノードがその正しさを確かめるのはハッシュ1回で済みます。難易度(difficulty)はネットワーク全体のハッシュレートに追随して自動調整され、ブロック生成間隔が一定(ビットコインは約10分)に保たれます。攻撃者が偽の履歴を作るには、その区間の計算をやり直す必要があり、正直なネットワークの計算力を上回らない限り追いつけません。
PoWが示すのは真偽の証明ではなく、「このブロック背後に相応の計算資源を投じた」というコストの証拠です。だからチェーンの正しさは、積み上がった**総仕事量(累積難易度)**で測られます。次節の最長チェーン規則が「最長」ではなく実際には「最重量」で判定されるのはこのためです。
ナカモト合意と確率的ファイナリティ
複数のマイナーがほぼ同時にブロックを見つけると、チェーンは一時的に分岐(fork)します。ナカモト合意の規則はシンプルで、ノードは常に累積仕事量が最大のチェーンを正とし、その先端に次を積みます。短い枝はやがて見捨てられ、履歴は1本へ収束します。
ここで生じる確定の性質が確率的ファイナリティです。BFT型のような「確定したら絶対覆らない」保証はありません。代わりに、あるブロックの後ろに積まれたブロック数(確認数, confirmations)が増えるほど、それを覆す確率が指数的に小さくなる。攻撃者が過去のブロックを書き換えるには、そこから先端までを正直側より速く再構築せねばならず、計算力が過半数未満ならレースに勝てる確率は確認数とともに急減します。
| 確定の型 | ファイナリティ | 巻き戻りの可能性 | 代表例 |
|---|---|---|---|
| 確率的(ナカモト) | 確認数を重ねるほど覆りにくい | 理論上ゼロにはならないが指数的に減衰 | Bitcoin, PoW時代のEthereum |
| 決定的(BFT) | 定足数に達した時点で確定 | プロトコル上は起きない(3分の1未満の悪意まで) | Tendermint, Casper FFG |
この違いは実務判断に直結します。少額決済なら1〜数確認で足りますが、高額の取引所入金が6確認を待つのは、確率的ファイナリティ下で巻き戻りリスクを十分小さくするためです。「K未満の確認では受け付けない」という運用は、確率をコストと釣り合う水準まで下げる工学的な閾値設定にほかなりません。
Proof of Stake(PoS)の仕組み
PoSは影響力の源泉を計算量から**ステーク(担保する保有量)**へ置き換えます。ブロック提案・検証の権利は、各バリデータ(validator)が預けたコインの量に比例して割り当てられます。偽ノードを増やしても、資金を分散させるだけで合計の重みは変わらないため、シビル攻撃は成立しません。希少資源が「電力」から「ロックした資本」に替わっただけで、シビル耐性の論理は同じです。
ただしPoSには、PoW由来のコストが消えたことで生じる固有問題があります。
| 問題 | 内容 | 対策 |
|---|---|---|
| nothing-at-stake | 分岐時にどの枝にも同時に投票してもコストがゼロなら、皆が全枝を支持し収束しない | スラッシング(二重投票を検知しステークを没収) |
| long-range攻撃 | 過去に鍵を持っていた者が古い時点から別履歴を再構築できてしまう | 弱い主観性(weak subjectivity)=最近のチェックポイントを信頼起点にする |
| stake集中 | 保有が多いほど報酬も増え、富の偏りが進みうる | 委任・上限設計・報酬曲線の調整 |
スラッシングが要点です。PoWでは間違った枝を採掘した計算力は物理的に浪費されるため、二重支持は自然に割に合いません。PoSにはその物理コストがないので、矛盾する2つのブロックに署名した証拠が見つかれば**預けたステークを没収(slash)**し、規律を人為的に作り出します。ここでコスト構造をPoWと等価に戻しているわけです。イーサリアムの現行合意は、提案を担うGasper(LMD-GHOST+Casper FFG)で、フォーク選択は確率的だが、2エポックごとにBFT的なチェックポイント確定を重ねる混成型です。
PoSは電力を担保資本に替えただけに見えて、故障・攻撃モデルが変わります。PoWの安全性はチェーン外の物理法則(電力・ハードウェア)に根ざすのに対し、PoSの安全性はプロトコル内の経済的ペナルティが正しく執行されることに依存します。監視・証拠提出・没収の仕組みが破れると、シビル耐性そのものが揺らぎます。
シビル耐性・エネルギー・セキュリティの関係
両者の安全性は最終的に**「多数派を握るコスト」**へ帰着します。攻撃が割に合うかどうかは、このコストと攻撃で得られる利得の大小で決まります。
| 観点 | PoW | PoS |
|---|---|---|
| シビル耐性の源泉 | 計算量(外部の電力・機材) | ステーク(ロックした資本) |
| 過半数攻撃 | ハッシュレートの過半数(51%攻撃) | 総ステークの過半数取得 |
| 攻撃コストの性質 | 継続的に電力を燃やし続ける | 資本拘束+失敗時にスラッシュで消失 |
| エネルギー | 設計上、大量消費が安全性の裏付け | 消費は僅少 |
| ファイナリティ | 確率的 | 確率的+チェックポイント確定(実装依存) |
PoWのエネルギー消費は無駄ではなく、安全性の担保そのものという見方が要点です。燃やした電力の総量が、履歴を書き換えるために攻撃者が支払うべきコストの下限を与えます。批判される消費電力は、裏を返せば「攻撃を物理的に高くつくものにする装置」なのです。PoSはこの物理的裏付けを捨てる代わりに、スラッシングという経済的な罰で同じ効果を狙います。前者は環境負荷、後者は罰則設計の複雑さと執行の信頼という、異なるコストを払っています。
・シビル耐性=匿名で偽ノードを量産する攻撃を、複製に希少資源(計算量/ステーク)を要求して無効化すること。PoW・PoS共通の目的。
・ナカモト合意は最長(最重量)チェーン規則で分岐を収束させ、確定は確率的ファイナリティ(確認数で巻き戻り確率が指数減衰)。
・51%攻撃はPoWのハッシュレート過半数、PoSはステーク過半数が境界。
・PoSのnothing-at-stakeはスラッシングで対処する、はセットで問われやすい。
まとめ
- パブリックチェーンの合意は票数では守れない。シビル耐性のため、影響力を複製困難な希少資源(PoWは計算量、PoSはステーク)に結びつけるのが本質。
- PoWはハッシュの逆問題を解く計算コストでブロック権を配り、検証は安価。チェーンの正しさは累積仕事量で測る。
- ナカモト合意は最重量チェーン規則で分岐を1本へ収束させ、確定は確率的。確認数が増えるほど巻き戻り確率は指数的に下がる。
- PoSは担保資本でシビル耐性を得て省エネだが、nothing-at-stakeやlong-range攻撃にスラッシングや弱い主観性で対処する必要がある。
- 双方の安全性は多数派を握るコストに帰着する。PoWは電力という物理コスト、PoSは経済的ペナルティで、それぞれ別の代償を払っている。
ブロックチェーン Article
コンセンサス(PoW・PoS)を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
ブロックチェーン
比較で見る軸
難易度: advanced / カテゴリ: ブロックチェーン / タグ数: 6
導入後に効く点
ナカモト合意は最長(最重量)チェーン規則で分岐を1本へ収束させる。確定は白黒ではなく確率的で、後続ブロックが積み上がるほど巻き戻り確率が指数的に下がる。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- ブロックチェーン
- タグ数
- 6
判断チェックリスト
- 自社の用途が「ブロックチェーン / 分散台帳」に近いか確認する。
- 強みである「パブリックチェーンの合意は「投票者を数える」のではなく、参加コスト(計算量やステーク)で多数派を定義してシビル攻撃を防ぐ。これがPoW・PoSの本質。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。