ブロックチェーン基礎 第3回: Delegated Proof of Stake
本記事は、Understanding Blockchain Fundamentals, Part 3: Delegated Proof of Stake(Georgios Konstantopoulos) の翻訳です。万一誤訳などありましたらPrivate Note機能でお知らせ下さい。
少し前、我々はコンセンサスがどう機能し、Proof of Work (PoW)やProof of Stake (PoS)の基礎となったかについてお話しした。
PoWはこれまでで最も証明されたセキュリティを提供するが、膨大な量のエネルギーを消費するということが要点である。 PoSは第1の代替案で、PoWのようにエネルギーは必要としない。マイナーを「バリデーター」で置き換え、バリデーターは次のブロックをそのステークに比例した確率でバリデート(「採掘」)するチャンスを与えられる。
よく議論されている別のコンセンサスアルゴリズムにはDelegated Proof of Stake (DPoS)がある。これは変異したPoSで、ネットワーク上のバリデーター数を制限することで、高いレベルのスケーラビリティを提供する。
この記事ではDPoSの仕組みやその利点とトレードオフについて、さらに検閲や二重支払いのリスクを防ぎつつ、そのトレードオフを緩和し高レベルなスケーラビリティを達成する方法について取り上げていこう。
Delegated Proof of Stakeとは?
DPoSとは固定数のエンティティ(ブロック生成者や証人と呼ばれる)が、ラウンドロビン順でブロック生成を行うように選ばれるシステムである。ネットワークのユーザーは、ネットワーク上に保有しているトークン(ステーク)数に比例した票を獲得し、彼らの投票によりブロック生成者が選出される。
もしくは投票者は別の投票者に自分のステークを委任し、委任された者は自分の考えでブロック生成者に投票するという選択をすることもできる。
ダン・ラリマーによる、PoSとの比較セマンティクス: [1]
- ブロック生成者 とは新たなブロックの生成及び署名に責任を持つ者のことである。彼らの数は制限されており、投票者により選出される。
- ブロックバリデーター はDPoSでは、合意形成のルールに従ってブロック生成者が作成したブロックを検証する完全なノードのことだ。ユーザーは誰でもブロックバリデーターを運営し、ネットワークを検証することができる(Casper PoSの「バリデーター」という言葉はブロック作成者のことを指すので、これは混乱を招くかもしれない)。
DPoSネットワークにおけるブロック生成者の数は、そのチェーンのコンセンサス・ルール次第である。以下はよく知られたDPoSチェーンのブロック生成者数だ:
- EOS: 21
- BitShares: 101
- Steemit: 21
- Lisk: 101
- Ark: 51
N人のブロック生成者をもつDPoSブロックチェーンの一連の流れは次のようになっている:
- ブロック生成候補者たちの中から、N人のブロック生成者を選出する。
- i=Nとなるまで、i番目のブロック生成者がi番目のブロックに署名する。
ブロック生成者の3分の2より多くの得票があると、ブロックはファイナライズされる(すなわち覆せない)。そうでなければ、最長チェーンのルールに従う。ブロックチェーン間の相互運用を目指す上で、ファイナリティは非常に重要なプロパティだ。
各DPoS実装のブロック報酬とインフレーションの仕組みはそれぞれのプロジェクトの報酬モデルに依存しており、この記事で扱う範囲を超えている。あらゆる条件下でのDPoSのオペレーション方法については、ダン・ラリマーが詳細に記している。 [2]
またブロック生成者が悪意を持っている(すなわちトランザクションの検閲や二重支払いを試みること)ようであれば、投票者は次の期間に彼らに投票しないことで彼らを「解雇」することもできる。
ブロック生成者が制限されている結果として、DPoSは現在のPoWよりも桁違いに高いトランザクションのスループットを処理することができる。
素晴らしすぎるけどこれは本当なのか?
以前記したように、DPoSはスループットのために、少ないブロック生成者数で分散性を犠牲にしているプロトコルだ。
そのためDPoSは高レベルなスケーラビリティが必要な多くのアプリケーションにとって合理的である一方、我々(及び真剣なブロックチェーン開発者のほとんど)は、DPoSは価値の保存を行うベースレイヤーやWeb3アプリケーションのための所有権の台帳となるほどには十分に分散されていないと考えている。
ファイナンシャルな価値の移転を行うブロックチェーンのベースレイヤーは、完全に分散されていて安全でなくてはならない。ベースレイヤーは妥協されてはならない。
興味深いことに、とあるプロジェクトがイーサリアムのようなPoWよりもDPoSが「優れている」とヘビーにマーケティングを進めているにも関わらず、最近のTwitterアンケートでは880ユーザーのうち50%がDpoSは分散性を犠牲にしていると理解している:
分散システムとしてのDPoSの欠点について多くの人々が記述してきたが、そのうちの1人ヴィタリック・ブテリンは、カルテルを形成し投票者を収賄することにはインセンティブがあると主張している。 [3]
ベースレイヤーには完全な分散性以外受け入れることはなく、ネットワーク参加者の誠実さを想定不可能であると仮定すると、DPoSは特にファイナンシャルなトランザクションの処理を行うブロックチェーンとして適したものには思えない。
特定のユースケースでのDPoSの使用
これを考えるのは我々が初めてではない。マイルス・スナイダーは次のように説明している:
「もしDPoSシステムが、依然として分散データベースが必要なレベルの検閲耐性、非許可性、およびトラストレス性を提供できるのであれば、DPoSは広い範囲の分散アプリケーションにとって良いものである。
完全な検閲耐性のあるデジタルゴールド、P2Pのデジタル通貨などの特定のユースケースでは、パフォーマンスを犠牲にして分散性を選択することは理にかなっている。
大部分のアプリケーションにとっては、スケーラビリティの方がずっと実用的であるのだ。」 [5]
ソーシャルネットワークやゲームのアプリケーションでは、コメントやゲーム中の動きの全てが完全分散ネットワークの完璧なセキュリティを必要としているわけではなく、むしろ高いスループットを要求する。こういうわけで、DPoSはこの種のアプリケーションに完璧に適したものとして考えられる。
さらには、イーサリアムのような安全なベースレイヤーとしてのPoWネットワークを使って独自のDPoSチェーンはレイヤー2に構築した場合、アプリケーションの大部分は高スケーラブルなDPoSチェーン上で実行できる。それと同時に、ゲーム内通貨やアセットの所有権といった高いセキュリティを必要とするアプリケーション部分は、安全なベースレイヤーを使用することができる。
ヴィタリック・ブテリンは次のように述べている:
かなり高速なトランザクションと承認を実際に必要としているアプリケーションがあり、さらにそれほど高速な承認が信頼を以って行われなくてはならない場合、私の意見ではそのようなシステムを構築する正しい場所は、イーサリアムのようなベースレイヤー・プラットフォーム上のレベル2プラットフォームである。
レベル2プラットフォームは、安全性ではなくパフォーマンスのみレベル2に依存するよう構築することが可能だ(ステートチャネルのハブ、Plasmaオペレーターなど)。こうして評価と将来期待される収益の同期フケを行い、現時点でのパフォーマンスを向上することができる。さらに何かしらの失敗での負のコストも緩和される。 [6]
こうして黒い白鳥のシナリオが発生した場合、安全なPoWメインチェーンに退避するという選択肢を常に持つことができる。
例として、レイヤー2のDPoS上で悪者がブロック生成者の大部分を支配してしまった場合も、ユーザーのトークン(何百万ドルや何十億ドルである可能性もある)は依然としてレイヤー1場で安全に保たれている。
分散されたレイヤー1の裏付けを持たないスタンドアロン型のDPoSブロックチェーンでは、こういったことは不可能である。チェーンが悪者により不正アクセスされた場合、トークンはチェーン上の全てのリスクにさらされるのだ。
レイヤー2上ハードフォークvs.レイヤー1上ハードフォーク
DPoSチェーン上では、反対者が多くのステークを獲得してネットワークのコントロール権を手に入れた場合、ブロックチェーンはその反対者を検閲するため、強制的にハードフォークすることとなる。
トークンやその他デジタル資産の所有権を追跡する台帳が含まれている(ほとんどのレイヤー1チェーンのように)ブロックチェーン上では、ハードフォークは悲惨なものになりうる。このことは、長期的な価値の保存場所(例えば一生の貯蓄を注ぎ込む人もいるかもしれない)として、ネットワークの信頼性に置かれていた信用を損なってしまう。
しかし非ファイナンシャルなアプリケーションがレイヤー2上で稼働し、価値を持つものは安全なレイヤー1に保存している場合は、ハードフォークはそれほど悲惨なものではない。
レイヤー2上で動くアプリやゲームの場合、基礎となるデータの整合性が維持されている限り、ハードフォークは実行可能なソリューションである。
Plasma Cashでレイヤー2の安全性をより向上
Plasmaはブロックチェン間の安全な資産移転を実現する技術であり、「Plasmaチェーン」にビザンチン将軍問題が発生したとしても、システムの安全性は「ルートチェーン」により保証されているというものだ。
Plasmaを使用すると、ユーザーはレイヤー1のセキュリティを信頼しつつ、レイヤー2のトークンの取引を行うことができる。上記のように反対者がレイヤー2のコントロール権を獲得した場合、ユーザーは自分のトークンをレイヤー1へと「exit」して戻すことが可能だ。
Plasmaを使用しなかったとしても、安全なレイヤー1にDPoSサイドチェーンを構築することは、より高い安全性を提供する。なぜならDApp開発者は、どの部分を安全なベースレイヤーで保存しどの部分をスケーラブルなサイドチェーンで保存するか、分割することができるからだ。Plasmaを使用すると、セキュリティに関してベースレイヤーを信頼しつつもサイドチェーン上で追加のトランザクションを実行できるので、開発者ははるかに高い柔軟性を持つことが可能となる。
これまでのところ、Plasmaチェーンのどの例も単一のPlasmaオペレーターの権限者を持つProof of Authority (PoA)を使用しており、オペレーターが反対者であった場合のシナリオについて探究中だ。この脅威モデルはサイドチェーン上の1人のPlasmaオペレーターのみを考慮しており、サイドチェーンとメインチェーン間の資産の移動を保証するため、厳格なセキュリティ証明が必要となる。
しかし、DPoSサイドチェーンでコミュニティにより複数のブロック生成者が選出されうる場合、この脅威モデルはかなり異なったものとなる。悪意あるブロック生成者集団の攻撃のベクトルはかなり様々なので、それよりもDAppチェーンとイーサリアムPoWメインチェーン間の安全な繫がりを作ることは簡単なことだと我々は考えている。
Loom Networkでは、ERC721トークンのためのPlasma Cash実装を進めており今月下旬のリリースを見据えている。これによりゲーム開発者は、ERC721トークンをLoom DAppチェーン上にデポジットしてゲーム中で使用することができるようになる。
結論
大規模なゲームやDAppsをブロックチェーン上で動かすには、高いパフォーマンスやコスト効率と引き換えにいくらかの分散性を犠牲にする必要がある。そしてDPoSはこれらのユースケースに完璧に適しているように思える。
DPoSのアルゴリズムは、バリデーター数が少ない場合はネットワークにおけるトラストが必要となるため、価値を保存するには理想的なソリューションではないかもしれない。
このように我々の考えでは、レイヤー1としての分散化されたメインネット(すなわちイーサリアム)を利用し、DAppsを高スケーラブルなDPOSサイドチェーン上で稼働することで、両方の世界のベストな部分が手に入るのだ。
参照:
[1] Response to Cosmos white paper’s claims on DPOS security
[2] DPOS Consensus Algorithm — The Missing White Paper
[3] Governance, Part 2: Plutocracy Is Still Bad
[4] Decentralization in Bitcoin and Ethereum Networks
Loom Network は、イーサリアムのハイスケーラブルなDPoSサイドチェーン構築のためのプラットフォームで、大規模ゲームやソーシャルアプリにフォーカスしています。
さらなる情報は こちらから.
LOOMトークンをステークして、PlasmaChainのセキュリティ維持に参加しませんか? やり方はこちら
あなたがブロックチェーンゲームのファンであれば、 Zombie Battlegroundをチェック!世界初・独自のブロックチェーン上でフルに稼働するPC & モバイルカードゲームです。
そしてもしこの記事をお楽しみいただけ、最新情報の受け取りをご希望であれば、私たちの プライベートメーリングリストへの登録や、Telegram、Twitter、GithubやQiitaのフォローをお願いします!
Thanks to James Martin Duffy, Robert Hacala, and Mohit Tater.