暗号資産のしくみを知る

コンセンサスアルゴリズムとは?PoW・PoS・DPoSの違いを図解

編集:金融ナンバーワンサイト | 最終更新日:

コンセンサスアルゴリズム(合意形成アルゴリズム)は、複数のコンピューターが、共有する取引履歴と順序をそろえるためのルールです。ブロックチェーンでは、取引を検証し、有効な候補のうちどの履歴を採用するかを決める仕組みとして使われます。

PoWは計算による作業の証明、PoSは預け入れた資産(ステーク)を基にした参加と投票、DPoSは投票で選ばれた代表者が特徴です。

Bitcoin・Ethereum・TRONを例に、履歴をどう決めるかを見ていきましょう。記録をブロックにつなぐ基本構造は、ブロックチェーンの仕組みと限界で解説しています。

PoW・PoS・DPoSの違い

3方式の違いは、参加条件とブロックを提案する人に表れます。提案されたブロックは、ほかのノードも内容を検証します。表では、Bitcoin・Ethereum・TRONを代表例として比べています。

狭い画面では表を横に動かせます。

3方式の参加条件とブロック提案者
比較項目PoWPoSDPoS
名前Proof of Work
プルーフ・オブ・ワーク
Proof of Stake
プルーフ・オブ・ステーク
Delegated Proof of Stake
委任型のPoS
参加の基になるものハッシュ計算に投入する計算能力プロトコルに預け入れた資産(ステーク)トークン保有者などからの投票・委任
ブロックの提案条件を満たす作業証明を見つけたマイナープロトコルのルールで選ばれたバリデーター選出された代表者・ブロック生成者
具体例BitcoinEthereumTRON
確認したい点計算能力の集中、攻撃に必要な資源、履歴の巻き戻りステークや運用主体の集中、罰則、確定条件投票権と代表者の集中、選び直しの仕組み、確定条件

PoWはブロックを作るために計算を競います。PoSやDPoSでは、その計算競争に代わってステークや投票を使います。速度や手数料はブロック容量や需要にも左右され、分散性には計算能力や投票権、運営者の集中度も関わります。

方式の概要:NISTの技術概説。個別実装の根拠は各節に示します。

候補が二つに分かれたら、どう選ぶ?

離れた場所にあるコンピューターへ、情報が届く時刻はそろいません。同じ直前のブロックに続く候補A・Bが生まれ、どちらを先に受け取るかがノードによって違うことがあります。

A・Bがどちらもルールを満たしている場合、次に必要なのは共有する履歴を選ぶことです。通信の時間差による一時的な分岐は、正常に動いているネットワークでも起こります。

ここまで共有していた履歴
↘ 候補AAを先に受け取ったノードがある例:あなたの送金を含む
↙ 候補BBを先に受け取ったノードがある例:あなたの送金をまだ含まない
どちらも単独では有効と仮定した説明用の図です。不正な署名など、ルールを満たさない候補は、履歴選択の前に検証で除外します。

同じ場面をBitcoinとEthereumで比べる

Bitcoinなら
有効なブロックからなる候補のうち、累積の作業量が最も大きいチェーンを採用します。A側の後ろにブロックが加わってその条件を満たせば、A側をたどります。後から採用する履歴が変わることを再編成(reorg)と呼びます。
Ethereumなら
バリデーターの投票をステークで重み付けして、たどる枝を選びます。さらに、節目のブロックに対する投票が所定の条件を満たすと、履歴の確定が進みます。履歴の選択と確定には、それぞれルールがあります。
あなたの送金がAにだけ入っていたら
B側が採用されると、Aにあった送金記録はいったん採用されなくなります。その送金が別のブロックへ入り直す場合もあるため、収録された後も確定状態を確認します。

ビザンチン将軍問題との関係

一部の参加者が故障したり、うその情報を送ったりする中で、正常な参加者が同じ結論にたどり着けるか。これを扱うのがビザンチン将軍問題です。こうした故障や不正に耐えて合意を保つ性質を、ビザンチン耐障害性(BFT)と呼びます。

耐えられる故障や不正の範囲は、参加者の人数、投票の重み、通信の条件などによって変わります。

PoWの仕組み:計算で作業を証明し、各ノードが検証する

Bitcoinのマイナーは、候補ブロックのヘッダーの値を変えながらハッシュ計算を繰り返します。結果が定められたターゲット値以下になれば、作業証明の条件を満たします。条件に合う値が出るまで、コンピューターが試行を繰り返します。

  1. マイナーが候補を作る取引をまとめ、ヘッダーのハッシュが条件に合うか計算します。
  2. 条件を満たした候補を送る見つかったブロックをネットワークへ伝えます。
  3. フルノードが内容を検証する作業証明に加え、署名や二重払い、報酬などのルールも確かめます。
  4. 有効な履歴から選ぶ累積作業量が最大のチェーンを採用します。

「最長のチェーン」と説明されることもありますが、Bitcoinで基準になるのは、ルールを満たしたチェーンに積み重なった作業量です。

Bitcoinは2,016ブロックごとに難易度を調整し、平均で約10分に1ブロックというペースを目指します。実際の生成間隔にはばらつきがあり、送金にかかる時間はブロックへの収録や受取先の確認条件によって変わります。

根拠:Bitcoin Developer「Block Chain」。発行と報酬の変化はビットコインの半減期へ。

51%攻撃で起こり得ること

計算能力の過半数を支配する攻撃者は、自分に都合のよい履歴を伸ばし、取引の取り込みを妨げたり、自分の支払いを巻き戻して二重払いを狙ったりしやすくなります。この攻撃でも、他人の秘密鍵を割り出したり、署名を偽造して他人の資金を使ったりすることはできません。

攻撃の成功可能性や費用は、計算能力、攻撃を続ける時間、ネットワークの状況によって変わります。計算能力が過半数未満でも、二重払いが成功する可能性はあります。

根拠:Bitcoin原論文の第6節・第11節。鍵の漏えいへの対策は、秘密鍵・シードフレーズの管理をご覧ください。

PoSの仕組み:ステークを基に提案・投票する

PoSでは、プロトコルに資産を預け入れたバリデーター(検証者)が合意に参加します。選び方や罰則はチェーンごとに違うため、ここではEthereumの現在の仕組みを例にします。Ethereumは2022年9月15日の「The Merge」でPoWからPoSへ移行しました。

選ばれたバリデーターがブロックを提案し、受け取った側は取引を実行し直して結果を検証します。バリデーターは、正しいと判断したブロックや履歴への投票にあたる「アテステーション」を送ります。

履歴を選ぶルールと、確定するルール

Ethereumは、ステークで重み付けした投票で履歴を選び、節目となるチェックポイントを確定します。チェックポイント間への投票が参加中バリデーターの総有効ステークの3分の2以上に達し、前後のチェックポイントの条件もそろうと、確定が進みます。

確定を覆すような不正な投票には、多額のステークを失う罰則がかかります。一方、十分な投票が集まらないときは、確定が遅れます。

根拠:Ethereum公式「Proof-of-stake」、攻撃と防御の説明。ETHやスマートコントラクトの役割はイーサリアムの基本へ。

不正な投票へのスラッシングと、不参加のペナルティ

Ethereumでは、同じスロットに異なるブロックを二重に提案する、矛盾する投票をする、といった行為がスラッシングの対象です。ステークの損失に加え、バリデーターから退出させられます。

オフラインで投票できなかった場合にもペナルティはありますが、スラッシングとは条件や処分が異なります。サービス経由で参加する場合は、ステーキングの報酬とリスクで、損失を誰が負担するかも確認してください。

根拠:Ethereum公式の報酬・罰則。

DPoS・PoA・PoHは、どこが違う?

DPoS:代表者を投票で選ぶ

DPoSは、保有者などの投票でブロック生成を担う代表者を選ぶ仕組みです。TRONでは、選ばれた「スーパー代表」がブロックを作り、通常のフルノードも内容を検証します。

確認したいのは、代表者の人数、投票権の集中、代表者を交代させる方法です。こうした運営の仕組みも、性能や安全性に関わります。

例の根拠:TRON公式「Super Representatives」。

PoA:認められた主体がブロック生成を担う

PoA(Proof of Authority)は、認められた主体の身元や権限を基に参加者を決める仕組みです。許可型のネットワークでは、参加を認める主体と、その判断基準が信頼の土台になります。

PoH:出来事の順序を扱う技術

Solanaの技術として知られるPoH(Proof of History)は、出来事の順序や時間の経過を検証するための技術です。どの履歴を採用するかは、別の合意ルールで決めます。

根拠:Anza公式の同期とPoHの説明。

「承認された」と「確定した」はどう違う?

ファイナリティとは、取引履歴の確定性のことです。Bitcoinでは、攻撃側の計算力がルールを守る側より小さいなどの前提で、後続ブロックが増えるほど巻き戻りの可能性が下がります。これを確率的な確定性と呼びます。Ethereumは、投票によってチェックポイントを確定する仕組みです。

ウォレットやサービスの「承認」「確認済み」が何を指すかは、それぞれの案内で確認してください。ブロックへの記録から取引所の入金反映までは、次のようにいくつかの段階があります。

送付状況ごとの確認先
いま分かっている状態状態の意味次に確認すること
送付元で「手続き中」送付元の処理中。まだネットワークへ送信されていない可能性もある送付元の履歴・お知らせ・トランザクションID(Txid)の有無
ネットワークへ送信済みだが、ブロック未収録チェーンでの記録待ち対応するネットワークのエクスプローラーでTxidと収録の有無を確認。不明なら、選択したネットワークと送付元の履歴を照合
ブロックに記録済み、まだ確定前現在の履歴には含まれる。確認数や確定状態の確認が必要銘柄・宛先・数量と、Ethereumでは実行結果(成功/失敗)。意図した移転を確認できたら、利用先の確認条件とチェーンの確定状態
チェーン上では確認が進んだが、取引所残高に出ない受取サービス側の反映条件も確認する段階受取先の必要確認数・対応ネットワーク・追加情報の登録状況・保守のお知らせ

Ethereumでは、実行に失敗した取引もブロックに記録され、そのまま確定することがあります。「失敗」と表示されたら、送付元のアプリやサービスでエラー内容を確認してください。「成功」の場合も、銘柄・数量・宛先が送付した内容と一致するかを確かめます。

実行結果の根拠:Ethereum公式の取引レシートの説明。実行結果を確認できるのは、ブロックに収録された後です。

正しい宛先・銘柄・数量での送付成功を確認できたら、受取先が必要とする確認数などを調べます。残高への反映が遅くても、同じ送付を繰り返す前に、履歴と受取先の案内を確認しましょう。

サービスの案内例:bitbankの送付状況の確認、入金に必要な承認。実際の条件は自分が使う受取先で確認します。送付可否やネットワークの選び方は送れないときの確認手順へ。

方式名を見たら、次に確かめたいこと

方式を比べるときは、現在の公式資料で次の4点を確認しましょう。

  1. 誰が提案し、誰が検証するか。参加条件や運営者、計算能力・投票権の集中度を調べます。
  2. 候補が分かれたらどう選ぶか。作業量・投票の重み・確定の条件を確認します。
  3. 「速い」はどの時間か。ブロックに入るまで、確定まで、サービス残高に出るまでをそろえて比べます。
  4. 障害や不正にどう対処するか。罰則、停止時の復旧、公式の変更履歴を確認します。

ガス代は、取引の需要や処理容量にも左右されます。EthereumのThe Mergeでは合意方式がPoWからPoSに変わりましたが、ガス代を下げるために処理容量を増やしたわけではありません。Ethereum公式の説明

分散性・安全性・処理能力の両立が難しいという課題は、ブロックチェーンのトリレンマと呼ばれます。比較するときは、どのネットワークの、どの攻撃への強さや処理の速さを比べているかを確かめましょう。

仕様を調べる方法は、ホワイトペーパーの探し方・読み方にまとめています。技術面に加え、価格下落、鍵の漏えい、アプリの欠陥、保管先の破綻にも注意が必要です。暗号資産への投資では、資金を失う可能性があります。

この記事の制作方法と出典について

金融ナンバーワンサイトが、NIST・Bitcoin・Ethereumなどの技術資料を基にまとめています。調査・構成・原稿作成に生成AIを利用し、公式資料との照合と別エージェントによる確認を行いました。運営者個人の執筆・監修による記事ではありません。

図のA・Bは説明用の例です。仕様の確認日は、冒頭の最終更新日です。編集方針・訂正の連絡先

ほかの学習テーマを見る

あわせて読みたい