
今回は、前回に引き続きコンセンサスアルゴリズムについてまとめていきます。
ビットコインが採用しているPoWに引きつづき、PoSについて分かりやすく説明していきますね!
今記事の前半はPoWなどのコンセンサスアルゴリズムの概要を説明していますが、PoWの際にも記載させていただいたことなので、PoSの特徴のみを知りたい方は飛ばしてくださいね!
コンセンサスアルゴリズムとは?

そもそも「コンセンサスアルゴリズム」の意味なのですが、
コンセンサス=合意、承認
アルゴリズム=方法、算法
つまり、合意を取る方法という意味合いになります。
なぜ「暗号通貨にコンセンサスアルゴリズムが必要になるのか」という理由なのですが、ブロックチェーンには特定の管理者、中央の管理者は存在しないという特徴を持っています。
そこで発生する問題「取引・契約に対しての不正チェックを誰が行うか」という部分の、不正チェックを行う人を決定する方式がコンセンサスアルゴリズムです。
そして、暗号通貨によって異なる方式を取っているのですが、ビットコインは「PoW」、ADAやイーサリアム(今後)は「PoS」というコンセンサスアルゴリズムを採用しています。
これらのコンセンサスアルゴリズムによって、ブロックチェーンを成立しているんですね。
そして、PoWやPoSなど色々種類がありますが、それぞれ取引・契約の整合性をチェックする人の選出方法が異なりますので、どういったものなのか見ていきましょう!
ブロックチェーンの仕組みについて

コンセンサスアルゴリズムをきちんと理解するためには、ブロックチェーンへの理解が必要不可欠です。
ブロックチェーンを一言で表すと、よく言われているのが「世界中のみんなが見れる台帳」です。
例えば、「ビットコインを私から渡辺さんに送りました」とかいう取引情報をいくつかまとめたものをブロックと呼び、ブロックをどんどんつなぎ合わせていったもの、つまり鎖のように繋いでいき改ざんを不可能にしていく仕組みです。
そして、ブロックに入れる取引情報をチェックする方法のことをマイニングと呼びます。
そして、ブロックに入れたあとは改ざんが難しいのはもちろんですが(なぜ難しいのかは後述します)、そのブロックに入れる取引情報がそもそも間違ったものを入れると大問題ですよね。
なので、ブロックに入れる前に取引情報を確認する必要があり、その確認方法のことをコンセンサスアルゴリズムと呼びます。
暗号通貨によって採用しているコンセンサスアルゴリズムは違えど、元のブロックチェーンのしくみ自体は違わないのであまり難しく考えなくて大丈夫ですよ。
ハッシュ値
こちらも上記のブロックチェーンのしくみについてまとめた記事の中にかなり分かりやすくしているのですが、重要なのでこちらでも軽く説明しますね。
ハッシュ値というのは、ハッシュ関数という技術を用いて算出される値で、該当のデータの受け渡し・保管時にそのデータが正しいままであるかどうかを確認するためにあります。
あるデータをハッシュ関数に入れるとハッシュ値が生成されるのですが、例えば「AさんからBさんに1000bit送金した」というデータが記録はされているものの、暗号化されてしまうとわたしのような素人がみてもちんぷんかんぷんな様に暗号化=ハッシュ値にされます。
暗号化された状態から元に戻すことは極めて困難になるため、元のデータが改ざんされていないことを確認できるといったしくみです。
そして、ブロックで生成されたハッシュ値は、次のブロックのハッシュ値生成にも利用されるため、そしてハッシュ値がチェーン上に繋がっているので、一箇所でもデータを改ざんしてしまうと永遠改ざんされた計算をしなければいけないため、ブロックチェーンが改ざんされるリスクはほぼゼロに近いといっても過言ではありません。
PoS(プルーフ・オブ・ステーク)とは

PoSとはProof of Stakeの略であり、資産保有による証明と訳されます。
PoWのデメリットを解消した仕様で、PoWでは演算量によってブロック生成者を決めていましたが、PoSはコンピューターの演算能力に左右されない、トークンの保有量に応じてブロックを生成できる確率が上がるアルゴリズムです。
つまり、該当の通貨を持っていれば持っているほどブロック生成を行うことができ、その分報酬がもらえるしくみです。
PoSの仕組み

PoSは、該当の通貨を保有している量に応じてブロックの生成を行う確率をあげている仕組みでしたよね。
さらに、PoSには通貨を保有している量の決め方に2パターン方法があります。
つまりPoSは二種類存在する、という意味ですね。
それぞれ細かく見ていきましょう!
Coin Age
まずはCoin Ageという概念を持ったPoSから説明します。
通貨の保有量と通貨の保有期間を掛け算し、Coin Ageを割り出します。
もちろん、このCoin Ageが大きいほどマイニングが成功しやすい仕様になっています。
Coin AgeはPoWの問題点にもあげられていた、特定の個人や企業・団体がマイニングに成功し続けてしまうのと同様な状態になってしまうのではないかという懸念点があるように思われますが、PoSでは一度マイニングを行うとCoin Ageが減る仕組みをとっているので、PoWにて起こる問題がPoSでは緩和できます。
Coin Ageが大きいほどマイニングに成功しやすくなる理由についてですが、まずマイニングの仕組みから説明します。
冒頭にてブロックチェーンの仕組みについては軽く説明したかと思うのですが、ブロックの中にはいくつかまとめられた取引情報、前のブロックのハッシュ値、そしてナンスなるものが格納されています。
ハッシュ関数に代入した時にでてくるハッシュ値が、決められた数値以下になるような数字=ナンスを探す作業のことをマイニングと言いますが、Coin Ageを用いたPoSでは、そのナンスの一定値がCoin Ageに比例して大きくなるような仕組みです。
したがって、Coin Ageが大きければ大きいほどナンス(演算の答え)探しの条件が緩くなり、マイニングの成功率が高くなるということです。
Randomized Proof of Stake
直訳すると、Randomized Proof of Stake=ランダムなPoSという意味になります。
取引を承認する人、ブロック生成者をランダムに選出し、そして選出される確率をコインの保有量に比例させておくといったしくみです。
つまり、報酬を得ることができる確率がコインの保有量に比例するという意味ですね。
身近なものに例えると、保有している通貨に利息があるようなイメージです。
そして、この承認作業はマイニングと対比され、フォージング(鋳造)と呼ばれています。
このフォージングは、保有している通貨が多い人が有利=大資産をもっているお金持ちの方が取引を承認しやすく、つまり報酬も受け取りやすくなることによって同じ人がフォージングに成功しやすい仕組みになっています。
POSのメリット

PoWのデメリットを解消
PoWのデメリットを改善され作られたものがPoSなだけあって、電力を使用しないため低コストであることがあげられます。
詳しく説明すると、PoWの場合は演算量の競争で勝たないといけない、しかも通貨の取引量がどんどん上がっていくにつれ演算量も増えていくので、その分ハイスペックのコンピューターを使用する必要があり電力も消費していきます。
PoWに対してPoSの場合、説明した通り通貨の保有量に基づいて確率的にブロックの生成者を決めるので、電力を消費しなくてもすみますよね。
また、PoWのもう一つのデメリットでもある51%攻撃のリスクが、PoSだと改善されています。
51%攻撃について軽く説明すると、PoWにおいて演算量の51%を占有するとハッキングできてしまい、占有されてしまうと非中央集権型を取っているブロックチェーンが中央集権になりかねない側面も持っています。
PoSにおいて51%攻撃が適用される場合には、その該当の通貨の流通量の51%を占有しないといけないため、コスト面を考えて現実的に考えて難しいですよね。
また、51%もの通貨を保有する必要があるため、攻撃されたことによって危ない暗号通貨だということが世に広まると通貨自体の価値がさがり、自分自身が持つ通貨の価値ももちろんさがってしまうために攻撃を行うインセンティブがほぼないといった理由もあげられます。
また、PoWでは難しい演算を行うためにどうしても10分程度承認に時間がかかってしまうというデメリットがあったのですが、PoWの場合はランダムにブロックの生成者を選出するため承認スピードが速くなります。
POSのデメリット
PoWのデメリットを改善したPoSではありますが、改善されたなかに新たにデメリットがうまれました。
PoSは該当の通貨をより多く持っている人が報酬を受け取ることができる仕組みなので、通貨を少しでも多く貯めておこうという心理が働き使用しづらくなりますよね。
そうなってしまうと自然と通貨の流動性は落ちてしまい通貨の本質が損なわれる可能性がある上に自然と価格が不安定になり、使いづらい暗号通貨になってしまいます。
また、通貨の保有量に応じて報酬が与えられるということは、必然的に貧富の差が生まれてしまいます。
そして、Nothing at Stake問題という問題も生じる恐れがあります。
詳しく説明すると、PoWの場合だと演算を行うことによる膨大な電力・仕事量をこなして、正しいブロックを生成しないと報酬を受け取ることができませんでしたよね。
もちろん報酬を受け取りたいのは当たり前なので、マイナーたちは規律に従ってブロックの演算を行います。
対してPoSの場合は該当の通貨を保有するだけで利息のように報酬を受け取ることができるので、言ってしまえばブロックの生成を雑に行なったとしても報酬がもらえるので、無駄なブロックを生成してしまう可能性があります。
こうなってしまうとブロックチェーンが正しく繋がっていないにも関わらず報酬だけが発生するのでかなり問題ですよね。
この問題に関して今後PoSを実装予定のイーサリアム(ETH)は、独自のPoSとして用いられる予定の「Casper」といった、不正なブロックを生成した人にペナルティをつけるしくみである「Slasher」を導入することで、Nothing at Stake問題を解消しようとする動きを見せています。
PoSを採用している暗号通貨

- ADA(エイダ)
- NXT(ネクスト)
- XP(エクスピー)←余談ですが、日本でかなりアツい暗号通貨です
- ETH(イーサリアム)※採用予定
このうち、イーサリアムは暗号通貨の時価総額ランキング第2位(4/26時点)でもありかなり注目されています。
次項にて細かいところをみていきましょう!
注目ポイント:イーサリアムがPoSを採用予定

イーサリアムは(4/26現在)PoWを採用しているのですが、2018年〜2019年以降にPoSを導入予定と発表しています。
細かくお伝えすると、PoWからいったんPoW/PoSのハイブリッド型になり、その後PoSに移行される予定です。
理由としては、現在イーサリアムが採用しているPoWだと大量の電力を消費してしまい莫大な費用がかかってしまう点、演算量が多くブロック生成に時間がかかる=取引の承認に時間がかかってしまう点、セキュリティ面の観点から、先ほどお伝えした通りPoSのCasperへ移行する予定です。
今回はPoSの特徴、メリットデメリットについて説明させていただきました。
次回は、またまたそんなPoSのデメリットを補って作られたコンセンサスアルゴリズム・PoIを解説していきたいと思います!