Ouroboros Peras:Cardanoプロトコルの旅、次のステップ
2024年 10月 14日 16 分で読めます
Ouroboros Peras(ウロボロスぺラス:以降Peras)はOuroboros Praos(プラオス)プロトコルの拡張であり、トランザクションの決済時間、すなわち、トランザクションが取り消される確率が無視できる時点に関する問題に対処する。決済時間が短縮されると、ブロックチェーンシステムのセキュリティ、ユーザビリティ、効率性が向上する。
Perasを支える重要な概念は、ステークベースの投票を使用して、大多数のステークプールオペレーター(SPO)が同意するブロックの重みを高めることである。チェーン選択ルールは、最長のチェーンではなく、最も重いチェーンを選択するように変更される。
本稿では、ブロックチェーン環境、より具体的にはCardanoエコシステムにおける決済時間の重要性を振り返り、Perasとは何か、そしてそれがどのように機能するかについて説明する。
Cardanoのスケーリング
Cardanoエコシステムは成長が予想されるため、一連のスケーリングソリューションの実装が必要となる。特に、Ouroborosプロトコルの新しいバージョンは、レイヤー1の性能を強化すべく開発されている。こうした進歩は、既存のスケーリングソリューションの守備範囲に含まれない分野に対処し、Cardanoの拡大するネットワークをサポートするために不可欠である。
Perasに関する取り組みは、Input | Outputにとって新たなイノベーションプロセスを確立、推進する機会にもなった。このプロセスは、シミュレーションとラピッドプロトタイピングを介して、研究アイデアを実装するために必要な時間を最小限に抑えるように設計されている。その最終目的は、ブロックチェーンエコシステム開発の急速なペースを認識しながら、基礎研究の堅牢性と厳格性を維持することだ。このプロセスのおかげで、論文自体が正式に発表される前に、詳細なCIPの草稿(AGDAの仕様付き)が作成された。
既存のスケーリングソリューション:HydraとMithril
Hydra(ハイドラ)はCardanoブロックチェーンを強化するために設計されたレイヤー2スケーリングソリューションである。これにより、参加者グループはCardano台帳ステータスの一部(レイヤー1)を取得し、オフチェーン(レイヤー2)で処理してから、メインブロックチェーン(レイヤー1)にシームレスに再統合することができる。Hydraの重要な特徴は、オフチェーンで使用されている台帳モデルがメインチェーンで使用されているものと同一であり、「同型」型を保証することである。これは、メインブロックチェーンをフォールバックとして使用することで堅牢なセキュリティを確保しながら、オフチェーン処理と組み合わせることで高スループット、低レイテンシー、コスト効率を可能にする。
Hydraファミリーの最初のプロトコルはHydra Headプロトコルである。Hydraヘッドはマルチパーティステートチャネルの同型バージョンであり、すべての参加ノードがオフチェーンステータスを維持し発展させるための責任を等しく共有することを意味する。対照的に、Hydraテールは現在研究の初期段階にあり、同型レイヤー2ソリューションの概念をロールアップのようなプロトコルに拡張することを目指している。これらの「非対称」プロトコルには、クライアントのためにオフチェーンでトランザクションを処理する1台または複数のサーバーが含まれる。
Mithril(ミスリル)は、既存のCardanoネットワークを活用してブロックチェーンステータスの全部または一部の認証済みスナップショットを提供するステークベースのマルチシグスキームである。Mithrilの主な用途は、Cardanoノードの高速ブートストラップを補助することだ。ジェネシスブロックに始まるすべての公開済みブロックを検証するのは時間がかかるが、その代わりに、参加ノードは認証されたスナップショットから始められるようになった。したがって、このスナップショットはアプリケーション、サイドチェーン、ライトウォレット間の同期に特に有用である。
PerasとLeios
Hydraはレイヤー2上で高速かつ高スループットのトランザクション処理を可能にするが、HydraもMithrilもCardanoメインネットのスループットとレイテンシーに対応していない。このため、Ouroborosプロトコルの新バージョン、Peras(本稿の主題)とLeios(レイオス)が開発された。Perasは決済時間の短縮を、Leiosは利用可能なネットワーク帯域幅を最大限に活用することを目指している。これらのプロトコルを組み合わせることで、より多くのトランザクションをブロックチェーン上でより迅速に記録、決済することが可能になり、ユーザーエクスペリエンスが向上する。最近の動画で、Input | OutputのチーフサイエンティストであるAggelos Kiayiasは、Cardanoのスケーラビリティを大幅に向上させることを約束するこの一連の新技術について説明している。
Ouroborosと決済
迅速な決済の重要性
「高速決済」とは、時間の経過とともにトランザクションが取り消される確率が急速に低下することを指す。ブロックチェーンの使いやすさは、トランザクションをいかに迅速に決済できるかに直結している。例えば、ブロックチェーンを使って商品の代金を支払う場合、商品を渡す前に支払いトランザクションが決済されるまで十分に待つことが重要である。一杯のコーヒーのように商品が安価である場合、待ち時間を短くするために失敗する確率が高めでも受け入れるかもしれない。しかし、ランボルギーニのような高額商品の場合、支払いが取り消される確率が極端に低くなるまで待つべきである。どちらのシナリオでも、取り消しの確率低下が速ければ速いほど、そのブロックチェーンは支払いに便利で実用的ということになる。
高速決済のもう一つの重要なユースケースはサイドチェーンへのブリッジであり、これによりユーザーはメインチェーンからサイドチェーンへ資金を転送することができる。そのような転送に関連するトランザクションが取り消されることはサイドチェーンの正しい機能を妨げかねないため、取り消される確率が最小になるまで待つことが重要である。したがって、メインチェーンによって保証される決済が速くなるほど、ブリッジの効率性と信頼性が高まる。
要するに、高速決済はブロックチェーンの総合的な有用性と実用性にとって不可欠である。
Cardanoで決済が機能する仕組み
Cardanoブロックチェーンには、Ouroborosとして知られるプロトコルが搭載されている。Ouroborosの現行バージョンPraosでは、新しいブロックが確率的に追加される。各スロット(時間枠)では、SPOは新しいブロックを作成する権利を求めるくじに参加するが、その勝率はSPOが抱えるステーク量に比例する。現在のところ、Cardanoのプロトコルパラメーターでは、新しいブロックが約20スロットごとに作成されるよう規定している。新しいブロックはネットワーク上に伝播され、他のノードは最長チェーンの原理に従い採用する。つまり、SPOは新しいブロックで延長されたチェーンを受け取ったとき、その新しいチェーンが現在のチェーンよりも長い場合に限り、その新しいチェーンを自身のチェーンとして採用する。
Cardanoでは、現在最長チェーンにあるブロックは、そのブロックの前に「フォーク」し、それゆえこのブロックが含まれていないもっと長いチェーンが出てきた場合、「取り消し」にすることができる。このようなフォークは、例えば複数のSPOが同時にブロックを生成者として選ばれたときに発生する。しかし実際には、同時にブロックが生成されることから生じるフォークは、同じ長さのチェーンを選択するタイブレークメカニズムのために通常短命である。より重要な懸念は、プライベートチェーン攻撃などシステムへの攻撃によるロングフォークである。このような攻撃では、おそらく全ステークのかなりの部分を有する敵対ノードが秘密裏にチェーンを構築し、パブリックチェーンがプライベートチェーンに追いついたときに初めてこれを解放することによって、ロングフォークを引き起こす。
重要なのは、ブロックが最長チェーンの中で深くなればなるほど、取り消される可能性は低くなることだ。Praosでは、取り消しの可能性が小さくなるまでの待ち時間は、要求されるセキュリティレベルと想定される敵の強さに依存して、数分から数時間に及ぶ。Perasは後述するように、この待ち時間を大幅に短縮する。
ファイナリティと決済の違い
ブロックチェーンエコシステムの文脈では、「ファイナリティ」と「決済」の違いを理解することが重要である。Algorandのようなビザンチンフォールトトレラント(BFT)コンピューティングに基づくプロトコルを搭載したブロックチェーンは「ファイナリティ」に至る。ブロックは一般的にほぼ即座に確認され、一度確認されるとチェーン履歴に恒久的に組み込まれる。このファイナリティは堅牢であり、プロトコル全体が失敗する可能性は非常に小さい。ちなみにこのような場合の失敗は、プロトコルが永続的に破壊されることを意味する。
逆に、OuroborosのようなNakamotoベースのプロトコルは「決済」に至る。これは、ブロックがブロックチェーンの履歴に残る可能性は、その先に構築されるブロックが増えるほど高まることを意味する。しかし、技術的には、たとえブロックが深い場所に埋まっていたとしても、チェーンの再編成により取り消される可能性は常にある。BFT型プロトコルとは対照的に、そのような取り消しがプロトコルを永続的に破壊する障害とは見なされないことは重要だ。
したがって、BFTプロトコルは全体的なエラーが起こる小さな確率がありながらも即時的かつ永続的な承認を提供するが、Nakamotoプロトコルはブロックチェーンが成長するにつれてより堅牢になる確率的保証を提供する。確率的決済は他にも自己修復のような他の望ましい特性を可能にするが、それは別稿で説明する。
Perasが迅速な決済を可能にする仕組み
Perasの根底にある主な理念は、SPOが優先チェーンの先端よりやや後方にあるブロックをサポートしていることを暗黙的に示すメカニズムでPraosを強化するというものである。投票はチェーンの重み(チェーンのブロックによって与えられる「基本」の重み)を増加させ、参加者は自分たちが優先チェーンとみなすもっとも重いチェーンを選ぶ。
ネットワークのパフォーマンスが優れていて腐敗があまりないという良好な状況下では、ほとんどの投票は単一のブロックで一致し、このブロックを含むチェーンに重みを与える可能性が高い。しかし、Perasの安全性のためには、各投票ラウンドで十分な合意があることが重要である。つまり、一定のしきい値以上の票、いわゆるクォーラムを獲得するブロックがなければならない。しきい値は、最大で1つのブロックがクォーラムに達し、クォーラムブロックと他のブロックとの間に有意な票差があるように選択される。クォーラムが存在しない場合、得票差は保証されず、攻撃者が投票層を使って誠実な参加者を分割して有利になる可能性がある。
そのため、投票ラウンドが失敗した後、Perasはクールダウン期間に入り、その間投票は中断され、プロトコルは本質的にPraosとして稼働する。クールダウン期間は、失敗したラウンドにおける好ましくない票の配分から得られる敵対的利益が、クールダウン終了までに確実に中和されるだけの長さを必要とする。
投票によるブーストとクールダウン期間の長さの間にはトレードオフがある。ブーストが高いほど、投票が失敗することによる潜在的なダメージは高くなり、投票が再開されるまでの時間が長くなる。
実際には、Cardanoネットワークは非常にパフォーマンスが高く、物理的な障害に対しても目覚ましい回復力を備えていることが証明されている。さらに、いつでも委任されたステークの100%近くがオンラインであり、我々の知る限り、Shelley期の開始以来、大量のステークを巻き込んだPraosへの攻撃は報告されていない。この事実は、SPOの大多数がプロトコルに従っていることを示唆している。これらの条件が持続するという理にかなった仮定の下では、Perasがクールダウンを必要とせずに、継続的に高速決済を享受することが想定できる。
エビデンスに基づいた、オープンソースのエンジニアリング
Perasの開発と実装は、IOのエビデンスと研究に基づいたオープンソースアプローチに合致している。
Cardanoの技術革新は、一連のアイデアと研究論文から始まる。その後の開発とアイデアを成熟させていく過程は、さまざまな段階を経る。
仮定するアイデアはアルゴリズムと証明を通じて形式的仕様となる。定理証明は、チェーンの成長や共通接頭辞のような重要なセキュリティプロパティの証明に役立ち、また、より形式的な手法に基づく研究と検証のための基盤を構築する。
これらのコンポーネントはすべてHaskellによるプロトタイプ実装を経てテストを受け、その後ライブシミュレーションとネットワーク全体の挙動を分析する技術モデルが作成される。シミュレーションにより、IOとコミュニティがともにプロトコルの動的プロパティを視覚化してシミュレートできる。その結果得られたデータは収集、分析され、定期的な更新と報告を通じてコミュニティに提供される。
これらのプロセス、およびOuroborosプロトコルシリーズの継続的な開発の最終的な目標は、ブロックチェーン技術を通じて現実世界の問題を解決することである。
オープンソース
同時に、オープンソース設計により、ソフトウェア作成者は開発を最初から加速し、専門家のコミュニティを活用して知識と範囲を拡大し、十分にテストされたピアレビュー済みのコードを使用することができる。
これはすべて次のカテゴリーにグループ化できる利点に読み替えることができる。
技術革新と成長の迅速化
オープンソースとは、ソフトウェアプロジェクトの構築と開発のための構成要素がすでに存在し、すぐに使用できる状態にあることを意味し、これにより起動時間が大幅に短縮される。作成者は単にコードを取得し、プロジェクトに即使用するだけだ。オープンソースベースの開発は、イノベーションを起こし、急速に成長する可能性がある。
開発の迅速化、安全性、透明性の向上
作成者が既存のオープンソースプロジェクトに新規参加する場合、コードが他の多くの人によって徹底的にテストされ検証されていることが保証されている。この保証とオープンソース固有の透明性は、迅速で安全な開発をサポートする。
コミュニティベースのサポートとコラボレーション
強力で広範、活発なコミュニティが、ソフトウェアのより良い品質と着実なリリースをサポートしている。
そのような環境では、新しいアイデアの拡散スピードがアップし、問題やバグが発生した場合には、コミュニティが解決に向けて取り組む。ソフトウェアプロジェクトを中心に構築された強力なコミュニティは、繋がっているという感覚と共通の目標に向かって働こうとする本能を生み出す。関与したコミュニティメンバーは、例えば新しいユースケースの提案を共有するなど、互いに協力し合う傾向がある。
参加方法
Perasの開発は急速に進んでいる。すなわち、コアとなるアイデアとアルゴリズムは確立され、形式仕様記述とプロトタイプの開発とテストが進行中である。CardanoメインネットへのPerasデプロイを検討できるようになるまでには、まだ多くの作業が必要である。しかし、Perasは、Input | Outputによって開拓された高速プロトタイピングアプローチを通じて、基礎研究から最終デプロイまでの時間を最小限に抑えることを目指す新しい開発方法論の一環である。その結果、研究論文の発表前に、初めてプロトコルの更新がCIPとして起草された。
Perasの進化は、Cardanoコミュニティとの共同作業であり、Intersectのさまざまな委員会やワーキンググループで活発に議論されている。開発者、研究者、愛好家は、上記のリソースを探索し、Discordサーバー上の議論に参加し、その専門知識をもってプロジェクトに貢献することが奨励される。
Perasプロジェクトへの参加に興味がある場合は、次のリソースを使用されたい。
最新の記事
Input | Output chief scientist receives prestigious Lovelace computing award 筆者: Fergie Miller
3 December 2024
Delivering change in Ethiopia: lessons and reflections 筆者: Staff Writer
28 November 2024
Applying formal methods at Input | Output: real-world examples 筆者: James Chapman
26 November 2024