IOHKブログ:ClassicからHydraへ:Ouroboros実装を解説

Cardanoのコンセンサスプロトコル、Ouroborosの仕組みと進化を紐解く
2020年3月23日 Kieran Costello 読了時間9分

過日実施されたByronメインネットのBFTへの更新、および公開されたばかりのHydra(ハイドラ)論文などにより、Cardanoの使用する画期的なプルーフオブステーク型のコンセンサスプロトコルOuroboros(ウロボロス)に関し、耳にされている方も多いだろう。ビットコインや現在ではイーサリアムなど、初期の暗号通貨が基盤としているプルーフオブワークに代わるプロトコルとして、エネルギー効率とサステナビリティを強化したOuroborosは、査読済み研究を通じて開発された初のブロックチェーンコンセンサスプロトコルだ。

エディンバラ大学のAggelos Kiayias主導のもと、Ouroborosとそれに続く各実装 - BFT、Praos(プラオス)、Genesis(ジェネシス)、Hydra - は、世界最大の課題の一部を安全かつ大きな規模で解消するための新たなベースラインを提供する。

ただし認識は教育から始まり、また、テクノロジーが達成した「もの」が「仕組み」まで伝達することは期待できない。この記事では、したがってOuroborosの仕組みについての概要を紹介したい。ここでは具体例を検証し、各実装により導入された機能をカバーする。これによりコミュニティのプロトコルに対する理解を深め、このプロトコルが革新をもたらす理由を明らかにしたい。各実装の詳細分析は下記の対応する白書を参照されたい(英語のみ)。そのうえで、Ouroborosとその各実装に関する概要を以下に紹介する。

コンセンサスプロトコルに関する一言、なぜOuroborosは異なるのか

この分野になじみのない人が「コンセンサスプロトコル」という言葉に面食らうのは無理もない。簡単に言えば、コンセンサスプロトコルとは分散型台帳を支配する法とパラメーターのシステム、すなわち各ネットワーク参加者が守るルールセットである。

パブリックブロックチェーンは1つの中枢的権威にコントロールされることはない。そのかわり、コンセンサスプロトコルは、分散型ネットワーク参加者がブロックチェーンにキャプチャーされたネットワーク履歴に同意することを可能にするために使用される。何が起こったかについて同意に達し、唯一の真実のソースから次へ繋げていくのである。

この唯一の真実のソースが唯一の記録を提供する。これこそ、ブロックチェーンが時に「トラストレス」と呼ばれる理由である。参加者にお互いを信用することを要請する代わりに、信用がプロトコルに組み込まれる。未知のアクター同士が仲介者に依存することなく、あるいは個人データを交換する必要なくやり取りし、取引することができる。

Ouroborosはプルーフオブステークプロトコルである。これはプルーフオブワークとは一線を画する。新しいブロックを作成する際にコンピューターを駆使して複雑な方程式を解く - そして最初に解けたものが報酬を得る - マイナーに依存することなく、プルーフオブステークではネットワークにおける所有ステーク量(Cardanoの場合はコントロールするステーク量)に基づき新ブロックを作成する参加者を選定する。

Ouroborosを使用するネットワークはプルーフオブワークを使用するネットワークに比べてはるかにエネルギー効率が高く、Ouroborosを通じてCardanoは比類のないエネルギー効率を達成することができる。同レベルの分散化において - 例えばビットコインの現ネットワークを超える100プールの場合 - Cardanoの年間消費量はわずか0.01567GWh(ギガワット時)。一方ビットコインは年間67,000GWhを必要とする(現統計データに基づく)。これはOuroborosが消費電力15~18W(ワット)Raspberry Pi上で稼働できるという事実に基づいた試算であり、理論上、400万倍を超えるエネルギー効率に相当する。この使用電力の違いは、いわば1家庭と1国の違いにも匹敵し、一方はマスマーケットに対応可能、他方は不可である。

ではここからはOuroborosプロトコルの仕組みと、各実装が追加した機能性について詳細に見ていこう。

Ouroboros(Classic)

まずはOuroboros。2017年に公開された最初のOuroborosプロトコルだ。この最初の実装(以下「Ouroboros Classic(ウロボロスクラシック)」)は、プルーフオブワークに対するエネルギー効率の高いライバルとして、本プロトコルの基礎と枠組みを築いた。プルーフオブステークを解析する数学的枠組みを導入し、プルーフオブステークの設定内で参加者に報酬を与える新しいインセンティブメカニズムを導入した。

しかしながら、これ以上にOuroborosが他のブロックチェーン、とりわけ他のプルーフオブステークプロトコルと異なっている点は、プロトコルがリーダーを選定するアルゴリズムにおける無作為のランダム性であり、それゆえのセキュリティ保証である。パターンの形成を避けるランダム性は、プロトコルの安全性を保つために欠かせない要素である。行動が予測できれば、悪用対象となり得る。しかもOuroborosは透明性を確保しているが、強制を防ぐことにもなる。重要なことは、Ouroborosはこの種の厳格なセキュリティ分析をもって開発された、最初のブロックチェーンプロトコルであるということだ。

Ouroborosの仕組み

Ouroborosの仕組みに関する包括的な説明は研究論文を参照されたい。要約すれば、Ouroborosはブロックチェーンをスロットとエポックに分ける。Cardanoでは各スロットは20秒間、そしてスロットの集合である各エポックはスロットほぼ5日分となる。

Ouroborosのデザインの中核をなすのは、攻撃は避けられないという認識だ。したがって、プロトコルは攻撃者がブロックチェーンの代替バージョンを伝播することを防ぐ障害許容性を内蔵しており、敵対者がいつでも参加者に任意のメッセージを送信する事態を想定している。実際、本プロトコルはステークの51%以上がプロトコルに従う参加者にコントロールされている限り安全性を保障している。

スロットリーダーは各スロットで選定され、チェーンにブロックを追加し、次のスロットリーダーに渡す責任を負う。プロトコルを崩壊させる敵対的行為に対抗するために、各スロットの新たなリーダーは、チェーンが受信した最新の数ブロックを一時的なものと認識するよう要請され、事前に設定された一時的ブロック数を超えたものだけが決済ブロックと認められる。これはまた、決済遅延とも称される。とりわけこれは、ステークホルダーがオフラインとなっても決済遅延期間を超えない限りブロックチェーンとと同期したままとなることを意味する。

Ouroborosプロトコルでは、各ネットワークノードにはトランザクションメモリープール - ここには既存のトランザクションとの一貫性が認められるとトランザクションが追加される - およびブロックチェーンのコピーが保存される。ローカルに保存されたブロックチェーンは、ノードが代わりとなるもっと長い有効チェーンを認識すると置き換えられる。

Ouroboros Classicの欠点は適応的攻撃者に対する脆弱性であった。現実世界における重大な脅威であったこの脆弱性は、Ouroboros Praosで払しょくされた。また、新規参加者がブロックチェーンからブートストラップする際の安全性の問題は、Ouroboros Genesisで解消された。

Ouroboros BFT

次に登場したのはOuroboros BFTだ。Ouroboros BFT(ビザンチンフォールトトレランス)は、Cardanoの旧コードベースを新コードベースへ移行するByronリブート中に使用された、シンプルなプロトコルである。Ouroboros BFTはShelleyリリース、そしてそれに伴う分散化へ向けてCardanoのネットワークを準備するのに役立つ。

ノードがオンラインに常駐することを要求する代わりに、Ouroboros BFTは連合型のサーバーネットワーク - ブロックチェーン - およびサーバー間の同期通信を想定し、単純性および決定性を上げた台帳コンセンサスを提供する。

またその他の利点として、決済の即時証明、ネットワーク速度におけるトランザクション決済 - これはトランザクションの決定要因がユーザーのOBFTノードへのネットワーク接続速度であることを意味する - そして1回の往復通信における即時承認が含まれる。これら一つ一つがパフォーマンスの大幅な改善につながっている。

Ouroboros Praos

Ouroboros Classicを基に構築したOuroboros Praosでは、セキュリティとスケーラビリティが大幅に改善された。

Ouroboros Classicと同様に、Ouroboros Praosもチェーンをスロットに分割してトランザクションブロックを処理し、スロットの集合でエポックを構成する。しかしOuroboros Classicと異なるのは、Praosは半同期設定で解析され、適応的攻撃者に耐性を持つことである。

ここでは2つの可能性が想定されている。まず、敵対者が誠実な参加者のメッセージを1スロットの持続期間より長く遅延させる可能性、そして敵対者が参加者にいつでも任意のメッセージを送信する可能性である。

リーダーの選出を秘匿し、前方秘匿性のある鍵変化型署名を使用することにより、Praosは強力な敵対者でも次のスロットリーダーを予測し、DDos攻撃といった対象を絞った攻撃によりプロトコルを崩壊させることを不可能にする。Praosはまた、ステークの過半数が誠実なステークホルダーに保持されている限り、悪意によるメッセージ配信の遅延や、ステークホルダー数の拡大における個人参加者の漸進的腐敗への耐性を維持するが、これはグローバルな環境でネットワークの安全性を維持するために不可欠である。

Ouroboros Genesis

次にOuroboros Genesisである。これはOuroboros Praosに、ジェネシスブロックからのブートストラップを可能にするチェーン選定の新ルールを加えてさらに改良したものである。この際、信用できるチェックポイントや前提としての過去の有効性の必要性を極力排している。Genesisはプロトコルのユニバーサルコンポーザビリティの証明も提供する。これは現実の環境における敵対的な設定下で、このプロトコルがセキュリティプロパティを失うことなく他のプロトコルで構成することが可能であることを示している。これは、その使用するネットワークも含め、安全性とサステナビリティに多大に貢献している。

Ouroboros Hydra

最後にOuroboros Hydraである。Hydraは、高いトランザクション出力、低レイテンシー、ノードごとのミニマルストレージというスケーラビリティに関する3つの主要な課題に取り組んだ、オフチェーンのスケーラビリティアーキテクチャーであり、これをOuroborosと組み合わせたのがOuroboros Hydraだ。

最近リリースされたHydra白書では、マルチパーティステートチャネルの導入を推奨、その概要を示している。これはトランザクションの並列処理を可能にするもので、Cardanoの1秒間におけるトランザクション(TPS)出力を大幅に向上させ、トランザクションの即時承認を可能にする。その名の示す通り、白書ではオフチェーンのサブ台帳 - ステートチャネル - をヘッドとしており、これにより台帳はマルチヘッドを持つことになる。

Ouroboros HydraによりCardanoは水平的なスケーリングが可能となり、追加的ノードを統合することによりパフォーマンスを向上させる。これは、よりパワフルなハードウェアを追加するという垂直的なスケーリングとは異なる。

初期のシミュレーションでは各ヘッドは1,000TPSまで実行可能であることが示された。1,000ヘッドでは、1,000,000TPSが実現できることになる。Ouroboros Hydraが実装されれば、Cardanoは比類のないレベルのスケーリング、例えば、グローバル支払いシステムのレベルが可能となる。

OuroborosプロトコルおよびCardano台帳と関連してデザインされている一方、Hydraは、Cardanoと必要な特性を共有する限り、他のシステムにも流用できる可能性を持つ。

Ouroborosの今後

永遠のシンボルをその名に冠するOuroborosは、Cardanoエコシステムの支柱だ。このプロトコルは自己増殖型システムの基礎およびステージングポイントとして機能する。このシステムは周期的に変容、成長し、金融その他の既存システムに置き換わり、それらが依存する権力構造としての中間段階を排する。これは新たな標準の始まりであり、これは中央からではなく、周辺から規定されていく。

その未来は過去同様、探求、イテレーション、最適化の不断の努力であり、厳格な研究を通じて前向きな変化をもたらす。この道のり、すなわちHydraに続きOuroboros Crypsinous、そしてOuroboros Chronosへと向かうその一歩一歩が新たな進化であり、より公正で安全、そしてよりサステナブルな世界というビジョンへと近づくのである。

3 Likes