目次
世界中で何度も繰り返し議論されているであろうPoSとPoI、どちらのブロックの承認アルゴリズム(Consensus Algorithm)が優れているのか?という話題について、各アルゴリズムの解説と共に切り込んでみたいと思います。
PoSとPoIはPoWを改善するために考え出された
PoSとPoIは、それぞれPoWという別の承認アルゴリズムを改善するために考え出されたアルゴリズムです。なのでこの議論を進めるためにはPoW(Proof of Work)について理解しておく必要があるので先に解説していきたいと思います。
PoW(Proof of Work)とは?
承認アルゴリズムは、P2P(非中央集権)ネットワークにおける発言権(決定権)を誰に持たせるかを決める方法です。
Bitcoinのマイニングでは、ブロックチェーン上に新しいブロックを生成するために最新のブロックを承認する作業がそれにあたります。
Bitcoinでのブロック承認権の決め方はマイニングをする機器の計算力の高さです。ブロック承認時に特定のハッシュ値(ブロックの鍵)を探すために膨大な計算が必要になりますが、その計算を最速で解いたアドレスにブロック承認権を与えることになっていて、計算力の高さでブロック承認権を決めることをProof of Workと呼ばれています。
ちなみにPoWではブロック承認権をゲットしたときに報酬としてBTCが貰えます。そのため、世界中の企業が大量の計算機を投入して報酬を得るためにブロック承認権を争っているというわけです。これがいわゆるマイニング(採掘)です。
PoWでの問題点を受けて考え出されたPoSとPoIの特徴とは?
PoWでは高い計算力が求められるため、高性能なGPUを大量に用意できる資金力のある企業に報酬が偏りがち…。それでは非中央集権型のネットワークを目指している通貨としては問題があるのではないか?ということで考え出されたのがPoSとPoIです。
PoSとPoIを採用することで、PoWで問題視される「マイニングへの企業参入によるブロック承認の中央集権化」「マイニングに必要な膨大な電気代」。この2点を大きく改善することができるのです。
PoS(Proof of Stake)とは?
Proof of Stakeでのブロック承認権の決め方は通貨の所持割合の高さです。
PoSによる承認アルゴリズムが採用されている日本の仮想通貨界隈で有名な通貨としてはNEOやXPがあります。現在はPoWでブロックチェーンが生成されているETHも、将来的にはPoSを採用するとしています。
所持割合は次の計算式で計算される係数です。
- 所持割合=保有量×保持時間
- 保有量:その通貨の総発行数に対して何%所持しているか
- 保持時間:その通貨を同じアドレスにどれくらい長く保持しているか
簡単に言うと「いっぱい買ってずっと持っている」のが、より報酬を得るために必要なことになるわけですね。
通貨を所持しているだけでいいので、マイニング計算するために膨大な電気代を払う必要はありませんし、ブロック生成の度に所持割合に応じた報酬を得られるので、PoWのように1つのアドレスが報酬を総取りするということはありません。
仮にごく少数のアドレスが全体の過半数を超えるようなコインを大量に保有していたなら、報酬はそのアドレスに分配されますが、それほどに偏った分布で所有される通貨は、そもそも通貨としての価値がなくなってしまうので破綻するでしょう。
よって、結果的にブロック承認の中央集権化を避けることができる、という考えの基に成り立っているのです。
PoI(Proof of Importance)とは?
Proof of Importanceでのブロック承認権の決め方はアドレスの重要度の高さです。
PoIが採用されている有名な通貨はXEMがあります。
PoIでブロック承認権を決めるとき、その通貨のネットワークをどれだけ利用しているかを重要度という指数に変換して判定しています。
簡単に言うと「大量の通貨を頻繁にトランザクション生成して移動させている」アドレスがより報酬を得られやすくなる承認アルゴリズムです。
重要度の計算に用いられる要素は3つです。
- 取引(送金&着金)回数:送ったり受け取ったりする回数が多いと重要度UP
- 1度の取引に利用される通貨の枚数:一度の取引にたくさん通貨を利用すると重要度UP
- アドレスの通貨保有枚数:通貨をたくさん保有していると重要度UP
例えば、PoI通貨を1,000枚所有しているアドレスがあるとして、月に1回100枚送金(トランザクション生成)をするよりも、月に10回10枚ずつ送金する方が、合計で送金する枚数は同じでも重要度は高くなります。もうひとつ例をあげると、月に5回500枚ずつ送金するアドレスA・Bがあるとして、アドレスAは保有枚数10,000枚、アドレスBは保有枚数5,000枚だとしたらアドレスAの方が重要度は高くなります。
重要度の計算は通貨を受け取る場合も含まれるので、ネットワークをたくさん利用しているアドレスの重要度が高い、という意味が理解していただけるかと思います。
PoIの考え方としてはそのネットワークがより広がって沢山のアドレスに利用されることを目的にしているので、このような指数でブロック承認権を決めているようです。
NEMのネットワークでは同じアドレス間で頻繁にXEMを送金し、重要度を不正に上げられないようにプロテクトがかけらているので、健全にかつ活発にネットワークを利用しているアドレスに対して報酬が支払われるように工夫されています。
PoIもPoS同様、マイニング計算による電気代の消費もありませんし、報酬はブロック内の取引手数料から分配される仕組みになっているのでブロック承認の中央集権化を防ぐことができています。
ハーベスティングとは?
PoIでの報酬は、承認されるブロックの取引手数料から分配されるため、NEMのネットワークではハーベスティング(収穫)と呼ばれています、ブロックという実を育てて取引手数料という報酬を得るというところからきているようです。
ちなみにNEMにおけるブロック生成時に発生するハーベスティングの報酬はノードの種類によって一定量貰える場合と必ず貰えるわけではない場合に分けられます。
スーパーノードとは?
300万XEM以上保有、ネットワークに常時接続等いくつかの条件を満たしたノードを指します。ハーベスト(ブロック生成)の度に3,000XEMが報酬として貰えます。PoWでいうマイニング報酬と似ていますね。
通常ノードとは?
11,000XEM以上保有+熟成期間で建てられるノードです。ハーベストの度に抽選にかけられ、報酬がもらえたり貰えなかったりします。報酬の枚数も一定ではないので、もらえたらラッキーなんですね。
スーパーノードは将来的に報酬が枯渇して通常のハーベスティング報酬のみになるといわれていますが、重要度は高いので通常ノードよりも報酬がもらえる確率は高いだろうと言われています。
結局PoSとPoIどちらが優れているのか?
PoS、PoIそれぞれの概念に触れて、PoWの問題点を解決しようとしていることは理解できたかと思います。では、どちらがより優れているのか?
個人的な意見では、現状の仮想通貨事情を踏まえるとPoIが今のところ適しているのでは?と思います。
・POS=流動性が低くなってしまう。
・POI=流動性が高く維持される。
PoSの場合は、発行枚数が無限大のいわゆるインフレ通貨に採用されていることが多く、発行枚数が少ない時に多く通貨を集めた先行者に対して有利に働きます。PoSの性質を考えるとこれは突き詰めると通貨の流動性低下に繋がるのでは?という考えに至るからです。
今の仮想通貨界隈はまだまだ発展途上であることは間違いないですし、後からの参入障壁を低くしてよりたくさんの人に広がっていくことが大事だと個人的には思うので、今回はPoIを選ばせていただきました。
個人的意見はあるが実際は通貨と場面による
ここでは個人的意見でPoIを推させてもらいましたが、実際にはPoWもPoSもPoIもそれぞれ利点があって、しかも通貨によって細かく内容が変化して細分化されているので、仮想通貨の技術について勉強するほど一概にどれが一番優れているとは言いづらいです。
また、承認アルゴリズムの種類は、この3分類だけではなくまだまだ色んな種類があります。
大事なのはその仮想通貨の概念と承認アルゴリズムがマッチしているかどうか、を自分でしっかり判断することだと思います。