以下はIOGブログに掲載された記事「Implementing Hydra Heads: the first step towards the full Hydra vision」を翻訳したものです。
Hydra Headsの実装:Hydraの完全なビジョンに向けた最初のステップ
一連のプロトコルの最初のものであるHydra Headは、カルダノのスケーリングの旅において重要な要素である。それが全体像の中でどのように位置づけられるかを見てみましょう。そして、いくつかの神話を打ち破りましょう。
2022年2月3日 Matthias Benkort 12分 読了
私たちは、科学と理論を学びました。スケーラブルで汎用性が高く、高スループットのブロックチェーンの基礎を築いたのです。これからは、着実な成長とシステム強化の時期です。分散型アプリケーション(DApps)開発を支援・育成するための最適なエコシステムを構築することを目標に、カルダノは「Basho:芭蕉期」の麓にあります。スマートコントラクトがすでに導入されているため、Bashoはスケーリングとネットワークの最適化がすべてです。Hydraプロトコルファミリーは、そのための重要なコンポーネントです。
Hydraについては、以前にもお話ししました。Hydraは、ネットワークのセキュリティとスケーラビリティ機能に対処するために設計されたレイヤー2ソリューションのアンサンブルです。元々は Ouroboros 研究チームの仕事の中で考案されましたが、最初の論文発表以来、実際には独立した道を歩んできました。Hydraは、スループットの向上、レイテンシーの最小化、およびストレージを大幅に必要としないコスト効率の高いソリューションを提供します。Hydra Headのプロトコルは、2020年当時にはすでに形になっていましたが、それ以来、特にこの初期の実装と概念実証の段階を通じて、私たちの考え方が発展してきました。最初のアイデアを基に、Hydra Headプロトコルはプルーフオブコンセプトへと成熟し、testnet MVPのためのより明確な実装に向かいながら、その成熟は続いています。
私たちは、多くの興奮(素晴らしい!)と共に、誤解や誤認(あまり良くない)を見てきました。これらのほとんどは、実際のプロトコルの実装ではなく、アイデアの記述から生じたもので、私たちの以前のブログのいくつかは、おそらくこれらの誤解を助長するものでした。しかし、Hydra Headプロトコルは、理論上の「100万TPS」と同様に、SPOの実装にのみ関係しているわけではありません – これは注意深く、よりよく説明する必要があります。
この記事では、私たちHydraのエンジニアリングチームが、現在の進捗状況、アプローチ、そして短期および長期のロードマップの概要を説明します。また、いくつかの誤解を解き、その利点を明らかにし、開発上の課題についても考察します。
Hydra Headを一言で言うと
Hydra Headには、ピア間の強固なネットワーク層と統合されたカルダノ元帳だけでなく、Hydra Headのライフサイクルを駆動するいくつかのオンチェーンスクリプト(スマートコントラクト)も含まれています。
Hydra Headは、証明可能で安全な同型のステートチャンネルです。簡単に言えば、限られた参加者間のオフチェーンミニ台帳で、オンチェーンメイン台帳と同様に(かなり高速にではありますが)機能するものです。
まず理解すべきは、チャネルとは2つ以上のピアの間の通信経路であるということです。ヘッドに参加するということは、それらのピアの一人になることを意味します。チャンネルは、メインネットワークと並行して発展することができる孤立したネットワークを形成します。これらの代替ネットワークでは、参加者は別の、より単純なコンセンサス・アルゴリズムに従う。この結果、参加者である私は、明確に合意していないお金を失うことはできない。なぜか?有効な取引には私の明示的な承認が必要だからである。
Headを形成するとき、参加者はそのHeadに資金をコミットすることができます。これは、特定のルールの下で資金をロックするスクリプトアドレスにオンチェーンで資金を移動させることを意味します。スクリプトは、オンチェーンでのプロトコルの安全な実行を保証し、特に、参加者が互いに不正を行えないことを保証するものです。しかし、参加者はいつでも、Headを閉じることによってHeadを終了することを決定することができる。この場合、すべての参加者は、オフチェーンで合意した最新の状態を自分の並列ネットワーク上に残して立ち去ることになる。
Headは、参加者が自分のチップを持ち込んでゲームをする「プライベート・ポーカー・テーブル」だと考えてもらえるとわかりやすいかもしれません。参加者は好きなだけプレイすることができます。もし誰かがプレイしなければ、ゲームは進行しません。しかし、参加者がチップを持ち帰ることは自由です。その場合、ゲームは現在の富の配分で終了します。
Hydra Head(簡略化)のライフサイクル
テーブルのディーラー(オンチェイン・スクリプト)は、人々がルールを守り、不正をしないようにする。最終的に、投入されたチップと同数のチップが排出されますが、ゲームの過程で再配布される可能性があります。最終的な結果はテーブルの外でもわかるが、ゲーム中に起こったすべての行動の履歴は、参加者だけが知っています。
このプロトコルは、我々が通常「Hydra」と呼んでいるプロトコル群の一つでです。現在のエンジニアリング作業は、Chakravartyらによる『Hydra: Fast Isomorphic State-Channels』で発表されたHydra Headプロトコルの実装に重点を置いています。
2021年末頃、Maxim Jourenko、Mario Larangeira、Keisuke Tanakaは、Hydra Headの上に『Interhead Hydra: Two Heads are Better than One』というHydra Head上のイテレーションを公開しました。このイテレーションでは、2つのHeadを相互に接続する方法を定義しており、長期的にはHydra Headを相互接続したネットワークを作ることができる。以前は、「Hydra Tail」のような他のプロトコルについても言及されていました。しかし、それらはまだ研究中であり、Hydra Headプロトコルの最近の研究から生まれた新しいアイデアもあります。
Hydraに関する誤解
最近、Hydraをカルダノのスケーラビリティのための「究極の」ソリューションと位置づける論評を多く見かけるようになりました。確かに、Hydra Headはカルダノのスケーラビリティレイヤーを構築するための強力な基盤になります。Hydraは、Extended Unspent Transaction Output(EUTXO)モデルのパワーを活用し、その上にさらに複雑なソリューションを実現するための不可欠なビルディングブロックなのです。スケーラビリティの旅路において重要な要素ですが、最終目的地ではありません。
スケーラビリティは100万TPSにあらず
スケーラビリティの指標について話す前に、1秒あたりのトランザクション数(TPS)について少し明確にしておきましょう。利用できるすべての指標の中で、TPSはおそらく比較の手段として考えるのに最も意味のない指標でしょう。トランザクションにはさまざまな形や大きさがあります。これはカルダノにも言えることですが、2つの全く異なるシステムを比較する場合には、さらに本質的なことです。
高速道路と自動車を考えてみてください。高速道路が2地点間でどれだけの「VPS(Vehicles Per Second)」を処理できるかを見ることができます。しかし、「車両」とは何かという共通定義がなければ、10VPSと100VPSを比較しても意味がないように思える。この例で10台の車両が巨大な貨物トラックを指すなら、配送能力という点で100台のスクーターと比較することに意味はあるのだろうか?同じことがトランザクションにも当てはまります。何百ものネイティブアセットとアウトプットを運ぶトランザクションは、2つのアクター間の単一のADA支払いと同じではないことは確かです。
同じコンテクスト内でTPSを指標として使うこと(例えば、2つのバージョンのカルダノノードを比較すること)は意味があります。ブロックチェーン間の比較の手段として使うのは意味がありません。
その点を考慮し、スケーラビリティを検討・議論するための重要な指標として、スループットだけでなく、ファイナリティやコンカレンシーにも目を向けることをお勧めします。
- スループット:一定時間内にシステムで処理されるデータ量
- ファイナリティ:ある行動の結果が、システム内の全員にとって不変かつ真実になるまでにかかる時間
- 並行性(同時実行性):異なるアクターが互いにブロックすることなく実行できる作業量
Hydra Headは、Headの中でほぼ即座にファイナリティを達成することに秀でています。ヘッドをセットアップしてクローズするプロセスには数ブロックかかりますが、いったん確立されると、トランザクションは共同作業者間で急速に流れるようになります。Hydra HeadsはEUTXOモデルも使用しているため、競合しないトランザクションを同時に処理することができ、優れたネットワークと相まって、利用可能なリソースを最適に利用することができます。2020年に行われたハイドラヘッド・プロトコルの最初のシミュレーションでは、「1000TPS」という非常に有望な結果が示唆されました。現在、スループットとファイナリティの観点から、実際の実装をベンチマークしているところです。
一つ注意点があります。「Hydra Head」は、参加者の小さなグループ内で非常にローカルな構成になっています。これらのグループは最初は独立しているので、個々のメトリクスの合計を全体として見ることは誤解を招くことになります。グループは独立しており、独立して自由に作ることができるので、10、1000、100万、10億、といったように、ただ足し算をすればどんな数字にも簡単に到達することができるのです。
その結果、Hydra Headプロトコルの最初のバージョンでは、小さな参加者グループが低コストでトラフィックを拡大できるようになりますが、グローバルな消費者間(マイクロ)決済やNFT販売に対するソリューションをすぐに提供できるわけではありません。なぜか?Head内部のコンセンサスは、すべての参加者がすべての取引に反応することを必要とするからです。そして、一つのヘッドは参加者の数に応じて無限にスケールするわけではなく、少なくとも何らかの追加的なエンジニアリングの努力なしにはスケールしないのです。例えば、Hydra Headの相互接続は、より大きな参加者のネットワークへの道を開き、事実上ローカルなHeadをグローバルなネットワークに変えてしまう。私たちは、Hydra Headプロトコルを拡張して、カバーできるユースケースのセットを広げるために、他にもいくつかのアイデアを探っています。それについては次のセクションで、また将来のアップデートでさらに詳しく説明します。
使用例とSPOの役割
では、どのような場合にHeadが役に立つのでしょうか。Hydra Headは、少人数の参加者が多くの素早いやり取りを処理する必要があるときに輝きます。例えば、従量制のAPIサービス、銀行間のプライベートネットワーク、売り手と少人数の入札者との間の速いペースのオークションなどを想像してください。ユースケースはたくさんあり、様々な形態があります。数ヶ月に及ぶ長期的なHeadもあれば、数時間しか続かない短いHeadもあります。
2020年のHydra初期研究では、Hydra Headを運営する候補としてステークプール・オペレーター(SPO)を示唆しました。しかし、Hydra Headプロトコルは概念実証として研究・構築されたものであるため、台帳のスケーラビリティを確保するためにSPOのみがHydra Headを実行すべきというのは誤解であると断言することができます。実際、SPOは取引する理由(例えばチップやNFTの取引)がなければ、お互いにHeadを開くことに本質的な興味はないのです。ある意味、Hydra Headプロトコルに関しては、SPOは他のアクターと同じです。SPOは参加者であり、他のピアとHeadを開くことができますが、興味を持つ人は誰でも参加できます。
確かにSPOはインフラの運用に長けており、Hydra Headプロトコルのインスタンスを実行する最初のユーザーになることができます。しかし、これでは参加するSPOが互いに取引を行うだけで、エンドユーザーにとってのユースケースは限定されてしまいます。インターヘッドHydraプロトコルのような高度なレイヤー2システムデザインのみが、エンドユーザーの利益のためにインフラストラクチャを実行する仲介者を必要とします。実際、私たちは、Hydra Headのセットアップの1つとして、ユーザーが管理するHydra Headをサービス(HaaS)として提供することを想定しています。一般的にインフラを維持する興味も技術力もないエンドユーザーに代わってインフラを運用することで、資金の管理を放棄することなくこれを実現することができるのです。
これは、現在のライトウォレットやライトウォレットプロバイダーの運用モデルと非常によく似ており、長期的にはHydra Headを運用する可能性がはるかに高いのです。カルダノのエコシステムの中でトップクラスのライトウォレットプロバイダーで構成されるネットワークを想像してみてください。そのようなプロバイダーは、全体的な信頼を確保しながら、ユーザー間の即時かつ安価な支払いを促進することができます。
また、開発者向けのサービスやDAppプロバイダーも、Hydra Headsを実行する候補になる可能性が高いと想定されます。実際、DApp開発者はオンチェーン情報へのアクセスを必要とします。そのために、開発者は適切なインターフェースを提供し、一般的に毎月の使用料を請求するオンラインサービスに依存することがあります。Hydra Headsはこのプロセスを改善し、サービスプロバイダーとDApp開発者間の有料APIコールによる、より分散化されたビジネスモデルを可能にすることができる。
ロードマップ
時間をかけて提供されるプロトコル群として、またHydra Headプロトコルの上にさらに精巧なレイヤー2システム設計を伴うものとして、私たちはカルダノエコシステムの開発者と頻繁に関わることが重要なのです。これは「ビッグバン」リリースではなく、むしろ反復的なリリースサイクルについてです。私たちは開発者の課題を理解し、彼らのニーズを満たすようにし、最終的に有用なものを構築していることを確認する必要があります。このような理由から、私たちはHydra HeadをオープンソースのGitHubプロジェクトとして開発し、昨年の初期コンセプトの実証から始めているのです。定期的かつ頻繁なリリースを目指し、9月に最初の開発者プレビュー(0.1.0)を、そしてクリスマス前に2回目のイテレーション(0.2.0)をリリースしました。次のバージョンアップ(0.3.0)は、2月に予定されています。私たちはセマンティックバージョニングを採用しており、これらのプレリリース(0.x.0)には、パートナーやアーリーアダプターがプライベートおよびパブリックなカルダノテストネットでテストできるような機能がそれぞれ追加されています。
私たちのロードマップがGithubで公開されたことをお知らせできることを嬉しく思います。私たちの開発者コミュニティと関わり、私たちの開発努力の過程について透明性を保つ手段として、Hydra Headリポジトリに機能に関する諸問題、マイルストン、プロジェクトボードで利用可能です。
私たちは、バージョン1.0.0からテストネット、そしてメインネットへと成熟していく過程で、有意義で機能満載のリリースを作成することに焦点を当てていますが、ロードマップには暫定的な日付も含まれています。これらの予測は、これまでに達成された作業と、これから残っている作業についての私たちの予測の両方からきています。ロードマップを可能な限り正確なものにするため、定期的に内容や日程の見直しを行い、アジャイルに対応します。
コミュニティからのフィードバックが不可欠
私たちは、カルダノのメインネットと比較して、どれだけのトラフィックがHydra Headで稼働するのかで、私たちの成功を測ろうと考えています。つまり、コミュニティなしには目標に到達できず、現在および将来のカルダノユーザーにとって有用であってこそ、Hydraは成功することができるのです。
あなたの時間、スキル、専門知識に応じて、質問やフィードバックを共有したり、開発努力に貢献したりするために、私たちと関わってくださることを歓迎します。これは、カルダノのためのレイヤー2ソリューションのエコシステム全体を一緒に構築する素晴らしい機会です。Hydra Headプロトコルは、今後登場する多くの先進的なソリューションの最初のビルディングブロックとなるでしょう。IOGでは、すでにそのうちのいくつかに着手していますが、いくつかは必然的に(そして幸運にも!)私たちのコミュニティのメンバーによって構築されることになるでしょうし、私たちはそれをサポートすることを楽しみにしています。
Hydra Headについては、2月の月半ばの開発アップデートでより詳しくお話する予定です。Youtubeチャンネルを購読して、ぜひご参加ください。
このブログ記事の作成にあたり、Sebastian Nagel、Olga Hryniuk、Mark Irwin、Tim Harrisonにご意見、ご感想をいただきましたことを感謝いたします。