Proof of Stakeの問題点とされる nothing-at-stakeの説明です。
・ 一言で言うと、二重投票(Double voting)。複数のフォークを承認すること。
・ どのブロックチェーンのフォークに対してもブロック承認すること(攻撃)
・ ブロック生成者は、複数のブロックチェーンの履歴に投票しても、失うものがない
・ PoSの場合は、最も長いブロックチェーンを承認するインセンティブはなく、むしろ全てのフォークしたブロックチェーンを承認するのが理にかなっている
・ 言葉の意味は、「何も賭けてない」。PoWのように一つの分岐に賭けるわけではない
概要
Nothing at Stakeとは、PoSのコンセンサス・アルゴリズムに関して過去に指摘されていた問題の1つであり、「リスクを冒さず、同時に複数のフォーク上でブロックを承認できてしまうこと」を言います。
(Stakeは「賭け」「掛け金」などを意味します。)
PoWであれば、マイニングの際にランニングコスト(電気代など)がかかるため、間違ったブロックを承認してしまった場合、それが正当なチェーンと見なされなければマイニング報酬が得られません。
つまり、ちゃんと正しいブロックを選んばなければ、それまでに投下したコストが全て無駄になるリスクがあります。
一方、PoSではコインの保有量に応じてブロックの生成・承認の権利が得られるため、PoWほどのコストを必要とせず、間違ったブロックを承認したところで失うものが特にありません。
間違ったブロックを承認することへのディスインセンティブが乏しく、コストを払わず(=何も賭けていない, Nothing at Stake)にすべてのブロックを承認することが理にかなってしまうのです。
前提知識
- PoS: Proof of Stake
- PoW: Proof of Work
- Bitcoin: ビットコイン
- mining, validating, minting: マイニング、バリデーティング、ミンティング
- miner, validator: マイナー、バリデーター (ブロックを承認するノード)
- blockchain: ブロックチェーン
- fork: フォーク ブロックチェーンのブランチと表現することも
- orphan block: みなしごブロック
PoWとは
PoWとは、ビットコインなど多くの暗号通貨で採用されている主要なコンセンサス・アルゴリズムです。
PoWでは、マイナーが膨大な計算(マイニング)を行うことでハッシュ値を見つけ出し、ブロックを生成します。そして、そのブロックがネットワーク上の他のコンピューター(ノード)に承認されることで、チェーンに追加される仕組みになっています。
また、PoWには
- 51%攻撃の懸念
- マイニングによる消費電力が大きい
- 取引にかかる時間が長い
といった問題点が指摘されています。
PoSとは
PoSは、ブロックチェーンにおけるコンセンサス・アルゴリズムの1つです。ひとことで言えば「ネイティブ通貨の保有量に比例して、新たにブロックを生成・承認する権利を得ることができるようになる仕組み」です。
PoSのメリットとしては、
- 51%攻撃に強い
- 消費電力を抑えられる
- スケーラビリティの向上につながる
などが挙げられます。
このように、PoSは、PoWの問題点を解決するために考案されましたが、一方でPoSにもコインの溜め込みにより流動性が低下するといった問題があります。
Nothing at Stakeの問題点
短期的問題
ブロック生成を一つのフォークにするインセンティブがない
PoWでは、マイナーは一番長いブロックチェーンに次のブロックをつけてマイニングするインセンティブが働きます。
通常マイナー達は、巨額の初期費用を投じてマイニングのための設備を整え、さらにランニングコストとして電気代を投資しているため、マイニングに成功せずブロックが生成されなかった場合にはその投資額が回収できず純粋な損失となります。
そして、マイナーの持つ計算力(ハッシュパワー)には限りがあるため、多数のフォークを同時にマイニングせず、勝ちそうな一つのフォークをマイニングする方が報酬を得られる可能性が上がります。
このような性質が、チェーンを攻撃するよりも、正常に維持する方向に行動した方がいいというインセンティブになっているわけです。
しかし、PoSではマイニングに大きなコストを払うことなく、コインを保有しているだけでブロックを生成できてしまいます。
そのため、バリデーターはPoWの時のように、最も長いブロックチェーンを選んで承認するインセンティブはなく、むしろ全てのフォークしたブロックチェーンを承認するの方が理にかなっている、という状態が起きてしまいます。
長期的問題
- ジェネシスブロックを作った人(持ち分100%)の人は、はじめからやり直せる
- 持ち分が多ければ、そこからやり直せる
ジェネシスブロックを作った人(持ち分100%)は、チェーンをはじめからやり直せすことができ、また持ち分が多ければそこからやり直すことができてしまいます。
引用元:https://www.slideshare.net/ks91020/ks91-consensusebisu20150227
Nothing At Stakeへの対策
###懲罰アルゴリズム(デポジットしたり、懲罰したりする)の導入
Ethereumでは、これらのPoSの問題を解決するために、独自PoSであるCasperが考案されました。Casperには、懲罰的アルゴリズムであるSlasherが実装されています。
Slasherは、間違ったブロックを生成した場合にデポジットを没収する仕組みになっており、参加者が正しいブロックを承認する経済的インセンティブとして機能します。
→Ethereum の Casper まとめ | block-chain.jp
他にも、PoSベースのコインでは下記のような対策例があります。
- Peercoin は、開発者の秘密鍵で署名されたチェックポイントをブロードキャストする
- トレードオフ: 開発者が中央の権威者になる
- Nxt: 最新の720ブロックの再編成のみ許す。
- Tendermint
- validatorになる前にデポジットを入れる
- validatorがフォークを引き起こすと、デポジットのコインが減る
引用: Proof-of-stake – Wikipedia, the free encyclopedia
Nothing At Stakeへの批判
理論上の攻撃ではないか
以下の記事では、Nothing at Stakeは実際問題にならないという主張がされています。
Daniel Larimer『Nothing at Stake – Nothing to Fear』
http://bytemaster.github.io/article/2015/01/08/Nothing-at-Stake-Nothing-to-Fear/
自身が大量に保有するコインの価値をあえて下げるインセンティブがあるのか
PoSでは、間違ったブロックを承認することへのディスインセンティブが乏しく、コストを払わずにすべてのブロックを承認することが理にかなってしまいます。
しかし、大量のコインを保有するブロックの承認者がわざわざコインの価値を下落させるインセンティブもまたないと言えます。
Altruism-prime
Altruism-prime is essentially the combination of actual altruism (on the part of users or software developers), expressed both as a direct concern for the welfare of others and the network and a psychological moral disincentive against doing something that is obviously evil (double-voting), as well as the “fake altruism” that occurs because holders of coins have a desire not to see the value of their coins go down.
引用: Proof of Stake: How I Learned to Love Weak Subjectivity – Ethereum Blog
参考
- 斉藤 賢爾さんのスライド: 深読みビットコイン (2) コンセンサスの行方
- VitalikのSlasherの記事: double miningした人を懲罰する方向のPoS
- 懲罰的なPoSアルゴリズム Slasher: A Punitive Proof-of-Stake Algorithm – Ethereum Blog
- Vitalikのブログ記事: Proof of Stake: How I Learned to Love Weak Subjectivity – Ethereum Blog
- 解決方法として、セキュリティ・デポジットを上げている
- Slasher 2.0: セキュリティ・デポジットを元にしたProof of Stakeアルゴリズム
- 間違ったフォークに投票する投票者にペナルティを与える
- コンセンサス・アルゴリズムの分け方: Objective と Subjective と Weakly subjective
- Objective: 知識なしにネットワークに参加するノード (以下を除く。i. プロトコル仕様 ii. 全部ロック一式と、他の重要メッセージ)
- Subjective: システムは安定したステートを持つ。参加するのに沢山のソーシャル情報(例: 評判)が必要。(例えば、Ripple)
- Weakly Subjective:
- exponential subjective scoring:
- Gavin Andresen のPoS批判 gavinandresen comments on Criticisms of Proof-of-stake
- I think Andrew Miller put it best: “The trouble with Proof-of-stake is that there is nothing at stake.”
- Nothing At Stakeを4分で説明するビデオ Nothing At Stake Explained In 4 Minutes – YouTube
- BitSharesのファウンダーのDaniel Larimerによる説明 Nothing at Stake – Nothing to Fear
- この問題を恐れることはない、という主張
- Wikipedia『プルーフ・オブ・ステーク』