PoW vs PoS (メモ)

先日(2017/8/13) 、Peter Todd氏とVitalik Buterin氏がTwitterにて議論しており、PoWとPoSの違いについてまとめていたので備忘録的に書き記します。

 

要点としては以下のような流れだと思います。

 

シビルアタックで一年分のチェーンを誤認させる

→一年後正しいチェーンを発動→ロールバック(巻き戻し)

→正しい(有効な)最後のブロックから一年間かけて一つのブロックを生成したことになる

→通常(2週間)の26倍の時間がかかったことになるので、難易度を26分の1に調整

→安価にブロックが生成できるとネットワークが混乱(フォークし放題、confirmationを積み放題なのでだまし放題)

→減少する下限を決めておけばせいぜいコストは四分の一なので、それなりにコストがかかる

 

 

Peter Todd

https://petertodd.org/assets/commitments/52ccc4802bd563076cbd25ec4c1ba88152098cb6aa356ba644c9e79a24182da5.txt

 

以下、Google翻訳+筆者修正。

 

#難易度減少レートリミッタはどのような攻撃を防ぐか?

  

Bitcoinプロトコルは、一回の難易度調整で前回の1/4以下にまで難易度が急速に低下することがないよう、難易度減少速度を制限します。具体的には、難易度計算では、2016ブロックを生成するのに要した実時間変数には、予想時間(2016×10minites)の4倍の上限が設定されます。

 

    //リミット調整ステップ

    int64_t nActualTimespan = pindexLast-> GetBlockTime() - nFirstBlockTime;

    if(nActualTimespan> params.nPowTargetTimespan * 4)

        nActualTimespan = params.nPowTargetTimespan * 4;

 

では、なぜサトシはこのようにしたのか?減少速度上限はどのような攻撃を防ぐか?

 

私は、あなたを騙して「既存の有効なチェーンより少ないworkで掘った私のチェーン」をあなたに受け入れさせたいとします。あなたに対してうまくシビルアタックすることができれば、最も仕事がされているチェーンを誤認させることができます。

 

難易度調整期間が終わる1ブロック前のブロックn =(k * 2016 - 1)、タイムスタンプtで、私はあなたにシビルアタックを開始するとしましょう。

 

あなたが受け入れるであろう最大のタイムスタンプ(ローカルクロック+ 2時間)で私はブロックn + 1を掘ります。「リミッタがなければ」、難易度が低下する量は時間tと今の時間の差によってのみ制限されます。その難易度減少量は、ノードがしばらくオフになっている、初期同期している、またはチェーン状態をリセットしていた(ソーシャルエンジニアリングやチェーン状態の不正利用など)場合、かなり大きくなるかもしれない。たとえば、私があなたに対して1年分ロールバックする(有効チェーンを誤認させる)ことができれば、あなたが知っている最後の有効ブロックの難易度は1/26(14日÷365日)まで減少しているだろう。

 

難易度が減少すると、ブロックを非常に安価に生成でき、あなたが受け入れているトランザクションにかなりの数の承認があると思わせることができます。

 

難易度が下がる速度を制限することで、この攻撃は大幅に難しくなります。ブロックあたりのコスト低下は現在の1/4にすぎず、リミッタがない状況に比べてコストが大幅に増加します。

 

#同期/待ち時間

 

もちろん、すべてのコンセンサス・システムには、ある種のネットワーク同期の仮定があります。参加者が十分にタイムリーにコミュニケーションできない場合は、コンセンサスに至ることは不可能です。無限レイテンシの場合は明らかな例です。しかし、システムが適切に機能していなくても、攻撃者ができることをできるだけ制限したい。難易度減少リミッタをPoWと組み合わせると、たとえレイテンシが無限であっても、参加者に対する攻撃は「それでもなお」高コストであることを保証し、被害の大きな二重支払い攻撃を、はるかに害の少ないDoS攻撃へと変える。

 

#PoW対PoS

 

最後に、ここでのPoWの重要性に注目しましょう。PoWでは、攻撃者がエネルギーを破壊するためには大量のworkを投入するしかないため、この攻撃が高コストになることを保証しています。ハッシュパワーが乗っ取られた場合は、最もworkされているチェーンを延ばすブロックを採掘することを諦めるしかないでしょう。

 

一方、PoSシステムでは、この攻撃はノーコストで行うことができます。「スラッシャー」式のPoSシステムでさえ、ターゲットをシビルアタックすれば、スラッシャーの仕組みが機能しないようにすることができます。この不正の証拠は、決して外の世界に届くことはないので、PoSコインの価値には影響を与えないだろう。

 

誤訳等の指摘があれば修正致します。

以上。