Cardanoとその設計哲学にパワーをもたらすプロトコル
2020年6月23日 Aggelos Kiayias教授 読了時間6分
分散型台帳の設計とデプロイメントは技術的に課題の多いタスクである。台帳に期待されるのは、すべての参加者に一貫したビューを保証すること、また、その行動から絶え間なく生じる事象への反応性を保証することである。こうした2つのプロパティは、時に「持続性(persistence)」と「活性(liveness)」と参照される、分散型台帳システムの特質である。
持続性と活性を中央集権的システムにおいて達成することは十分に研究された比較的シンプルなタスクである。ただし残念ながら、ここから生まれる台帳は、台帳をサポートするサーバーが単一障害点となるため不安定だ。結果として、サーバーのハッキングにより両プロパティは即座に脅かされる。サーバーがハッキングされなくても、サーバー運営者の利益はこれらプロパティの持続的な保証とは必ずしも相容れない。このため、「分散化」は本質的な治療薬として進歩してきた。
非公式に、分散化とは、多くのエンティティが個別に行動した結果、その行動が合致したものとして台帳のプロパティが生じるようなシステムアーキテクチャーを指す。この複雑性の見返りとして、優秀な設計に基づくシステムは、一部の関係者が適切な操作を逸脱したとしても機能し続けることができる。さらに、より重大な逸脱の場合は、システムにある程度の混乱は避けられないとしても、通常運転に回帰し被害を抑えることができるはずである。
では、堅牢な分散型システムを設計するにはどうしたらいいのか。世界は複雑な場であり、分散化はハードコードやテストのデモンストレーションで示せるような特徴を備えているわけではない。設定の可能性は無限大である。これに対処するためには、システムが遭遇しうるさまざまな脅威をすべて系統立てて網羅する「諸モデル」を開発し、持続性と活性という2つの基本的プロパティが保持されることを厳密に実証しなければならない。
分散型システムの信頼性に関する最強の議論は、さまざまに分類される障害および攻撃モデルの幅広いポートフォリオに対し、形式手法による保証を組み合わせることだ。まず重要なのは、強力なビザンチンモデルである。この設定では、仮に一部の参加者が任意にルールから逸脱したとしても、2つの基本的プロパティは保持される。2番目に重要なのは合理性のモデルである。ここでは、参加者は前提として合理的な効用最大化の実行者であり、その目的は、台帳プロパティが自己の利益を追求する努力から生じることを示すことである。
Ouroborosは、ビザンチンおよび合理的行動の両コンテクストにおいて分析される、分散型台帳プロトコルである。このプロトコルがユニークであるのは、以下の設計要素が組み合わされているためである。
- システム内における参加者のレバレッジを識別する基本的リソースとしてステークを使用する。台帳を維持するプロセスにおいて無駄となる物理的リソースはない。これは、かつてステークベースの台帳が持つ基本的障壁と思われていた「ノーコストシミュレーション」や「Nothing at Stake」攻撃に対しても堅牢であることを示すものだ。これにより、Ouroborosはコンセンサスを維持するために膨大な電力消費を必要とするプルーフオブワーク(PoW)プロトコルよりもはるかに魅力的なものとなる。
- 仮に、ステークの観点から多くの参加者が台帳の維持を放棄したとしても、回復力を持つことが証明されている。このダイナミックアベイラビリティの保証により、加担レベルが任意、かつ予想不可能であっても、活性は確保される。同時に、アクティブな参加者のうち、プロトコルを順守する必要があるのは半数をわずかに超える程度である。残りは任意で逸脱できる。実際に、50%の閾値を一時的に超えたとしても許容可能だ。したがって、Ouroborosは従来のビザンチンフォールトトレランスプロトコル(およびその改訂版)に比べて明らかに回復性と適応性に秀でている。こうした従来のプロトコルは、期待される参加レベルを比較的確実に予想する必要があり、これが外れた場合には作動を止める場合もあり得る。
- プロトコルの実行に参加するプロセスは、最新チェックポイントや共通クロックといった特別な共有リソースが利用可能であることを要求されないという観点からトラストレスであると言える。プロトコルに関与する場合、必要となるのは公開のチェーンジェネシスブロック、そしてネットワークへのアクセスのみである。信用を裏付ける共有リソースは、妨害されたり使用不能となると、これを使用しているプロトコルのセキュリティが崩壊するが、Ouroborosは一般に他のコンセンサスプロトコルでよく見られるこうした信用の前提を必要としない。
- Ouroborosは、ユーザー間にいかにステークを分配するかについて良質のサービスを独立して提供できる運営用ノード、いわゆるステークプールで、自分たち自身を組織するために参加を奨励する報酬共有メカニズムを採用している。この方法により、すべてのステークホルダーはシステム運営に貢献し、堅牢性と民主的代表制を確保する一方、台帳の維持費は効果的にユーザー間に分配される。同時に、このメカニズムは中央集権に歯止めをかける役割を果たす。結果としてOuroborosは、一握りのアクターが台帳維持に責任を持つことになるか、ステークホルダーに参加や上質なサービスを提供するためのインセンティブを提供しないかのいずれかとなる他のプロトコルよりも、基本的に包括性と分散性が増すこととなる。
こうしたOuroborosの設計要素は、プロトコルユーザーの常識的感覚に訴えかける自明のものではない。その代わりに、査読やトップレベルの学会で発表された論文、サイバーセキュリティや暗号学の分野における出版物といった詳細なドキュメンテーションにより紹介される。確かに、こうした分野にこれほど包括的に代表されるコンセンサス研究は他にないと言っても過言ではない。各論文は、プロトコルを解析するために使用する特定のモデルタイプを扱っていることが明確で、ここから引き出される結果は具体的な表現で説明されている。論文はオープンアクセス、パテントフリーで、関連する技術的知識があれば誰もがパフォーマンス、セキュリティ、機能性に関する主張の正確さを納得できるほどの、詳細な技術的情報が掲載されている。
包括的、公正かつ回復力のある金融およびソーシャルアプリケーション用インフラストラクチャーを世界的規模で構築することは、今日のITにおける大きな課題である。Ouroborosは、単にユニークな特徴を備えたプロトコルとしてばかりでなく、第一の原則である注意深いモデリングおよび厳密な解析を際立たせた設計手法を提示するという意味においてもこれに貢献している。そのモジュラー式の応用性の高いアーキテクチャーは、継続的な改良、適用、追加要素による強化(この2つの例として、スケーラビリティ向上のためのパラレル化、プライバシー向上のためのゼロ知識証明が挙げられる)に役立ち、常に進化し続ける実世界のニーズや複雑性に合致する、適切な特性を持つ。
参考文献
その発端から最新機能までOuroborosプロトコルを掘り下げるには、以下を参照されたい。
- Ouroboros (Classic):証明可能安全性を持つ、初のプルーフオブステークブロックチェーンプロトコル
- Ouroboros Praos:堅固なラウンド構造を不要とし、「適応的」攻撃者への弾性を向上
- Ouroboros Genesis:最新チェックポイントの必要性を避け、トラストレスな参加を可能とするダイナミックアベイラビリティの状況下でプロトコルが安全であることをいかに証明するか
- Ouroboros Chronos:共通クロックの必要性を排除
- ステークプール向け報酬共有スキーム
- ステークプールにおけるアカウント管理と参加の最大化
- トランザクションスループットの最大化とプルーフオブステークプロトコル
- 台帳コンビネーターを使用した迅速な決済
- Ouroboros Crypsinous:プライバシー保全型プルーフオブステークプロトコル
- Kachina:プライベートスマートコントラクト用の統合セキュリティモデル
- Hydra:低レイテンシーとノードごとの最小ストレージを実現した、高トランザクションスループット用のオフチェーンスケーラビリティアーキテクチャー