ブログ > 2022 > June > ClassicからChronosへ:Ouroboros実装を解説

ClassicからChronosへ:Ouroboros実装を解説

Cardanoのコンセンサスプロトコル、Ouroborosの仕組みと進化を紐解く

2022年 6月 3日 Olga Hryniuk 16 分で読めます

ClassicからChronosへ:Ouroboros実装を解説

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

エディンバラ大学のAggelos Kiayias教授主導のもと、Ouroborosとそれに続く各実装は、世界最大の課題の一部を安全かつ大きな規模で解消するための新たなベースラインを提供する。

認識は教育から始まる。本稿では、したがってOuroborosの仕組みについての概要を提示したい。ここでは具体例を検証し、各実装により導入された機能を紹介する。これによりコミュニティのプロトコルに対する理解を深め、このプロトコルが革新をもたらす理由を明らかにしたい。各実装の詳細分析は下記の対応する論文を参照されたい(英語のみ)。そのうえで、Ouroborosとその各実装に関する概要を以下に紹介する。

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

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

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

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

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

Ouroborosを使用するネットワークはプルーフオブワークを使用するネットワークに比べてはるかにエネルギー効率が高く、Ouroborosを通じてCardanoは比類のないエネルギー効率を達成することができる。たとえば2022年の時点で、ビットコインは年間204.50TWhの電力を必要とする。これは、タイの電力消費量に匹敵する。一方OuroborosはRaspberry Piで稼働するが、この消費電力は15から18W程度である。この使用電力の違いは、いわば1家庭と1国の違いにもたとえられ、一方はマスマーケットに対応可能、他方は不可である。

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

Ouroboros Classic

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

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

Ouroborosの仕組み

Ouroborosの仕組みに関する包括的な説明は研究論文を参照されたい。Ouroborosは、Cardano上で時間をエポックに区切り、エポックはさらにスロットに区切られる。スロットは短時間でここでブロックが生成される。スロットをグループにしてエポックにすることは、リーダー選出プロセスを動的に変化するステーク分布に対応させる要となる。

Ouroboros設計の中心となるのは、攻撃を受けても安全性を維持する必要があるということだ。したがって、プロトコルは攻撃者がブロックチェーンの代替バージョンを伝播することを防ぐ障害許容性を内包しており、敵対者がいつでも参加者に任意のメッセージを送信する事態を想定している。事実、プロトコルはステークの51%以上がプロトコルに従う誠実な参加者にコントロールされている限り、いわゆる同期設定で安全性を保障している(つまり、メッセージの配信時間が強力に保証される)。

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

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

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

Ouroboros BFT

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

ノードがオンラインに常駐することを要求する代わりに、Ouroboros BFTは、ブロックチェーンを構築するために連合型のサーバーネットワーク、そしてそのサーバー間の同期通信を想定した。この連合型設定では、その単純性と決定性により、コンセンサスプロトコルが魅力を持つ。BFTが他のOuroborosバージョンよりもより多くの誠実な参加者を必要としたことは注目に値する。

Ouroboros Praos

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

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

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

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

Ouroboros Genesis

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

Ouroboros Crypsinous

Ouroboros Crypsinousはプライバシー保全プロパティを搭載したGenesisだ。形式的分析を行った初のプライバシー保全型プルーフオブステークブロックチェーンプロトコルで、SNARKとキープライベート前方秘匿性暗号化に依存した新しいコイン進化技術の導入により強力なプライバシー保証を維持しながら、適応的攻撃に対する安全性を達成している。現在CardanoへのCrypsinous実装は未定だが、他のチェーンにプライバシー保全強化のために使用することは可能だ。

Ouroboros Chronos

満を持して登場するのはOuroboros Chronosだ。Chronosは2つの目標を達成する。第1に、新しい時刻同期メカニズムによりブロックチェーンプロトコルが時刻を確実に同期できること、そしてこれにより外部の時間サービスから自立できることを示す。第2に、これは暗号的に安全なブロックチェーンプロトコルであり、他のプロトコルに暗号的に安全な時間のソースを追加的に提供する。つまり、Chronosは、時間情報を狙う攻撃に対する台帳の耐性を強化する。

アプリケーションの観点から、Chronosは、単一障害点を持たない統一されたネットワーククロックにローカル時刻を同期する必要のある重要な電気通信、交通、その他のITインフラの回復性を大幅に強化する。

Ouroborosの今後

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

現在、CardanoはOuroboros Praosを基盤として稼働している。Genesisは2022年に実装予定であり、その後台帳はOuroboros Chronosをサポートするようアップグレードされる。

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

本稿は、Kieran Costelloの過去の投稿を、プロトコルの新バージョンをカバーするために加筆、修正した更新版です。