Proof of Stake とは何か?

Proof of Stake とは何か?
【ざっくりまとめると】
・分散合意形成アルゴリズム(コンセンサス・アルゴリズム)の一つ
・Proof of Work への代替案
・マイニングによる消費電力がない
・51%攻撃の可能性を低くできる
・コンセンサスに必要な時間が短い
・ASIC等を使った一部のマイナーによる中央集権化のリスクが少ない
・コインを持っている割合(Stake)で、ブロックの承認の割合を決めることを基本とする
・Proof of Stakeを発展させたものが沢山ある
目次

前提知識

以下を知っているものとします。

Proof of Stake(PoS)とは

Proof of Stake(PoS)は、ブロックチェーンにおけるコンセンサス・アルゴリズムの1つです。ひとことで言えば「ネイティブ通貨の保有量に比例して、新たにブロックを生成・承認する権利を得ることができるようになる仕組み」です。

PoSは、Proof of Work(PoW)の問題点を解決するために考案されました。

Proof of Workの問題点

  • ネットワークへの悪意のある攻撃に弱い
  • マイニングによる電力消費、コストが高い
  • Proof of Stakeに比べると、合意に時間がかかる傾向がある

Proof of Work(PoW)とは、ビットコインなど多くの暗号通貨で採用されている主要なコンセンサス・アルゴリズムです。

PoWでは、マイナーが膨大な計算(マイニング)を行うことでハッシュ値を見つけ出し、ブロックを生成します。そして、そのブロックがネットワーク上の他のコンピューター(ノード)に承認されることで、チェーンに追加される仕組みになっています。

PoWは画期的なシステムである一方、次の3つの問題点を抱えていると言われています。

ネットワークへの悪意のある攻撃に弱い

PoWでは、演算量の51%以上を占有されると51%攻撃を行われてしまいます。
51%攻撃とは、悪意あるマイナーが計算力全体の過半数を占有することで、不正な取り引きを行うことを指します。

マイニングによる電力消費、コストが高い

PoWでは、マイニングの計算量や計算スピードが重要なので、大量の高性能コンピューターが必要になります。
これにより発生する電力消費は、環境に大きな負荷をかけているとして批判が集まっています。

合意に時間がかかる傾向がある(取引にかかる時間が長い)

PoWを採用するビットコインの取引処理件数は約7件/1秒と言われており、VISAカードの約50,000件/1秒に比べると取引速度は大きく劣ります。ビットコインを使用する人が増えれば増えるほど、未処理のトランザクションが積み上がる一方であり、通貨の流動性が損なわれてしまいます。

このような処理能力に関する問題を、スケーラビリティ問題と呼びます。

Proof of Stakeの目的

  • プルーフオブワークのセキュリティを上げる
  • 51%攻撃の可能性を低くする
  • Bitcoin networkはコストが高い

解決策

  • マイニングの能力でなく、コインを持っている割合を基礎にコンセンサスを決めるシステム

PoSは、こういったPoWの問題点を改善するために生み出されました。
PoSではコインの保有量に比例してブロック承認の成功確率が上がります。そして、この「コインの保有量」を定義する仕組みには以下の2つの種類があります。

Coin Age

1つは、Coin Ageという仕組みです。
Coin Ageは「コインの保有量」×「コインの保有期間」で算出されます。この値が大きければ大きいほど、マイニングに成功しやすくなります。
また、一度マイニングに成功するとCoin Ageが減少する仕組みになっています。

Randomized Proof of Stake

もう1つは、Randomized Proof of Stakeという仕組みです。
Randomized Proof of Stakeでは、「コインの保有量に比例して、ランダムに取引承認者を選ぶ仕組み」になっています。つまり、コインの保有量が多ければ多いほど、マイニングに成功しやすくなります。
現在はCoin Ageではなく、Randomized Proof of Stakeが主流となっています。

PoSのメリット

以上の仕組みにより、PoSではPoWの問題点を改善することができた一方、新たな問題点も存在します。

51%攻撃に強くなる

PoSで51%攻撃を行うには、過半数のコインを保有する必要があるため、極めてコストがかかります。

その上、51%攻撃を行うと、「51%攻撃をされた通貨」という事実から通貨への信頼を損ない、通貨の価値が下がるため、保有している大量のコインが無価値になってしまうリスクがあります。

そのため、PoSチェーンへの攻撃をして自分の資産の価値を下げるより、チェーンを正当に維持した方が儲かるため、攻撃する経済的理由・メリットがなくなると考えられています。

PoWに比べて消費電力が削減できる

PoSでは、PoWとは異なり、マイナーが大量の計算をしなくて済むため消費電力を抑えることができます。

スケーラビリティの向上につながる

PoSでは、検証作業に割かれる時間が少なく済むため、PoWよりもブロック生成速度を早めることができます。
その結果、1秒当たりのトランザクション量が増えるのでスケーラビリティの向上につながります。

PoSの問題

コインの溜め込み

PoSでは、「コインの保有量が多ければ多いほど、マイニングに成功しやすくなる」という性質上、コインを使用せずに溜め込んで保有量を増やすインセンティブが働きます。多くの人がPoSコインを使わず溜め込むようになってしまうと、通貨の流動性が損なわれてしまいます。

対策として、古いコインの持ち分評価を下げる方法(Proof of Stake Velocity. 例: Reddcoin)があります。

Nothing at Stake

ブロックチェーンの複数のフォーク(ブランチ)で、同時にブロックの承認ができるという問題。

PoWでは、マイナーは一番長いブロックチェーンに次のブロックをつけてマイニングするインセンティブが働きます。
しかし、PoSではマイニングに大きなコストを払うことなく、コインを保有しているだけでブロックを生成できてしまいます。

そのため、バリデーターはPoWの時のように、最も長いブロックチェーンを選んで承認するインセンティブはなく、むしろ全てのフォークしたブロックチェーンを承認するの方が理にかなっている、という状態が起きてしまいます。

Nothing at Stakeとは何か? | block-chain.jp

Stake Grinding

Stake Grinding攻撃とは、「バリデータ(ブロックの承認者)が都合の良いように計算をしたり、ランダム性にバイアスをかけようとする攻撃」のことを指します。

Proof of Stake の Stake Grinding 攻撃とは? | block-chain.jp

ロング・レンジ攻撃

ロング・レンジ攻撃とは、「以前生成した古いブロックからリスクを冒さずフォークを行い、メインチェーンを乗っ取る攻撃」のことです。

低コスト51%攻撃

  • コインの51%を買える資金の証明をしつつ、買うと公表
  • コインの価格が下る、と期待される(他のコインの保有者は51%攻撃を恐れてコインを売却するため、コインの価格が下落する)
  • コインの価格が下落したところで、コインを低コストで大量に購入

参考: 深読みビットコイン (2) コンセンサスの行方

PoSとPoWの比較

PoSとPoWの相違点

PoSでは格差が広がる

PoSでは、コインの保有量に比例して報酬を得られる確率が上昇します。
このため、既に多数のコインを保有している人はコインを手元に置いておくだけでさらにコインが増える一方、あまりコインを保有していない人はそもそもコインを増やすことが難しく、格差は開くばかりになります。

PoWでは規模の経済が働く

規模の経済とは、事業規模が大きくなるほど単位当たりのコストが小さくなり競争上有利になることを言います。
PoWでは、マイニングに多額のコストがかかるため、資本家が大規模のマイニングファームを建設しなければなかなか収益を上げられません。そして、この状況が長く続くと次第に一部のマイナーによる寡占状態が発生することが想定され、ブロックチェーン本来の思想である非中央集権の意義を損ねてしまう恐れがあります。

PoSとPoWの共通点

富の偏在

PoSでもPoWでも、結局のところ資本家にさらなる富が集積する仕組みには違いありません。

セキュリティリスク

PoWでは、上述のように51%攻撃のリスクが懸念される一方、PoSでも低コストでの51%攻撃が可能であるため、いずれにせよ51%攻撃のリスクは免れません。

PoS実装の提案

現在いくつかの実装方法の提案がある

Cuniclulaの実装

PoWとPoWをミックスした実装

Meniの実装

ステイクホルダーが時にチェックポイントを置くというPoWの実装

PoSのシンプルな公式

PoSを定式化すると、以下のようになります。

SHA256(prevhash + address + timestamp) <= 2^256 * balance / diff
  • prevhash: 一つ前のブロックのハッシュ
  • address: ステーク・マイナーのアドレス
  • timestamp: 現在のUnix時間(秒)
  • balance: ステーク・マイナーのアカウントの残高(balanceを使わないでcoin ageを使うこともある)
  • diff: 調整可能なグローバルな難易度パラメータ (difficultyの略と思われる)

balanceを使わないで coin ageを使うこともある。

  • coin age: 例えば、balance * コインが弄られてない時間の量

PoSを実装した主要プロジェクト

Peercoin (PPCoin/PPC)

  • Peercoin が初の PoS/PoWの実装したコイン
  • Proof of Stake と Proof of Work のハイブリッド
  • 公式サイト: Secure & Sustainable Cryptocoin.
  • 2012年Sunny Kingによりリリース
  • 批判: 開発者の秘密鍵でサインして、チェックポイントをブロードキャスト。(中央集権的)

実装に問題があるという指摘もあります。

Nxt

Nxtは次世代のビットコインである「ビットコイン2.0」を目指して作られたプラットフォームです。
Peercoinとは異なりNxtは100% PoSを採用していることが特徴として挙げられます。

NEM

Blackcoin

Blackcoinは、初めてPoSのみをコンセンサス・アルゴリズムに採用したプロジェクトです。
現在では、独自に拡張したProof of Stake ver.3を使用しています。これにより、ウォレットに預けているコインに年間約1%の利子が付与される(staking)と言われています。

Ethereum

現在、Ethereumはビットコインと同じくPoWを採用していますが、近々CasperというPoSへ移行することを発表しています。Casperには、Slasherという懲罰的アルゴリズムが含まれています。

EthereumのPoS移行

Ethereumは、当初から「フロンティア」「ホームステッド」「メトロポリス」「セレニティ」と4つの開発段階をロードマップに描いています。

移行理由

スケーラビリティ問題の解決

PoWではトランザクションの処理速度に限界があります。Ethereumの普及を図る上で、この問題の解決は不可欠であり、そのための手段としてPoSの実装を計画しているようです。

環境への配慮

PoWではマイニングに大量の電力消費が伴うため、今後Ethereumが持続的発展を目指す上で消費電力を削減することも避けては通れません。

POS関連のコンセンサス・アルゴリズム

PoSには関連する多数のコンセンサス・アルゴリズムが存在します。ここでは、主要なその他のPoSアルゴリズムを紹介します。

DPOS: Delegated Proof of Stake (BitShares)

Delegated Proof of Stake(DPOS)は、コインの保有者に保有量に応じた投票権を割り当て、その投票により取り引きの承認者を委任するアルゴリズムです。
委任された承認者は、ブロック生成で得られた報酬を投票した人に還元する仕組みになっています。

代表的な例としてはLISKなどで採用されています。

Delegated Proof of Stake とは何か? | block-chain.jp

Casper(Ethereum)

Casperは、上述の通り今後Ethereumに導入予定のPoSアルゴリズムです。

Ethereum の Casper まとめ | block-chain.jp

SCP: Stellar Consensus Protocol (Stellar)

Proof of Inportance(PoI)

Proof of Inportance(PoI)はコインの「保有量」「取引量」「取引回数」などから総合的にスコアリングし、スコアの高い人にブロック生成権が付与される仕組みになっています。

NEMに実装されています。

NEM – New Economy Movement – Wikipedia, the free encyclopedia

POA: Proof of Activity

Proof of Activity(PoA)とは、PoSのブロックでサインする人をランダムにしたものです。
PoSでは、コインの保有量が多いほど攻撃の対象になるため、PoAでは承認者の選択をランダムに行うことでセキュリティを向上させています。

Proof of Activity とは何か? | block-chain.jp

PoST: Proof of Stake-Time (Vericoin)

Proof of Stake-Time(PoST)は、Vericoinに実装されており、Veriumに実装されているProof of Work Time(PoWT)と相互補完することで取引速度を高められるバイナリ・チェーンを構成しています。

PoMAS: Proof of Minimum Aged Stake

Proof of Mimimum Aged Stake(PoMAS)は、ある一定以上量のコインを保有する人の中で、コインの保有期間の短さに比例してブロックの承認権を与えるアルゴリズムです。

PoWとPoSのハイブリッド

純粋なPoSではありませんが、PoWとPoSを組み合わせたアルゴリズムも利用されています。PoWに基づいてマイニングを行い、その後PoSに基づき承認を行うなどするものです。例として、DecredやPeercoinに実装されています。

…などなどPoS関連実装の例は沢山あり、数カ月ごとに様々な提案、実装が出てきています。

参考URL

プルーフ・オブ・ステーク

関連する参考URL

参考になる日本語記事

Vitalik のPoSのブログ

引用元:
* 2014/07/05 On Stake – Ethereum Blog
* 2014/01/15: Slasher: A Punitive Proof-of-Stake Algorithm – Ethereum Blog
* 2014/10/03: Slasher Ghost, and Other Developments in Proof of Stake – Ethereum Blog
* 2014/11/25 Proof of Stake: How I Learned to Love Weak Subjectivity – Ethereum Blog
* 2015/08/01 Introducing Casper “the Friendly Ghost” – Ethereum Blog

ブロックチェーンの専門企業で働いてみませんか?

当サイトを運営するコンセンサス・ベイス株式会社では、エンジニア、プロジェクトマネージャー、ライターなど、様々なポジションで一緒に働いてくださる仲間を募集しています。

ブロックチェーン業界にチャレンジしてみたいあなたのご応募をお待ちしております!

Blockchainカテゴリの最新記事