ブロックチェーンにおける、大きなイノベーションのひとつとして、プルーフ・オブ・ワーク(Proof of Work以下「PoW」)と呼ばれる、取引改ざんを防ぐための分散合意システムを取り入れたことが挙げられます。
しかしPoWには様々な問題点があり、PoWに代わる合意形成の方法が模索されています。今回は、そこで提案された分散合意アルゴリズムの1つである、Proof of Stake(プルーフ・オブ・ステーク)を紹介します。
PoWアルゴリズムに関しては、詳しくは以下の記事をご覧ください。
分散ネットワークでの合意を可能にしたコンセンサスアルゴリズム「プルーフ・オブ・ワーク」
目次
プルーフ・オブ・ステークの概要
プルーフ・オブ・ステーク(以下「PoS」)は、PoWの代替システムにあたるものであり、アルトコインの一つであるピアコイン(Peercoin)で初めて導入されました。
PoSは文字通り訳すならば「資産保有による証明」という意味であり、コインを持っている量(Stake)に応じて、ブロック承認の成功率を決めることを基本としています。イメージとしては、PoWは保有する計算パワーである仕事量(Work)が大きい人ほどブロック承認の成功率が高いことに対して、PoSは資産保有量(Stake)が大きい人ほどブロック承認の成功率が高くなています。
PoSはこのようなアルゴリズムであるため、PoWの問題点の一つとされている「51%問題」(悪意のある特定の個人やグループが採掘速度の51%以上を支配してしまうと、不正に二重支払いが可能になってしまうという状態)に対してより強力であるとされています。その理由のひとつ目として、より多くのコインを有していないとブロック承認の成功確率を上げることができないので、そもそもコインを入手しなくてはならず、攻撃にかかるコストが高いということが挙げられます。二つ目として、非常に多くのコインを保有しなければならないので、攻撃されたこによりコインの価値が下がってしまうため、自分自身の持つコインの価値も下がってしまい、攻撃を行うインセンティブがあまりないという理由もあります。
プルーフ・オブ・ワークを確率的に代替しているプルーフ・オブ・ステーク
PoWをPoSに代替するメリットは他にもあります。
PoSにおけるマイニングは「鋳造(minting, forge)」と呼ばれ、コイン保有量とそのコインの保有期間の掛け算で表される「CoinAge(コイン年数)」が大きいほど、簡単に鋳造が行える仕組みとなっています。実際のメカニズムとしては、ビットコインと同様にマイニングは行われますが、完全な総当たり式ではなく、そのユーザーのCoinAgeに応じて総当りで計算しなくてはいけない範囲が狭くなり、結果としてマイニングに成功しやすい仕組みになっています。よって、高性能なコンピューターや膨大な電気代を費やさなくても、有利にマイニングできる仕組みになっています。
PoWはコンピューターと電気代を大量に使って毎回計算を行なっています。マイニングを成功する確率を上げるには、より多くのコンピューターや電気代といったパワーを投入しなくてはなりません。より多くのパワーを持っている人は、そもそもより多くのお金も持っているはずです。
PoSではお金をより多く持っている人が確率的に報酬を得やすくして、電気代などのパワーを消費しなくても良い形でPoWを置き換えられている、と言えます。
コイン報酬
PoSのコイン報酬に関するアルゴリズムは、プロジェクトによって異なり、いくつか種類があります。
後述するEthereumでは、コイン報酬は一定(現在は1ブロック5ETH)となっており、CoinAgeが大きい人が純粋にブロックの生成確率が高くなり、結果として多くのコインを保有できます。(EthereumはこれからPoSが採用される予定であり、最終的な仕様がどうなるかは定かではありません。)
一方、マイナーではありますが、NeucoinやHoldcoin,ArohacoinといったアルトコインはPoS(及びPoWの組み合わせ)を採用しており、ブロック数の経過に応じて報酬額が減額されていく仕組みになっています。
また、Reddcoinというアルトコインでは、古いコインの持ち分評価を下げる(時間が立つと減額される)ようなアルゴリズムにすることで、所有だけでなくウォレットを通じた「活動」にも評価点を与えるような仕組みになっています。(「Proof of Stake Velocity」とも呼ばれています)
プルーフ・オブ・ステークを使うブロックチェーン Ethereum
PoSアルゴリズムを使用しているプロジェクトはいくつかありますが、その一つとして有名なのがEthereumです。(正確にはEthereumはこれからPoSが採用される予定です。)
Ethereumは、スマートコントラクト・分散型アプリケーション(Dapps)の構築プラットフォームです。Ethereumではユーザーが誰でも自由にスマートコントラクトの記述・実行ができ、チューリング完全(あらゆるプログラムを記述可能)なプログラミング言語Solidityで記述されているのが特徴です。
現行のEthereumでは、スマートコントラクトの実行履歴であるブロックをブロックチェーンに記録する際にPoWアルゴリズムで合意形成されています。EthereumのPoWでは「Ethash」というメモリーを多く必要とされるアルゴリズムを使っており、PoWのようにマイニング専用のハードウェアを作ることを難しくしており、マイナー集中化の問題を防いでいます。
そんなEthereumは、将来的なバージョンにおいて、合意形成の方法がPoWからPoSへ移行することが予告されています。Ethereumは現在PoWによって動いていますが、「Casper」というPoSアルゴリズムの開発を行っており、将来はPoSに移行する、とEthereumのコア開発研究チームは述べています。
移行時期
Ethereumは2015年にリリースされ、4段階に渡ってバージョンアップしていくという計画があり、各段階はFrontier(フロンティア)、Homestead(ホームステッド)、Metropolis(メトロポリス)、Serenity(セレ二ティ)と名付けられています。現時点(2017年3月時点)では、まだ二段階目であるHomesteadの状態です。
Ethereumは、次のバージョンであるMetropolisのリリースに向けて動き出しています。Metropolisへのアップデートでは、ユーザーがビットコインを含めたあらゆるトークンでEthereumのトランザクション手数料を支払うことができるようになったり、よりハードフォークを安全に実行することなどが出来る仕様になる予定です。しかし、期待されているPoSアルゴリズム機能(Casperへの移行)は、現状ではMetropolisのロードマップでは言及されていません。最終バージョンであるSerenityは2017年中にリリースが予定されており、合意形成の方法がPoWからPoSへ移行することが予告されています。
その他のEthereumに関する情報は、以下の記事をご覧ください。
分散アプリケーションプラットフォームを目指すブロックチェーンEthereum(イーサリアム)
PoWの改善点を考慮して設計されたPoSが、Ethereumを始めとした様々なブロックチェーンプロジェクトに使われています。また、PoSのデメリットを考慮して改善されたコンセンサスアルゴリズムも開発されています。このように、ブロックチェーンにおける合意形成の方法論はまだまだ始まったばかりであり、今後のアルゴリズムの発展に注目したいです。