ブログ > 2022 > February > Hydra Headの実装:完全なHydraビジョンへの最初のステップ

Hydra Headの実装:完全なHydraビジョンへの最初のステップ

プロトコルスイートの第一弾、Hydra Headは、Cardanoのスケーリングにおける重要な要素です。これが全体像にどう位置づけられるのか、そして噂の真相に迫ります

2022年 2月 3日 Matthias Benkort 18 分で読めます

Hydra Headの実装:完全なHydraビジョンへの最初のステップ

ここまで、科学と理論を進めてきました。スケーラブルで多用性があり、高いスループットを持つブロックチェーンの基礎を築いてきました。そして今、着実な成長とシステム強化の時期を迎えています。分散型アプリケーション(DApp)開発をサポート、育成するために、最適化されたエコシステムを作り出すことを目標として、CardanoはBashoという山のふもとの丘に立っています。スマートコントラクトが搭載された今、Basho期のテーマはスケーリングとネットワークの最適化にあります。Hydraプロトコルファミリーは、この主要コンポーネントです。

Hydraについては、以前紹介しました。Hydraは、ネットワークセキュリティとスケーラビリティに対処するために設計されたレイヤー2ソリューションのアンサンブルです。Ouroboros研究チームの研究に端を発し、最初の論文の発表以降、独自路線を形作ってきました。Hydraは、大規模なストレージを必要とせずに、スループットの増加、遅延の最小化、コスト効率の高いソリューションを提供します。Hydra Headプロトコルの構想は2020年に始まりましたが、そのアイデアは、特にこの初期実装とプルーフオブコンセプト段階を通じて発展しています。その初期のアイデアに基づいて構築されたHydra Headプロトコルは、プルーフオブコンセプトへと成熟し、テストネットMVP用に定義が明確化された実装へ向けて、成長を続けています。

これに関し、巷にたくさんの熱狂が巻き起こる喜ばしい事態となっていますが、残念ながら誤解も生じています。この誤解のほとんどは、実際のプロトコル実装ではなくアイデアステートメントから生じていますが、私たちの過去のブログもまたその一因となっているでしょう。しかし、Hydra HeadプロトコルはSPO用の実装というわけでも、理論上の「100万TPS」でもありません。これについてはきちんとした補足説明が必要です。

本稿では、Hydraエンジニアリングチームとして、現在の進捗状況、アプローチ、そして短期的長期的ロードマップの概要を提示します。そして、一部の誤解を解消し、メリットを明確にし、開発課題を省察します。

Hydra Headの概要

まず、Hydra Headを改めて紹介します。これにはピア間の堅牢なネットワーク層と統合されたCardano台帳だけでなく、Hydra Headのライフサイクルの動力となる複数のオンチェーンスクリプト(スマートコントラクト)が含まれます。

Hydra Headは証明可能安全性を持つ同型的ステートチャネルです。簡単に言えば、限定された参加者間で使用されるオフチェーンのミニ台帳で、オンチェーンのメイン台帳と同じように(ただし速度は大幅にアップ)機能します。

まず理解しておきたいことは、チャネルは2つ以上のピア間の通信パスであり、Headに参加するということは、こうしたピアの1つになるということです。チャネルは、メインネットワークと並行して進化することができる独立したネットワークを形成します。この代替ネットワーク上において、参加者は、ここを通過するすべてのトランザクションに全員が同意する必要があるという、別の、より単純なコンセンサスアルゴリズムに従います。この結果、参加者として私が資産を失うことは、私が失うことに明確に同意しない限り不可能となります。なぜでしょうか。トランザクションを有効にするためには、私の明確な承認が必要となるからです。

Headを形成するとき、参加者は資産を投入することができます。これは、特定のルール下でその資金をロックするスクリプトアドレスに、オンチェーンで資金を動かすことを意味します。このスクリプトが、オンチェーンでプロトコルを安全に実行すること、特に、参加者がお互いにだますことができないことを保証します。ただし、参加者はHeadを閉じることによって、いつでもやめることができます。この場合、すべての参加者は、自分たちのパラレルネットワークであるオフチェーンで最後に同意に至った状態で退出することになります。

Headを、参加者が自分のチップを持ち寄ってゲームに参加する「私的なポーカーテーブル」と考えてください。参加者は、自分たちが望む限りプレーを続けることができます。誰かがプレーをしないと、ゲームは進みません。しかし、参加者はいつでも自分のチップをもって立ち去ることができます。その場合、その時点の富の配分をもってゲームは終了となります。

図1:Hydra Headのライフサイクル(単純化)

テーブルのディーラー(オンチェーンスクリプト)は、参加者がルールに従ってプレーし、不正を行わないことを保証します。最終的に、持ち出すチップは投入されたチップと同量になりますが、ゲームの間にその配分は変わっている可能性があります。最終結果がテーブル外に知らされると、ゲーム中に起こったすべての行動の履歴は、その参加者のみが知るところとなります。

このプロトコルは、「Hydra」と呼ばれるプロトコルスイートの1つです。 現在重点が置かれているエンジニアリング上の取り組みは、Hydra Headプロトコルの実装です。これは、Chakravarty et alのHydra: Fast Isomorphic State-Channelsで公開されています。

2021年末、Maxim Jourenko、Mario Larangeira、Keisuke Tanakaは、Interhead Hydra: Two Heads are Better than Oneと呼ばれるHydra Head上のイテレーションを公開しました。このイテレーションは、長期的に相互接続されたHydra Headのネットワークの創造を視野に入れた、2つのHeadの相互接続方法を定義するものです。以前に、「Hydra Tail」など他のプロトコルに触れましたが、これらはまだ研究中であり、また、最近のHydra Headプロトコルへの取り組みから、新しいアイデアも浮かんでいます。

Hydraに関する誤解

最近、HydraをCardanoのスケーラビリティに対する「究極の」ソリューションとして位置付ける言説が多く見受けられます。確かに、Hydra HeadはCardanoのスケーラビリティ層を構築するための強力な基盤となるものです。これは、より複雑なソリューションの構築を可能にするために、拡張未使用トランザクションアウトプット(EUTXO)の力を活用した、重要な基本要素となります。スケーラビリティの重要な要素ではありますが、これが最終目的ではありません。

スケーラビリティは100万TPSにあらず

スケーラビリティの測定法について説明する前に、1秒間のトランザクション数(TPS)について少しはっきりさせておきましょう。さまざまな方法の中でも、TPSは比較方法としておそらくもっとも意味のない方法です。トランザクションのサイズや形態はさまざまです。これはCardanoにも当てはまりますが、2つのまったく異なるシステムを比較する際にはさらに重要になります。

高速道路と車両について考えてみてください。高速道路の2点間を、「一秒間に通過する車両の数」(VPS)を数えることはできます。しかし、車種を定義しない場合、10VPSと100VPSを比べても意味がありません。たとえば10台の車両が大型トラックだった場合、100台のスクーターと配送能力を比べても意味はありません。トランザクションにも同じことが言えます。数百のネイティブ資産やアウトプットを含むトランザクションは、2人の間でADAを支払うシンプルなトランザクションと同じでないことは明白です。

TPSは、同じ文脈(たとえばCardanoノードの2つのバージョンを比較するなど)で使用する場合、測定基準としての意味を持ちます。ブロックチェーン間の比較には適しません。

これを念頭に、私たちは単にスループットだけでなく、ファイナリティと並行性を、スケーラビリティを検討、議論するための重要な指標として提案します。

  • スループット:一定時間内にシステムで処理されるデータ量
  • ファイナリティ:何らかのアクションの結果がシステム内の全員にとって不変かつ真となるまでにかかる時間
  • 並行性:異なるユーザーにより、お互いに干渉することなく行える作業量

Hydra HeadはHead内でほぼ瞬時のファイナリティに達することに優れています。Headの設定および終了プロセスは数ブロックかかる場合もありますが、一度確立されると、トランザクションは共同参加者間で迅速に流すことができます。Hydra HeadもEUTXOモデルを使用しているため、競合しないトランザクションを並行して処理することができ、優れたネットワークと相まって、利用可能なリソースを最適に利用できます。2020年に遡るHydra Head最初のシミュレーションでは、1000TPSの高い可能性が示されました。現在、スループットとファイナリティの観点から、実際の実装のベンチマーキングを行っています。

覚えておきたいことは、Hydra Headが、小人数の参加者グループによる非常にローカルな構成概念であることです。これらのグループは当面は独立しているため、各測定値の合計を全体とみなすと誤解を招く怖れがあります。グループは独立しており、自由に作成できるため、10でも1000でも100万でも10億でも、合計するだけで任意の数に簡単に到達できます。

その結果、Hydra Headプロトコルの最初のバージョンでは、参加者の小グループが低コストでトラフィックをスケールアップできますが、グローバルな消費者間(マイクロ)支払いまたはNFT販売のソリューションをすぐに提供することはできません。なぜでしょうか。Head内のコンセンサスにより、すべての参加者がすべてのトランザクションに反応することが要求されるからです。そして、1つのHeadが参加者を無限に増やすことはできません。少なくとも追加的なエンジニアリングが必要です。たとえば、Hydra Headの相互接続は、より大規模な参加者のネットワークへの、実質的にローカルなHeadをグローバルネットワークに変貌させる道を拓きます。現在Hydra Headプロトコルを拡張して、対象となるユースケースの幅を広げるその他のアイデアを模索しています。この点に関して、次のセクション、そして今後のアップデートでもう少し紹介します。

ユースケースとSPOの役割

では、Headはどのような場合に役立つのでしょうか。Hydra Headは、少人数の参加者グループが多くの迅速なやり取りを処理する必要がある場合に有効です。たとえば、都度課金のAPIサービス、銀行同士のプライベートネットワーク、売り手と小さな入札者グループによるハイペースのオークションなどを考えてみてください。ユースケースは多数あり、さまざまな形態が考えられます。この中には何か月にもわたる長期的なHeadもあれば、数時間の短いものもあります。

2020年のHydra初期研究では、Hydra Headの運営者としてステークプールオペレーター(SPO)を有力候補と考えていました。しかし、Hydra Headプロトコルの研究が進み、プルーフオブコンセプトとして構築されてきた今、SPOのみが台帳のスケーラビリティを確保するためにHydra Headを運営するということは誤解であると断言することができます。実際、SPOは、トランザクションを行う理由(チップを送ったりNFTを取引するなど)なくして互いにHeadを開くことに、本来的な利益を持ちません。ある意味で、SPOもHydra Headプロトコルに関しては他のユーザーと変わりません。参加者として他のピアとHeadを開けますし、関心のある誰とでも実行することができます。

もちろん、SPOはインフラの操作が得意で、Hydra Headプロトコルのインスタンスをする初期ユーザーとなりうるでしょう。それでも、これは参加しているSPO同士が取引きすることのみを許可し、エンドユーザーのユースケースを制限します。Interhead Hydraプロトコルのような高度なレイヤー2システム設計のみが、エンドユーザーの利益のためにインフラを実行するための仲介者を必要とします。実際、Hydra Headsのセットアップの1つとして、サービスとして管理されたHydra Head(Head as a service:HaaS)がユーザーに提供されることが予想されます。一般に、このようなインフラを維持する関心も技術的スキルも持たないエンドユーザーに代わってインフラを実行することにより、資金の管理をあきらめることなくこれを達成できます。

これは、長期的にHydra Headを実行する可能性の高い、現在のライトウォレットとそのプロバイダーの運営モデルと酷似しています。Cardanoエコシステム内で、ライトウォレットのトッププロバイダーで構成されるネットワークを想像してみてください。このプロバイダーたちは、全体的な信用を確保しながら、ユーザー間で即時の安価な支払いを提供できるようになります。

また、開発者やDAppプロバイダーのサービスが、Hydra Headを実行する候補となることも予想しています。実際、DApp開発者はオンチェーンの情報へのアクセスを必要とします。このため、開発者は、適切なインターフェイスを提供し、通常月額使用量を貸すオンラインサービスに頼る可能性があります。Hydra Headによって、サービスプロバイダーとDApp開発者間で都度課金のAPI通話を使用した、より分散型のビジネスモデルを可能にすることで、このプロセスを改善することができます。

ロードマップ

Hydra Headプロトコルに加えて、より精巧なレイヤー2システム設計が含まれるプロトコルのグループが時間の経過とともに提供されることになります。ここで重要なことは、Cardanoエコシステムの開発者と頻繁に連携することです。これは「ビッグバン」リリースではなく、むしろ反復的なリリースサイクルです。開発者にとっての課題を理解し、彼らのニーズに応え、最終的には、確実に役立つものを構築する必要があります。これが、昨年初期のプルーフオブコンセプトから始めて、オープンソースのGitHubプロジェクトとしてHydra Headを開発している理由です。定期的かつ頻繁なリリースケイデンスを目指し、最初の開発者プレビュー(0.1.0)を9月に、次いで、クリスマス前に第2イテレーション(0.2.0)をリリースしました。次回(0.3.0)は2月リリースを予定しています。セマンティックバージョニングを使用し、各プレリリース(0.x.0)ごとに機能を追加します。パートナーや初期使用者はCardanoのプライベートおよびパブリックテストネットでこれらの機能をテストすることができます。

嬉しいことに、ロードマップもGitHubで公開されました。開発者コミュニティとかかわり、開発作業の過程について透明性を持たせる手段として、Hydra Headリポジトリ機能に関する諸問題マイルストンプロジェクトボードを用意しています。

テストネットとその後のバージョン1.0.0がメインネットで成熟していくにつれて、意味のある機能満載のリリースを作成することに重点を置いていますが、ロードマップには暫定的な日付も含まれています。これらの予測は、これまでに達成された作業と、今後に残されている作業を見積もったものから導き出しています。コンテンツと日付は定期的に見直し、ロードマップをできるだけ正確に保ちます。

コミュニティフィードバックが不可欠

Hydra Headの成功は、そのトラフィック量をCardanoメインネットと比較して測定します。したがって、コミュニティをなくして目的を達成できません。また、Hydraは、既存および未来のCardanoユーザーにとって有益なものであって初めて成功します。

時間、スキル、専門知識に応じて、ぜひ質問やフィードバックを共有し、開発作業に貢献してください。これは、Cardanoのためのレイヤー2ソリューションのエコシステムを構築するためのまたとない機会です。Hydra Headプロトコルは、今後登場する数多くの高度なソリューションの礎石となります。IOGで開発はすでに始まっていますが、一部は必然的に(そして幸運にも)コミュニティメンバーによって構築されることになります。私たちはそのサポートをする日を心待ちにしています。

2月の月半ば開発更新情報で、Hydra Headの詳細をお伝えします。YouTubeチャネルを登録して、ぜひご参加ください。

本稿の執筆にあたりご協力いただいた、Sebastian Nagel、Olga Hryniuk、Mark Irwin、Tim Harrisonの諸氏に感謝します。

Matthias Benkort

Matthias Benkort

Software Engineering Lead

Engineering