導入
台帳を全員で持つなら、「次のブロックを誰が作り、どれを正しいと認めるか」を全員で一致させる必要があります。この仕組みを 合意形成(コンセンサス) と呼びます。代表的な2方式、PoW と PoS を見てみましょう。
説明
新しいブロックをネットワークに追加する権利を得るには、ルールで決められた「面倒な条件」を満たす必要があります。
PoW(Proof of Work / 仕事の証明) … 「条件を満たすハッシュ」を見つけるまで、数値(ノンス)を変えながら膨大な計算を繰り返す。最初に見つけた人が次のブロックを作れ、報酬をもらえる。この作業を マイニング(採掘) と呼びます。ビットコインが採用。
flowchart TD
T[未確定の取引を集める] --> P[ブロック案を作る]
P --> N[ノンスを変えて<br/>ハッシュを計算]
N --> C{先頭が0000...<br/>の条件を満たす?}
C -- いいえ --> N
C -- はい --> B[ブロック確定!<br/>ネットワークへ発表]
B --> V[他ノードが検証して<br/>各自の台帳に追加]
PoS(Proof of Stake / 保有の証明) … 通貨をたくさん預けて(ステーク)担保にした人の中から、次のブロックを作る人を選ぶ。膨大な計算をしないため消費電力が圧倒的に少ないのが利点。Ethereum は 2022 年に PoW から PoS へ移行しました(The Merge)。
| PoW | PoS | |
|---|---|---|
| 選ばれ方 | 計算を最初に解いた人 | 通貨を多く預けた人から抽選 |
| コスト | 大量の電力・計算機 | 預ける資金(ステーク) |
| 不正のペナルティ | 電力の浪費 | 預けた資金の没収(スラッシング) |
| 代表例 | ビットコイン | 現在のEthereum |
どちらも共通するのは「不正をするより正直に従うほうが得」という設計です。多数の参加者が正直に動く限り、改ざんは割に合わず、台帳の正しさが保たれます。
やってみよう
PoW で「1つのブロックを書き換える」には、そのブロック以降を全部計算し直したうえ、正直なネットワーク全体の計算力を上回り続けねばなりません。これが「51%攻撃」が非現実的とされる理由です。なぜ後ろのブロックほど改ざんが難しくなるか、レッスン2の鎖の図と合わせて考えてみましょう。