Ouroboros Genesis:動的環境下でセキュリティを強化
2023年、Ouroboros GenesisがCardanoに登場。Genesisの主な機能は、ブロックチェーンの現状の正しいスナップショットを提供するために、選ばれたピアを信頼する必要なく、参加者が安全にネットワークに参加できるようにすることです。お読みください
2023年 2月 9日 9 分で読めます
Ouroboros Genesis(ウロボロスジェネシス)は、プルーフオブステーク(PoS)型ブロックチェーンプロトコルで、その前身であるOuroboros Praos(プラオス)を拡張したものです。
まず思い出しておきたいことは、Ouroborosが大きく変動する可能性のある参加に対する耐性が組み込まれた、ナカモト型PoSプロトコルであるということです。これは、ネットワークの問題、ノードの不適切な設定、あるいはノードのダウンタイムを引き起こす恐れのある競合状態から生じる可能性のある多くの課題に対し耐性があることを意味しています。Ouroborosは、悪意のあるアクターの手にあるのがアクティブなステークの半分に満たない限り、安全であることが証明されています。しかも、この前提が一時的に破られたとしても、再び誠実な多数派の条件が成立すれば、Ouroborosは迅速に自己回復します。IOGによる2020年の研究論文は、この状況を分析しています。
動的PoSシステムで重要でありながら、長らく見過ごされてきた問題があります。それは、パーティが同じセキュリティ前提の下で、特に現行のブロックチェーンの正しいバージョンを提供する信頼できるピアに依存することなく、システムに安全に参加または再参加するにはどうすればよいか、という問いです。この問題は、IOGが2018年の研究論文で解決策を提案するまで、PoSシステムの主要な欠点と見なされていました。本稿では、Genesisを支える重要な思想を説明します。
動的可用性の重要性
ブロックチェーン設定における動的可用性(ダイナミックアベイラビリティ)は、ブロック生成ノードが予告なしにオンラインおよびオフラインになることを可能にするプロパティと見なすことができます。同時に、ビットコインの計算能力やCardanoのステークといったリソースのうち、(アクティブなノード間で)50%を超える量が誠実な参加者によって管理されている限り、 システムは安全なままあらゆる参加レベルで動作し続けます。すべてのノードを合意に導くことを目的とするコンセンサスメカニズムは、これらのリソースを使用して、有効なトランザクションを含むブロックによってブロックチェーンを拡張する権利を持つリーダーを選出します。
この文脈において、動的な可用性はネットワークの活性を強化するものであり、真の分散型システムには不可欠なものです。なぜなら、すべてのノードが常にオンラインであると想定できるわけではないからです。ただし、このシナリオを完全なものにするためには、ネットワークを観察し、ジェネシスブロックを知るだけで、ノードがシステムに簡単に再参加できるようにする必要があります。信頼できるピアによって提供されるチェックポイントの必要性など、それ以上の信頼の仮定は、分散化のビジョンに反します。
2018年、IOGの研究は、強力な暗号化モデルで上記の要件を確実に満たす、Ouroboros Genesisアルゴリズムを発表し、分析しました。Genesisアルゴリズムは本質的にPraosですが、信頼できるアドバイスや過去の可用性に関する知識といった助けを必要とせずに、パーティがブロックチェーンに安全に参加してゼロからブートストラップできるようにする、新しいチェーン選定ルールが追加されています。
チェーン選定ルールによるセキュリティ保証
Genesisの構造はOuroboros Praosと似ています。実際、すべてのパーティが常に可用である場合を考えると、2つのプロトコルは同じように動作します。ただし、動的な可用性に関して言えば、Praosの場合、新規参入者には最長のチェーンを安全に拡張できるようにするためのアドバイスが必要となります。新規参入者は、たとえば信頼できるピアに尋ねるなどして、最初に現在の(真の)台帳の状態を認識しておく必要があります。攻撃者がこれらの新規参入者に偽のチェーンを提供できれば、新規参入者が参加してシステムのセキュリティとパフォーマンスに貢献するのを防ぐことができます。では、Genesisはどのようにしてそのような信頼できるアドバイスを回避するのでしょうか。技術革新は、新しいチェーン選定ルールにあります。
簡単に言えば、チェーン選定をフィルターと考えてください。このフィルターは、ネットワーク上で観察されたすべてのブロックチェーンを提示すると、システムにとって最も有用なものを検出します。原則として、ナカモトコンセンサスでは、最長のチェーンを使用するというアプローチを取っています。これはビットコインでは問題ありませんが、PoSの場合、単純な最長チェーンルールは適切ではありません。敵対者が誠実なチェーンから分岐し、非公開でブロックを作成し続ける可能性があるためです。かなりの時間(数エポックほど)の後、敵対者は実質的に自分のプライベートチェーンの過半数のステーク保有者となり、誠実なチェーンよりもはるかに速くブロックを作成できるようになり、最終的にはそれを超える長さにすることができます。Praosやその他のPoSアルゴリズムは、すべてのチェーンが遵守する必要があるローリングチェックポイントを導入することで、このような敵対的なチェーンにだまされるのを防ぎます。前述のように、このようなチェックポイントを導入すると、参加するパーティに信頼できるアドバイスが必要になるという欠点があります。
この点にどう対処すべきか。重要な点は、敵対者が誠実なチェーンから分岐してチェーンをプライベートに拡張するときはいつでも、そのようなプライベートチェーンには分岐点の直後にスロットの最初のセグメントがあるという事実を避けることができないということです。この部分は、誠実な参加者がそのセグメントに対して作成するチェーンよりも密度が低く(ブロックが少なく)なっています。これを良いものと悪いものを区別するために活用できることから、新しいチェーン選定ルールを導入することで、前述のローリングチェックポイントを取り除くことができます。
ジェネシスブロックから始める新参者を初期チェーンとしましょう。ネットワーク上で新しいチェーンが見られるときはいつでも、この新規参入者は、2つのチェーンが互いに分岐し始めた後、その特定のセグメントの密度に従って、ローカルに保持されているチェーンと新しいチェーンを比較します。新規参入者は、そのセグメントで密度が高い場合にのみ新しいチェーンを採用し、他の新しく受け取ったチェーンでこのプロセスを繰り返し続けます。上記の観察により、新規参入者がたまたまネットワーク内のアクティブなステークの誠実な過半数によってサポートされている実際のチェーンを観測した場合、このチェーンが採用されると結論付けることができます。その結果、新規参入者は、他のすでにアクティブな参加者とまったく同じように、ブロックチェーンの状態を確定します。
技術的議論全体については、2018年の研究論文、および、Aggelos KiayiasによるOuroboros Genesisに関するプレゼンテーションを参照してください。
要約すると、チェーン選定ルールにより、誠実な参加者がアクティブなステークの大部分を保持している限り、Ouroborosはジェネシスブロックからブートストラップして安全を確保することにより、アクティブなパーティの数の変化を分散型の方法でシームレスに処理できます。
Cardanoへの搭載
Cardanoは現在、Ouroboros Praosで実行されていますが、チームはすでにコンセンサスの再設計に取り組んでいます。部分的にGenesisプロトタイプが機能しており、パフォーマンスの調整と、新しい攻撃ベクトルの監査が行われています。チームは、実装の主要コンポーネントである自己完結型のGenesis切断ロジックの実装にも取り組みました。このロジックは現在テスト中であり、追加の統合作業が必要です。
開発プロセスに興味がある場合は、Genesisロードマップを参照してください。また、コンセンサスチームの最新技術情報とIOGメディアチャンネルをフォローしてください。
執筆協力:Olga Hryniuk
最新の記事
Quality Engineering at IO: bridging research and reality in software development 筆者: Ivan Irakoze
20 November 2024
ブラックホーク空へ:ハリケーン「へリーン」を受けて英雄達を輸送 筆者: Fernando Sanchez
29 October 2024
ワイオミングのBlockchain StampedeでCardano Day 筆者: Alejandro Garcia
21 October 2024