
こんにちは!仮想通貨ブロガーのカサハラ(@obakasahara)です!
軽く自己紹介しておくと、現在仮想通貨投資きっかけに仮想通貨の勉強を始め、ブログ(http://gusyakarakennja.site/)で情報発信をしています。
— カサハラ1.0@仮想通貨 (@obakasahara) 2018年3月20日
ブログは始めて約2ヶ月ですが、IT企業や学生団体でwebメディア制作には2年近く携わっておりました。
今回は縁あって、寄稿形式で記事を書かせていただきますので、宜しくお願い致します!
今回のテーマは「コンセンサスアルゴリズム」です!
みなさん「POW」や「POS」って聞いたことありませんか?
これらは仮想通貨に利用されているブロックチェーンを成立させるための「コンセンサスアルゴリズム」と呼ばれるものです。
コンセンサスアルゴリズムは仮想通貨を勉強する上ではとても大切な知識で、これを理解していないと完璧に仮想通貨を理解することはできません。
そんなコンセンサスアルゴリズムについて、今回は「POW」「POS」「POI」「POC」「DPOS」の5つのコンセンサスアルゴリズムをご紹介します。
他にもコンセンサスアルゴリズムはありますが、全て取り上げるとキリがないので、今回はこれらの5つに絞ってついて解説していきますね!
もし、この記事を読んでコンセンサスアルゴリズムについて興味を持った人はネット上で詳しく調べてみてください!
目次
コンセンサスアルゴリズムとは?
まずコンセンサスアルゴリズムを理解するにはブロックチェーンの仕組みについて軽く説明しないといけません。
ブロックチェーンの仕組みを簡単に説明すると、取引情報がブロックに格納されて、そのブロックがチェーン上に繋がることで、取引情報の改ざんが不可能な仕組みのことです。
チェーン上に繋がっているというのが重要で、取引情報がブロックに格納されてたチェーンが長くなればなるほど、改ざんが困難になります。(あとで詳しく解説します)
現在このブロックチェーン技術は開発されてから10年近く経っていますが、一度も破られていないほどセキュリティがしっかりしています!
ブロックに入れる取引情報をチェックする作業があるのですが、これが「マイニング」と呼ばれています。
ブロックに入れた後は改ざんが難しくても、ブロックに入れる取引情報が間違っていたら問題ですから、格納する前にチェックする必要がありますね。
簡単にいうと、この取引情報を確認する方法が「コンセンサスアルゴリズム」です。
短くまとめると「ブロックに格納する取引情報を承認する方法」ですかね!
コンセンサス=承認、アルゴリズム=算法(方法論)なので、取引情報の(承認)コンセンサスをするための(方法論)アルゴリズムということです。
コンセンサスアルゴリズムはブロックの承認の仕方は異なりますが、実は基本的なブロックチェーンの仕組みに違いはありません!
なので、まずはもう少し詳しく基本的なブロックチェーンの仕組みを簡単に説明していきたいと思います。
ハッシュ値
ハッシュ値とはハッシュ関数というデータの受け渡しや保管の際に、そのデータが改変されていないか確認するために使われている技術で算出される値です。
あるデータをハッシュ関数に入れるとハッシュ値が生成されます。
このハッシュ値は元のデータに変換することが不可能なので、元のデータが改ざんされていないか確認できます。
具体的に説明すると「カサハラ」という言葉をハッシュ関数に入れると「0xsadskerwnr2435」(例えばなので、この文字列になるかはわかりません)のように不規則かつ長い文字列で表示されます。
「0xsadskerwnr2435」という文字列から「カサハラ」という言葉を導き出すことは不可能です。
なので、「カサハラ」という言葉(データ)を改ざんすると「0xsadskerwnr2435」という文字列が変化してしまうので、改ざんするとバレてしまいます。
これがハッシュ値です。
この技術を利用することで、ブロックチェーンのセキュリティが保たれています。
ブロックチェーンではブロックごとでハッシュ値が生成されます。
ブロックで生成されたハッシュ値は次のブロックのハッシュ値生成に利用されます。
つまりブロックチェーンとはハッシュ値を連鎖的に繋げているとも言えます!
このハッシュ値の仕組みにより、ブロックチェーンというものは改ざんされるリスクがほぼゼロになっています!
なぜ改ざんリスクがほぼゼロになるかというと、先ほども言いましたがブロックチェーンではこのハッシュ値がチェーン上に繋がっているので、一箇所のでもデータをいじってしまうとまた計算をしなければいけなくなってしまうからです。
このような仕組みがブロックチェーンの基本的な仕組みです。
ブロックチェーンの仕組みがわかったと思うので、次に5種類のコンセンサスアルゴリズムをそれぞれ紹介していきますね!
POW
コンセンサスアルゴリズムの中で最も早く誕生したのが「POW」です。
POWは初代仮想通貨の「Bitcoin(ビットコイン)」に採用されているコンセンサスアルゴリズムです。
POWの特徴を簡単に説明すると、コンピューターの計算(演算量)によって取引情報を承認していく方法です。
POWでは計算によってあるハッシュ値になる値(ナンス)を見つけた人がブロックを承認する人(次のブロックを生成する人)になります。
つまり、先ほどの例で言うと「0xsadskerwnr2435」というハッシュ値があった時、「カサハラ」という値(ナンス)を見つけた人がブロックを承認できる仕組みがPOWです。
この「カサハラ」を見つけるためには「サトウ」や「ゴトウ」などの適当な値を入れて計算する必要があります。
POWはこの計算によって改ざんのリスクをほぼゼロにしています。
なぜ計算することで改ざんリスクがほぼゼロになるかというと、演算にはパソコンが必要で、パソコンを動かすには電気代がかかります。
つまりハッキングをして改ざんしようとすると、電気代が膨大にかかってしまい、その分コストがかかってしまいます。
なので、POWではそういう意味でハッキングのリスクを減らすことができます。
POWのデメリット
しかし、POWにもデメリットがあります。
POWでは演算量の51%を占有するとハッキングが可能となります。
なぜかというとPOWでは演算量によって、ブロックの承認を行なっているので、51%の演算量を持つ個人または組織が存在してしまうと、たとえ改ざんしたとしても承認され続けてしまいます。
残りの49%の人々が正しいチェーンを承認し続けたとしても、51%の演算量には達しないので、結局は51%の人たちのチェーンが承認されてしまいます。
ファイナリティが取れない
またPOWでは完璧なファイナリティが取れないというデメリットも言及されています。
ファイナリティとは「決済が承認された事実」のことです。
POWでこのファイナリティが取れないというのは、確率的にはほぼ改ざんされていない状態になるだけで、POWでは「100%決済が完了した状態」というのは訪れません。
「100%決済が完了した状態」とはつまり、「100%改ざんされていない状態」のことですね。
つまりPOWでは取引承認を「100%に近い確率で改ざんされていないこと」が証明できるだけで、100%にはなりません。
そもそも完璧なファイナリティを得る必要があるかどうか議論が必要ですが、100%のファイナリティが必要な人たちにとってはこれはデメリットでしょう。
エコでない
POWでは電力を大量消費するので、エコでないという意見もありますね。
POWでは確かに電力が消費され、環境が破壊される可能性が指摘されていますが、逆に承認に電力を使うようにすることで、攻撃者が攻撃をするインセンティブを減らすという効果があります。
当然POWの場合、改ざんをしようとすると電力が必要となります。しかも改ざんしようとすると演算量の51%の電力が必要ですから、相当な電力ですよね。
この電力を消費するぐらいだったら、しっかりとマイニングした方が儲けが出る可能性が高いでしょう。
なので、電力消費はデメリットといえるだろうか?というのが僕の意見ですね。
POS
POSは「Proof of Stake」の略で、トークン保有量が多ければ多いほど、ブロックを生成できる確率が上がるアルゴリズムです。
POWでは演算量によって、ブロック生成者を決定していましたが、POSでは保有量によってブロック生成者が決まります。
つまりPOSでは仮想通貨を持っていれば持っているほど、ブロック生成を行えるので、多くの報酬が貰えることになります。
ブロック生成のことをPOWではマイニングと呼んでいますが、POSではフォージングと呼んでいます。
POSのメリット
POSでは電力を使用しないので、環境に優しいという特徴があります。
POWでは演算量の競争によってブロック生成者を決めているので、通貨の取引量が上がれば上がるほど、演算量が増えていき、電力を消費します。
一方で、POSの場合は保有量に従って確率的にブロック生成者を決定するので、電力は消費しません。
また、51%攻撃のリスクが少ないとも言われています。
POSで51%攻撃を行う場合はその通貨の流通量の51%を占有する必要があるので、それはかなり難しいとされていますね。
POWでは演算の占有、POSでは通貨の占有によって51%攻撃を行えますが、僕的にはどちらもかなり難しいと思うので、51%攻撃が行われる可能性は0に近いのではないかと思っています。
他にも承認が早いのも特徴ですね。
POWでは演算があるために、承認のスピードをどうしても挙げられませんが、POSではランダムに承認者を決めるので、承認のスピードは速くなります。
POSのデメリット
POSのデメリットは通貨の流動性が下がってしまうということが挙げられますね。
POSは通貨を持っていればいるほど報酬を貰える仕組みなので、みんな通貨を使わなくなってしまいます。
そうすると通貨の流動性が下がってしまうので、価格が安定せず、使いにくい通貨になってしまいます。
さらに、流動性が下がるということは貧富の差も広がってしまうということですね。
他にも「Nothing at Stake問題」という問題が挙げられます。
「Nothing at Stake問題」というのは何も賭けていなくても報酬を貰えてしまうので、ブロックチェーンが正しく繋がっていかないという問題です。
どういうことかというとPOWでは演算つまり電気代を賭けて、報酬を貰う仕組みで、最も長いブロックチェーンに属するブロックを生成しないと報酬がもらえないことになっています。
この仕組みによってマイナーたちは正しいブロックチェーン(最も長いチェーン)をしっかりと生成していきます。
一方でPOSでは通貨を保管しておくだけで報酬が貰えてしまうので、正しいチェーンを作ろうとするインセンティブが設定されていません。
つまりブロックを適当に生成しても報酬を貰えてしまうので、無駄にブロックを生成してしまう可能性があります。
イーサリアムはPOSに移行することになっていますが、Casperという不正なブロックを生成した人に罰則を与える仕組みを導入することで、この「Nothing at Stake問題」を解決しようとしています。
POI
POIは「Proof of Importance」の略で、通貨の保有量にプラスして取引回数や取引量など、複数の指標から「重要度スコア」を作成し、ブロック生成者を決定する仕組みです。
重要度スコアが高いほど、ブロック生成できる確率が高まります。
ブロック生成のことをPOWではマイニング、POSではフォージングといわれていますが、POIではハーベストといわれています。
このPOIを採用しているのは今の所はNEMという通貨のみとなっています。
POIのメリット・デメリット
POIではPOSでデメリットだった「流動性の低さ」を改善しているとされています。
POIでは保有量だけでなく。取引回数や取引量を基準にブロック生成者を決めているので、流動性を担保しながら、ブロック生成を行うことができます。
POIのデメリットは1万XEM以上の残高が必要なことですね。現在、XEMの価格は約35円なので、報酬を貰うには35万円以上のXEMが必要となります。
POWやPOSはそこまでお金を保有していなくても報酬を貰うことは可能なので、参入障壁は低いですね。
またPOIは他のコンセンサスアルゴリズムに比べて、歴史的に浅く、現在、NEMにしか採用されていません。
今後次第で採用されていく可能性はありますが、まだ現時点ではそこまで、何がメリットで何がデメリットかは浮き彫りにはなっていません。
今後に期待したいコンセンサスアルゴリズムですね。
POC
POCは「Proof of Consensus」の略で、Rippleが取り入れているアルゴリズムです。
このPOCは承認者を特定のノード(パソコン)のみに限定して、ブロックを生成していきます。
つまり、不特定多数の人たちがブロックチェーンを生成するのではなく、特定の人たちによってブロックチェーンが管理されることになります。
POCはよく中央集権的だと批判を受けていますが、信頼性の高い企業や組織が導入するには問題がないアルゴリズムだと言われています。
POCのメリット・デメリット
POCのメリットは承認の早さです。
特定の人たちが承認すれば、ブロックは生成されるので、不特定多数で承認するよりも承認スピードが格段に上がります。
デメリットはやはり中央集権的ということです。
中央集権的だと透明性が低く、トラストレスではないので、管理団体を信頼するしかありません。もし、管理団体が不正をしてデータを改ざんしても、わからないのは問題ともいえるかもしれません。
DPOS
最近、増えてきているのが「DPOS」というアルゴリズムです。
DPOSは「Delegated Proof of Stake」の略で、簡単にいうとブロック生成者を選挙で決めるアルゴリズムです。
通貨を保有している人は投票権があり、投票によってブロック生成者を決定します。ブロック生成者とブロック生成者に投票した人は報酬を受け取ることができます。
日本の選挙と同じような仕組みを採用しているのが、DPOSです。
DPOSのメリット・デメリット
DPOSのメリットはブロック生成者候補が少ないので、承認スピードが早くなります。
DPOSは不特定多数の人たちがブロック生成に携わっていますが、実際にブロックを生成する人は特定の人たちというのがポイントです。
この仕組みによって、より効率よくブロックを生成できます。
デメリットはブロック生成候補が徒党を組んだ場合、不正ができてしまう可能性があるということですね。
これは日本の政治で考えるとわかりやすいです。日本では政治の方向性によって政党を組みますよね。
あまりに巨大な政党ができてしまうと、独裁政治のようになってしまいます。
DPOSでももしブロック生成候補者が徒党を組んでしまうと、ブロックを中央集権的にコントロールできてしまう危険性がありますね。
コンセンサスアルゴリズムに良し悪しはない
僕の意見としてこのコンセンサスアルゴリズムに優劣はないと思います。
よくネット上では「POWとPOSはどっちらのアルゴリズムが優秀か」という議論がされていますが、この2つのアルゴリズムに優劣はなく、要するに使い所だと思います。
万能なコンセンサスアルゴリズムは存在せず、通貨によってどのコンセンサスアルゴリズムを使うかを決めるべきでしょう。
コンセンサスアルゴリズムについては以上です!
ブログで仮想通貨に関して情報発信しているので、興味がある方はこちらへどうぞ!ツイッターもやっているので、もし良かったらフォローよろしくお願いします!
最後までお読みいただきありがとうございました!
この記事を書いた人
#大学生ブロガー のカサハラです。 仮想通貨メインの雑記ブログやってます。
「おバカのおバカによるおバカのためのブログ」→http://gusyakarakennja.site
ブログ開始【2ヶ月で2万PV】達成!来月から海外放浪しながら、ブロガー&プログラマーとして遊んで生活します。