「ブロックチェーンって聞くけど、コンセンサスアルゴリズムって何のこと?」
「PoWとかPoSとか、いろいろあるけど違いがよく分からない…」
「合意形成って、なんでブロックチェーンに必要なんだろう?」
そんな風に思ったことはありませんか?
暗号資産やブロックチェーン技術の中心にある、この「コンセンサスアルゴリズム」。
少し難しい言葉に聞こえるかもしれませんが、実はネットワークの信頼を守るとても大切なルール決めなんです。
この記事では、コンセンサスアルゴリズムとは何か、その基本的な仕組みから、PoWやPoSといった代表的な種類、そしてブロックチェーンにおける合意形成の重要性まで、分かりやすい言葉で解説していきます。
読み終わる頃には、きっとニュースで聞く技術の話が、もっと身近に感じられるはずです。
この記事では、「コンセンサスアルゴリズム(Consensus Algorithm)」とは一体どんなものなのか、なぜ必要なのか、そして有名な「PoW」や「PoS」をはじめ、どんな種類があるのかを、皆さんと一緒にやさしく学んでいきたいと思います。
この記事は、特定の暗号資産をおすすめするものではありません。
技術について知るため、学習するための情報として、気軽に読んでみてくださいね。
- コンセンサスアルゴリズムって、そもそも何をするもの?
- なぜコンセンサスアルゴリズムが必要なの? みんなで管理する難しさ
- いろいろある! コンセンサスアルゴリズムの種類と仕組み
- プルーフ・オブ・ワーク(Proof of Work, PoW) 計算競争で決める!
- プルーフ・オブ・ステーク(Proof of Stake, PoS) コインの保有量で決める!
- デリゲーテッド・プルーフ・オブ・ステーク(Delegated Proof of Stake, DPoS) 代表者を選んで任せる!
- プルーフ・オブ・オーソリティ(Proof of Authority, PoA) 信頼できる人が承認!
- プルーフ・オブ・バーン(Proof of Burn, PoB) コインを燃やして証明?
- プラクティカル・ビザンチン・フォールト・トレランス(PBFT) 多数決で素早く決定!
- Raft シンプルで分かりやすい合意形成
- まだまだある! その他のコンセンサスアルゴリズム
- コンセンサスアルゴリズムの課題と バランスの難しさ
- コンセンサスアルゴリズムのこれから どう進化していく?
- まとめ みんなで決めるルール コンセンサスアルゴリズム
コンセンサスアルゴリズムって、そもそも何をするもの?
まずは、「コンセンサスアルゴリズム(Consensus Algorithm)」が、ブロックチェーンの中でどんな役割を果たしているのか、基本的なところから見ていきましょう。
すごく簡単に言うと、コンセンサスアルゴリズムは「みんなで情報を正しく記録するためのルール」のことです。
ブロックチェーンは、たくさんのコンピューター(ノードと呼ばれます)が繋がったネットワークで、情報を管理しています。
特定の偉い管理人さんがいるわけではありません。
そんな中で、新しい取引の記録(ブロック)を追加するとき、「どの情報が本当に正しいのか」「どんな順番で追加していくのか」を、参加しているみんなで納得して決める必要がありますよね。
そのための共通ルールが、コンセンサスアルゴリズムなんです。
もし、このルールがなかったらどうなるでしょう。
あるコンピューターは「Aさんの取引が正しい」と言い、別のコンピューターは「Bさんの取引が正しい」と言って、記録がバラバラになってしまうかもしれません。
悪い人が、嘘の情報を書き込もうとするかもしれません。
コンセンサスアルゴリズムは、そんな混乱を防いで、みんなが持っている情報のつじつまが合うように、ネットワーク全体の信頼を守るための、大切な「決めごと」の役割を果たしているんですね。
なぜコンセンサスアルゴリズムが必要なの? みんなで管理する難しさ
銀行のような、一つの会社が情報を管理しているシステムなら、その会社が情報の正しさを保証してくれます。
しかし、ブロックチェーンのように、たくさんの参加者が分散して情報を管理するシステムでは、そうはいきません。
参加者同士が、お互いを完全に信じているとは限りません。
そんな状況で、どうやってみんなで「これが正しい情報だ」と納得し、同じ記録を持ち続けることができるのでしょうか。
ここが、分散型システムの難しいところであり、コンセンサスアルゴリズムが必要とされる理由です。
みんなで情報を管理するには、いくつか乗り越えるべき課題があります。
例えば、「誰かが同じお金を2回使おうとする(二重支払い)のをどう防ぐか」「一部のコンピューターが故障したり、嘘をついたりしても、全体としては正しく動き続けるにはどうすればいいか」「インターネットの通信が不安定でも、ちゃんとみんなで合意できるか」といった点です。
昔から「ビザンチン将軍問題」という例え話で語られるような、嘘つきや裏切り者がいるかもしれない状況でも、正しい結論を導き出すための工夫が、コンセンサスアルゴリズムには盛り込まれているのです。
いろいろある! コンセンサスアルゴリズムの種類と仕組み
コンセンサスアルゴリズムには、実はたくさんの種類があります。
それぞれ、ルール決めの方法や、得意なこと、苦手なことが違います。
ここでは、特に有名でよく使われているものを中心に、どんな仕組みなのかを覗いてみましょう。
プルーフ・オブ・ワーク(Proof of Work, PoW) 計算競争で決める!
プルーフ・オブ・ワーク(PoW)は、ビットコインで使われていることで、とても有名なコンセンサスアルゴリズムです。
「PoW」は「仕事の証明」という意味。
ここでの「仕事」とは、コンピューターを使った大変な計算作業のことです。
PoWのネットワークでは、「マイナー(採掘者)」と呼ばれる人たちが、新しい情報のブロックを作る権利をかけて、難しい計算問題を解く競争をします。
この計算はとても複雑で、高性能なコンピューターでたくさんの計算を試さないと解けません。
そのため、たくさんの電気も使います。
一番最初に問題を解いたマイナーが、新しいブロックを作る権利と、そのご褒美(新しいコインや手数料)をもらえます。
この作業が「マイニング」と呼ばれているものです。
他の人たちは、その答えが正しいかどうかを簡単に確かめることができます。
もし答えが間違っていたり、ブロックの中身がおかしかったりしたら、そのブロックは認められません。
PoWのすごいところは、この大変な計算競争のおかげで、悪いことをするのがとても難しくなっている点です。
嘘のブロックを作ったり、過去の記録を書き換えたりするには、ネットワーク全体の半分以上の計算パワーが必要になり、ものすごいコストがかかるため、現実的にはほぼ不可能とされています。
長い間使われてきた実績があり、とても安全性が高いと考えられています。
しかし、その反面、大量の電気を使うことが環境問題として心配されたり、取引の確認に少し時間がかかったり(ビットコインだと約10分)、一度に処理できる取引の量に限りがある、といった点が課題として挙げられます。
プルーフ・オブ・ステーク(Proof of Stake, PoS) コインの保有量で決める!
プルーフ・オブ・ステーク(PoS)は、PoWの電気消費問題を解決するためなどに考え出された、もう一つの主要なコンセンサスアルゴリズムです。
「PoS」は「保有の証明」といった意味合いです。
PoWが計算パワーを競うのに対して、PoSでは、そのブロックチェーンで使われている暗号資産(コイン)をどれだけたくさん、そして長く持っているか(ステークしているか)によって、新しいブロックを作る人(バリデーターと呼ばれます)が決まりやすくなる仕組みです。
バリデーターになりたい人は、自分の持っているコインをネットワークに預け入れ(ステーキング)します。
たくさん預けている人ほど、新しいブロックを作る役に選ばれる確率が高くなります。
選ばれたバリデーターは、ブロックを作って、その報酬として手数料などをもらえます。
もし、バリデーターがズルをして嘘のブロックを作ろうとしたら、罰として預けていたコインを没収されてしまう、というルールがあることが多いです。
これが悪いことをするのを防ぐ力になります。
PoSの一番のメリットは、PoWのような大変な計算競争がいらないので、使う電気の量がずっと少なく、環境にやさしい点です。
取引の確認もPoWより速いことが多いと言われています。
イーサリアムという有名なブロックチェーンも、PoWからPoSに移行しました。
しかし、PoSにも考えるべき点はあります。
コインをたくさん持っている人が有利になりやすいので、「お金持ちがもっとお金持ちになるのでは?」という心配の声もあります。
また、理論上、ブロックチェーンが二つに分かれたときに、バリデーターがどちらにも投票できてしまう問題(ナッシング・アット・ステーク問題)なども指摘されていますが、多くのPoSでは、この問題が起きないように対策がされています。
デリゲーテッド・プルーフ・オブ・ステーク(Delegated Proof of Stake, DPoS) 代表者を選んで任せる!
デリゲーテッド・プルーフ・オブ・ステーク(DPoS)は、PoSを少しアレンジしたようなコンセンサスアルゴリズムです。
「デリゲーテッド」は「委任された」という意味です。
DPoSでは、コインを持っている人たちが、投票によって、ブロックを作る代表者(デリゲートなどと呼ばれます)を選びます。
選ばれた少人数の代表者が、順番にブロックを作る役割を担当します。
コインを持っている人は、自分の持っている量に応じて投票権があり、信頼できる代表者に投票します。
代表者はブロックを作った報酬をもらい、その一部を投票してくれた人たちに配ることもあります。
もし代表者が悪いことをしたり、ちゃんと仕事をしなかったりしたら、投票によって交代させられる可能性もあります。
DPoSの良い点は、ブロックを作る人が少数なので、みんなで合意するのがとても速く、たくさんの取引をサクサク処理できることです。
EOSやTronといったプロジェクトで使われています。
しかし、ブロックを作る権限が少数の人に集中しやすいので、PoWやPoSに比べると、少し中央集権的になりやすい、という見方もあります。
代表者同士が相談して良くないことをする可能性や、投票にあまり参加しない人が多いと、一部の人の意見ばかりが通りやすくなる、といった点も考えられます。
プルーフ・オブ・オーソリティ(Proof of Authority, PoA) 信頼できる人が承認!
プルーフ・オブ・オーソリティ(PoA)は、コンピューターの計算パワーや持っているコインの量ではなく、「オーソリティ(権威)」、つまり「この人なら信頼できる」と認められた特定の参加者(バリデーター)に基づいて、合意を決める方法です。
PoAのネットワークでは、バリデーターになるには、普通、自分の身元を明らかにして、ネットワークの運営者などから信頼を得る必要があります。
選ばれたバリデーターが、順番にブロックを作ります。
バリデーターは、自分の信用を守るために、真面目に仕事をする動機があります。
もし悪いことをすれば、信用を失い、バリデーターの資格を失うかもしれません。
PoAの良い点は、バリデーターが限られているので、取引の処理がとても速く、電気もあまり使わないことです。
会社の内部システムや、特定の企業グループだけで使うような、プライベートなブロックチェーンでよく使われています。
しかし、その仕組み上、管理者がいる形になるので、中央集権的になります。
誰でも自由に参加できるパブリックなブロックチェーンにはあまり向いていません。
プルーフ・オブ・バーン(Proof of Burn, PoB) コインを燃やして証明?
プルーフ・オブ・バーン(PoB)は、ちょっと変わった考え方のコンセンサスアルゴリズムです。
ブロックを作る権利を得るために、マイナーは自分が持っているコインを「バーン(焼却)」、つまり、もう二度と使えない特別なアドレスに送る必要があります。
コインを「燃やす」ことで、ネットワークへの貢献を示し、それに応じてブロックを作る権利が与えられる、という考え方です。
たくさん燃やした人ほど、権利を得やすくなることが多いようです。
PoWが電気という現実の資源を使うのに対して、PoBはコインというデジタルの資源を「消費」するイメージですね。
メリットとしては、PoWのように電気を使い続けない点などが挙げられます。
デメリットは、コインを燃やすということは、その資産を永久に失うことなので、参加者にとってはリスクが高いことです。
まだ実験的な段階で、広く使われているわけではありません。
プラクティカル・ビザンチン・フォールト・トレランス(PBFT) 多数決で素早く決定!
プラクティカル・ビザンチン・フォールト・トレランス(PBFT)は、先ほど少し触れた「ビザンチン将軍問題」(嘘つきや故障者がいても正しい結論を出す問題)を解決するために考えられた、昔からある重要なアルゴリズムの一つです。
ネットワークの中に、多少の嘘つきや故障者がいても、残りの正直なメンバーで正しい合意ができるように設計されています。
PBFTでは、リーダー役のコンピューターが中心となって、他のメンバーと何回か「これでいい?」「OK!」「じゃあ決定ね!」といった感じでメッセージをやり取りし、全員が同じ結論に至るように進めます。
全体の約3分の1までのメンバーが嘘をついたり故障したりしても、大丈夫なように作られています。
PBFTの良い点は、一度決まったことは覆らない(ファイナリティがある)ことと、決定が速いことです。
計算競争もいらないので、電気もあまり使いません。
しかし、参加者が増えると、メンバー間のメッセージのやり取りがすごく多くなってしまい、動きが遅くなるという弱点があります。
そのため、比較的小さなネットワーク、特に企業グループなどで使うプライベートなブロックチェーンで使われることが多いです。
Raft シンプルで分かりやすい合意形成
Raft(ラフト)も、PBFTと同じように、みんなで合意するためのアルゴリズムですが、こちらは主に、コンピューターが突然止まってしまうような故障(クラッシュ故障)に強いように設計されています。
Raftは、「リーダー」と呼ばれる中心的な役割のコンピューターを決めて、そのリーダーが指示を出し、他のメンバー(フォロワー)がそれに従う、という分かりやすい仕組みになっています。
リーダーが新しい情報を記録したら、他のメンバーに「これを記録してね」と伝え、半分以上のメンバーが「記録したよ」と返事をくれたら、正式な記録として確定します。
もしリーダーが故障したら、残りのメンバーの中から新しいリーダーが選ばれます。
Raftの良い点は、仕組みが比較的シンプルで理解しやすいこと、そして安定した環境では効率よく動くことです。
ブロックチェーンそのものよりは、分散データベースなど、裏側のシステム設定を管理するためによく使われています。
ただし、元々は嘘つきがいるような状況はあまり考えていないので、誰でも参加できるパブリックなブロックチェーンには、そのままでは使いにくい面があります。
まだまだある! その他のコンセンサスアルゴリズム
ここで紹介したもの以外にも、本当にたくさんのコンセンサスアルゴリズムがあります。
例えば、コンピューターの計算パワーの代わりにハードディスクの空き容量を使う「プルーフ・オブ・キャパシティ(PoC)」、特別なハードウェアを使ってランダムな待ち時間で順番を決める「プルーフ・オブ・エルプスド・タイム(PoET)」、取引の順番を記録する特殊な仕組み「プルーフ・オブ・ヒストリー(PoH)」、ブロックチェーンとは違うデータ構造を使う「Hashgraph」など、それぞれがユニークな工夫を凝らしています。
コンセンサスアルゴリズムの世界は、とても奥が深いんですね。
コンセンサスアルゴリズムの課題と バランスの難しさ
コンセンサスアルゴリズムは、ブロックチェーンを支える大事な技術ですが、どんな方法にも良い面と、少し気になる点があります。
完璧なものは、なかなかないのです。
よく言われるのが「ブロックチェーンのトリレンマ」という考え方です。
これは、ブロックチェーンが目指したい3つの大切なこと、「分散性(特定の管理者に頼らない)」「セキュリティ(安全性)」「スケーラビリティ(処理能力の高さや速さ)」を、全部同時に最高レベルで実現するのはとても難しい、という経験からくる悩みのようなものです。
例えば、PoWは安全性と分散性は高いけれど、処理速度には限界があります。
DPoSは処理速度は速いけれど、少し中央集権的になりやすい、といった感じです。
多くのコンセンサスアルゴリズムは、この3つのバランスをどう取るか、という設計者の考え方の違いが現れていると言えます。
その他にも、いくつか考えるべき課題があります。
-
51%攻撃のリスク: 悪い人がネットワークのパワーの半分以上を支配してしまうと、不正ができてしまうかもしれない、という心配。
-
ルール変更の難しさ(ガバナンス): みんなで使うネットワークのルールを、どうやって公平に、そしてスムーズに変えていくか、というのは難しい問題です。
-
法律や規制: 新しい技術なので、法律やルールがまだ整っていない部分もあります。
-
技術的な難しさ: 仕組みが複雑で、理解したり使ったりするのが少し難しい場合もあります。
これらの課題を乗り越えて、もっと良いコンセンサスアルゴリズムを作ろうと、世界中で研究や開発が続けられています。
コンセンサスアルゴリズムのこれから どう進化していく?
コンセンサスアルゴリズムの世界は、今もどんどん新しくなっています。
PoWの電気の問題からPoSへの関心が高まる一方で、PoSの課題を解決しようとする新しい工夫や、まったく違うアプローチのアルゴリズムも生まれています。
これから先、コンセンサスアルゴリズムは、次のような方向に進化していくかもしれません。
-
いいとこ取り(ハイブリッド): いくつかのアルゴリズムの良いところを組み合わせて、弱点を補い合うような方法が増えるかもしれません。
-
もっとエコに: 電気の消費を抑えることは、これからも大切なテーマです。PoSのような省エネタイプが主流になっていく可能性があります。
-
もっと速く、たくさん処理できるように: ブロックチェーンの外で処理を手伝う技術(レイヤー2)や、仕事を分担して並行処理する技術(シャーディング)などが、コンセンサスアルゴリズムと連携して、全体のパワーアップに貢献するでしょう。
-
目的に合わせて最適化: 金融、物流、ゲームなど、特定の使い道にピッタリ合うように、特別に設計されたコンセンサスアルゴリズムが登場するかもしれません。
-
違うチェーンと繋がる: 異なるコンセンサスアルゴリズムを使っているブロックチェーン同士が、安全に情報をやり取りできる技術(相互運用性)が、ますます重要になってくるでしょう。
コンセンサスアルゴリズムは、単なる技術的なルールというだけではありません。
そのネットワークがどんな考え方で作られているか、どうやって運営されていくか、参加者にどんなメリットがあるか、といったこととも深く関わっています。
この技術がどう進化していくかは、ブロックチェーン全体の未来や、私たちがこれから使うであろう新しいデジタルサービスがどうなっていくかに、大きな影響を与えていくはずです。
まとめ みんなで決めるルール コンセンサスアルゴリズム
今回は、「コンセンサスアルゴリズム(Consensus Algorithm)」について、その役割から、PoWやPoSといった代表的な種類、そして課題や未来まで、できるだけ分かりやすくお話ししてきました。
コンセンサスアルゴリズムは、特定の管理者がいない分散型のネットワークで、情報の正しさについてみんなで合意するための、とても大切なルール決めプロセスです。
計算競争をするPoW、コインの保有量で決めるPoS、代表者を選ぶDPoS、信頼できる人が承認するPoAなど、本当にいろいろな方法があります。
それぞれに良い点、気になる点があり、安全性、処理速度、分散性などのバランスをどう取るかが考えられています。
完璧なアルゴリズムはないかもしれませんが、それぞれの特徴を知って、目的に合ったものが使われていることを理解するのは面白いですね。
コンセンサスアルゴリズムは、今も新しいアイデアが生まれ、進化を続けています。
この「みんなで決めるルール」の進化を知ることは、ブロックチェーン技術がこれからどんな未来を作っていくのかを理解するための、大事なヒントになるでしょう。
免責事項
この記事は、コンセンサスアルゴリズムに関する一般的な情報を提供することを目的として書かれたものです。
特定の暗号資産、トークン、プロジェクト、または投資戦略を推奨したり、勧誘したりするものではありません。
ブロックチェーン技術や暗号資産の利用や取引には、様々なリスクが伴う可能性があります。
この記事の情報を元に行ったいかなる行動の結果についても、この記事の作成者は一切の責任を負うことはできません。
技術の評価や投資などに関する判断は、ご自身の責任において、十分に情報を集め、よく検討した上で行ってください。
必要に応じて、専門家にご相談することをおすすめします。
コメント