Skip to main content

ブログ > 2025 > October > Ouroboros Phalanx – グラインディング攻撃の経済性を粉砕

Ouroboros Phalanx – グラインディング攻撃の経済性を粉砕

Phalanxは、より強力なランダム性生成によるOuroborosの強化を目的とし、グラインディング攻撃を防ぎ、より高速で信頼性の高いトランザクション決済を実現

2025年 10月 22日 Kris Bennett 11 分で読めます

Ouroboros Phalanx – グラインディング攻撃の経済性を粉砕

概要

  • Ouroboros Phalanxは、グラインディング攻撃として知られる、ランダム性生成における微妙ながらも重要な脆弱性に対処することで、Cardanoのコンセンサスの基盤を強化 
  • 検証可能遅延関数(VDF)を導入してエポックをまたいだランダム性の構築方法を拡張することで、Phalanxはそのような攻撃のコストを指数関数的に高め、実質的に不可能なものにする
  • このアップグレードは、セキュリティを強化するだけでなく、パフォーマンスも改善し、トランザクションの決済時間を最大30%短縮
  • Ouroboros Praosの拡張機能として構築されたPhalanxは、既存のシステムとの完全な互換性を維持しながら、Perasのような将来のスケーラビリティ向上に向けてネットワークを準備することを目指す

Ouroboros Praosは、検証可能ランダム関数(VRF)を使用してブロックを追加するためのスロットリーダーを公平に選出する。これで、セキュリティ、公平性、分散性が保証される。しかし、(CPS)0021:Ouroboros Randomness Manipulation(Ouroborosランダム性の不正操作)で概説されているように、ランダム性生成には潜在的な弱点がある。大量のステークを保有する攻撃者は、グラインディング攻撃を試みてランダム性にバイアスをかけようとする可能性があり、それによってリーダー選出の主導権を不当に握ったり、トランザクションの遅延やネットワークの中断を引き起こしたりする恐れがある。

Ouroboros Phalanxは、ランダム性生成のプロセスを2つのエポックに拡張し、検証可能遅延関数VDFを用いる計算資源集約型のステップを追加することで、この課題に取り組む。その名の由来となった古代ギリシャの密集陣形ファランクスのように、Phalanxは、正規の参加者にとっては手順を簡潔に保ちながらも、攻撃に必要な労力を増大させる。これは、CPS-0021で指摘された脆弱性に対処するだけでなく、より信頼性の高いランダム性を通じて、トランザクションの決済速度向上にも貢献する。

Phalanxは、Cardanoのプルーフオブステーク型システムを支える、より広範なOuroborosコンセンサスプロトコルファミリーの1つである。Ouroborosは、セキュアでエネルギー効率の高いブロック生成を確立した最初の設計、ClassicとPraosから始まった。Genesis、Peras、Leiosなどその後のイテレーションは、動的な可用性、スケーラビリティ、高スループットといった機能をサポートするためにOuroborosを拡張することを目指している。PhalanxはPraosの上に直接構築されており、ネットワークのスケーリングに伴い、不正操作に対するCardanoの耐性を高めるために、そのランダム性メカニズムを強化している。

この概要では、Praosの主な課題、Phalanxの仕組み、VDFの使用、およびそれがもたらす利点について説明する。

課題:Ouroboros Praosにおけるグラインディング攻撃

Praosにおいては、ステークプールからのVRFによってスロットリーダーを選択するランダム性(η と呼ばれる)が生成されるが、これは設定された数のスロットの後で安定化する。このランダム性が、各スロットのリーダーを決定する。しかし、20%を超える(2025年3月時点で約43.6億ADAに相当)多大なステークを支配する攻撃者は、グラインディング攻撃を実行する機会に遭遇する可能性がある。この攻撃では、攻撃者は複数回の可能性を試行し、結果を自分たちに有利になるようにバイアスをかけようとする。これらの機会は、確率的な偶然要素、すなわち「運」に依存する。しかし、システムのセキュリティをこのような予測不可能性に頼ることは望ましくない。

支援分析では、グラインディングの深さ(ρ)に基づいて、単純なもの(「アリのチラ見」)から高度なもの(「フクロウの調査」)まで、さまざまな攻撃レベルをモデル化する。

実現可能性カテゴリーアリのチラ見アリのパトロールフクロウの注視フクロウの調査
いかなる攻撃者にとっても極めて容易0→53.60→32.90→31.60→31.1
標準的なリソースで実行可能53.6→6032.9→39.531.6→38.331.1→37.8
大規模なインフラを要する60→69.739.5→49.538.3→48.237.8→47.7
ほぼ実現不可能69.7→79.449.5→59.548.2→58.247.7→57.7
実現不可能79.4→25659.5→25658.2→25657.7→256

攻撃コストは基本的な試行のための56ドルから、大規模な試行では最大で31億ドルに及ぶ。グラインディングの深さがρ=57.7のような高いレベルになると、攻撃者は約2^{57.7}通りの異なるランダムなスロット配分を試行できるようになり、稀に起こる有害な事象の確率を増幅できる。その結果、ネットワークの安全性を保つために、セキュアなトランザクション承認までの待機時間が長期化する。

Phalanxの仕組み:Praosの主な更新

Phalanxは、ステークとランダム性の安定化のタイミングを、1エポック分後ろに調整し、既存の「ηストリーム」に加えて、並行して動作する「ϕストリーム」を導入する。ϕストリームはVDFに基づいた特殊な関数(Φ)を使用し、5日のエポック期間中に120の間隔のランダム性を段階的に構築する。

主な変更点

  • ステークとランダム性のタイミング:(2エポック前でなく)3エポック前のデータに基づき、セキュアな処理のための時間をさらに確保する
  • 初期ランダム性ステップ:事前のランダム性値が安定した後、定義された期間にわたってΦ関数を通じて処理される
  • ϕストリームプロセス:事前の値から開始し、スロットごとに更新され、リーダーからの検証済み貢献を組み込む
  • 最終ランダム性:処理された出力を結合し、リーダー選出のためのセキュアなηを生成する

このシステムは、セットアップ、開始のための猶予期間、主計算(82間隔)、ネットワーク障害などの混乱を処理するための復旧フェーズ(最大37間隔)という段階を経て流れる。

PhalanxにおけるWesolowskiのVDFの使用

Phalanxは、一貫性のある結果、迅速な検証、労力の保証のために、WesolowskiのVDFを採用する。これは、セキュリティ設定と事前のランダム性に基づいて数学的なグループを設定する。各間隔で、検証が容易な証明を伴う反復演算を通じて値が計算される。

集約ツールは、すべての貢献を一つの検証可能な証明に統合し、ネットワークの同期を効率化する。

推奨設定

  • セキュリティレベル:長期的な安全性と実用性のバランスが取れていること(例:攻撃に耐えられる十分な大きさの数値)
  • 総労力: 標準的なハードウェアで合計約12時間とし、各間隔あたり管理しやすい10分のタスクに分割する

パフォーマンス

  • ブロック作成:主要な計算にかかる時間は約22.6秒
  • 検証:証明あたり約15ミリ秒。集約により検証全体が高速化

セキュリティとパフォーマンスの向上

Phalanxは、VDFのコストを追加することにより、グラインディングに必要な時間とリソースを増大させる。中程度の設定(総労力 2 時間)の場合、攻撃コストは劇的に上昇し(10^{10.2}倍)、実現可能性が変化する。

実現可能性カテゴリーPhalanx(中程度 - アリのチラ見)やや高い労力最大労力
容易0→19.60→16.30→13.0
実現可能19.6→26.316.3→23.013.0→19.6
インフラを要する26.3→36.223.0→32.919.6→29.6
ほぼ実現不可能36.2→46.232.9→42.929.6→39.5
実現不可能46.2→25642.9→25639.5→256

これにより、容易な攻撃機会の範囲が37%から76%削減される。決済においては、同等の安全性レベルを維持しながら、承認までの待機時間を約20%から30%短縮する。

統合と次のステップ

Phalanxは、より迅速なファイナリティを実現するためのPerasのような他のアップグレードを補完する。  これは現在、Ouroboros開発パイプラインのイノベーションフェーズにある。プロトコル設計とセキュリティ分析は完了しており、提案は技術的検証を受けている。次の段階では、実装とノードソフトウェアへの統合が行われ、その後、テストネットでの試行を経て、最終的にハードフォークを通じてメインネットにデプロイされる予定である。コミュニティガバナンスは、設定とロールアウトの決定を監督し、透明性、および、Cardanoの長期的なロードマップとの整合性を確保する。

詳細は、Ouroboros Phalanxリポジトリを参照して欲しい。