ブログ > 2021 > November > ゆっくりと確実にレースに勝つ:ネットワークを成長させるためのネットワークの進化

ゆっくりと確実にレースに勝つ:ネットワークを成長させるためのネットワークの進化

Cardanoスマートコントラクト時代の幕開けに続き、まもなく今後の成長を支えるネットワークの調整プログラムを始動

2021年 11月 22日 John Woods 10 分で読めます

ゆっくりと確実にレースに勝つ:ネットワークを成長させるためのネットワークの進化

Cardanoは構想段階から、セキュリティ、スケーラビリティ、分散化をベストのバランスに保つプラットフォームとして設計されました。したがって、ネットワーク層も、堅牢かつセキュアながら、何百万ものユーザーのグローバルな基盤を支えるために、成長とスケーリングに対して柔軟に対応できるよう、設計、構築されています。

安全で高度に分散化されたプルーフオブステークネットワークがしっかりと確立され、スマートコントラクトのコア機能がデプロイされた今、私たちは、最適化、スケーリング、ネットワークの成長に主眼を置くBasho(バショウ)期に向かって歩を進めています。

Cardanoは、分散型のパーミッションレスブロックチェーンとして、この使用を希望する人、この上に構築したいと望む人々すべてに開かれています。最近のハードフォーク(ネイティブトークンとスマートコントラクト機能を追加)により、多くの新ユーザーがCardano エコシステムにもたらされ、トランザクションの量およびネットワークトラフィックには急激な増加(およびスパイク)が見受けられます。

ウォレットコネクターやPlutusアプリケーションバックエンド(PAB)を含むコアコンポーネントが完成し、メインネットへ統合されると、ネットワークアクティビティの大規模な増加が見込まれます。Cardanoに構築するための数多くのプロジェクトが、最初にテストネット、次にメインネットで立ち上がり始めます。これらは増加する一方です。可能性として今後数か月間に、ブロックチェーンスペクトルのあらゆる側面から何十万もの新ユーザーがCardanoに参加します。

当然ながら、新しい分散型アプリケーション(DApp)の立ち上げの前後で、特に初期の数日間や数週間に、かなりのトラフィックが予想されます。この継続的な成長に対応し、Cardanoの回復性と堅牢性を維持するために、現在ネットワークパラメーターの一連の調整を始めています。これらのパラメーターの変更は、Cardanoの全範囲のユーザーに、使用性やエクスペリエンスの継続的な向上および強化をもたらします。

成長を見越した設計

Ouroborosは大量のデータ、さまざまな複雑性やサイズを持つトランザクションやスクリプトを処理できるよう設計されています。現在Cardanoネットワークは、現行のパラメーター設定下で、平均して容量の25%程度しか使用していません。これは準最適状態です。なぜなら実際に最も効率的なシナリオとは、Cardanoが容量の100%かそれ近く(ネットワーク「飽和状態」)で稼働することだからです。

多くのネットワークソリューションがこのような条件では苦戦を強いられますが、OuroborosとCardanoネットワークスタックはともに過度な飽和状態でも公平で高い回復性を持つよう設計されています。

効率的なシステムは、渋滞を最小化するよう、そして、これが生じたときには効果的に管理できるよう設計されています。このブログ記事で詳しく述べられていますが、端的に言えば、ネットワークはシステム全体の負荷を管理するために、バックプレッシャーを使用します。一部の個人ユーザーは、大規模なNFTドロップ中のトランザクションで、普段より長い待機時間を経験するかもしれませんが、これはネットワークが「苦戦している」ことを意味するものではありません。実際、ネットワークは意図したとおりに実行されています。これは「グレースフルデグラデーション」と呼ばれます。この点については、ネットワークの設計に関する論文で詳しく学ぶことができます。

パラメーターの調整

元のアーキテクチャー設計、そしてシミュレーションによるさまざまな状況下における重要なベンチマークを除けば、需要、そして変更の効果を真に測定できるのは実世界においてのみです。

現在、広範なベンチマークと開発者からのフィードバックにしたがって段階的な調整を始めており、これまでに2つの初期変更を実行しました。これらの変更は、テストネットで11月25日木曜日に発効するよう計画されています。テスト後は、続いてメインネットに適用します。これが発効するのはエポック306、日本時間2021年12月2日木曜日06:45:00です。

ここでは、何を調整するのでしょうか。

ブロックサイズを8KB上げ、72KBに(12.5%増)

現在200万を優に超えるCardanoウォレットが使用されており、トラフィックは1年で20倍以上となりました(2020年11月に1日10,000未満だったトランザクションが1日200,000超)。開発者が新たなDAppを展開することでトラフィックの増加が見込まれることから、ブロックサイズは瞬く間に主要な検討対象となっています。ブロックサイズが大きくなれば、1つのブロックにより多くのトランザクションを含むことができるようになるため、ユーザーに提供する容量が増えることになります。ブロックに含められるトランザクションが12.5%増えることは重要です。1秒間により多くのトランザクションを処理すること、または、より多くのデータスループット(より有用なメトリクス)を示していることを意味するからです。

Cardanoのパラメーターにおける変更には、確実な、体系的アプローチが採用されています。12.5%の増加はかなりのサイズですが、大きすぎることはありません。さらなる拡張の余地を残し、ステークプールオペレーター(SPO)が高まる需要に適応できるようにしています。さらなるブロックサイズの変更には、「ゆっくりと確実な」アプローチをとり、基盤となっているネットワーク容量をエンドユーザーが使用できるようにしながら、グローバルに分散化したブロックチェーンとして正常な稼働の継続を保証します。現世代のOuroboros(Praos)には、セキュリティ目標を達成するために満たすべき特定要件があります。もっとも重要なパラメーターの1つは、ブロック伝播時間です。ブロック伝播時間は、新たに発行されたブロックが、ステークされたADAの95%に相当するネットワークのノード間に伝播するまでにかかる時間の尺度です。Praosでネットワークの安全性を保つためには、新ブロックを5秒以内に伝播する必要があります。

私たちはこの5秒の限界を、ブロックサイズの拡大などに「使用」できる「バジェット」とみなしています。ブロックサイズの拡大など、変更を加えれば当然ブロック伝播にかかる時間も増します。したがって、パフォーマンスを向上させるための変更がネットワークの安全性に影響を及ぼさないよう、慎重に監視する必要があります。Ouroborosの将来のイテレーションで、このバジェットは増加されます。それまでの間は、セキュリティを維持しつつ、高まる需要にネットワークを柔軟に対応させることに主眼が置かれます。

トランザクションごとのPlutusスクリプトメモリーユニットも1125万に拡大(ここでも12.5%増)

これはパワフルな変更であり、DApp開発者に非常に喜ばれるものです。Plutusメモリー制限を拡張することは、すなわち、より洗練されたPlutusスクリプトを開発できる、または、既存のスクリプトがより多くのデータアイテムを処理できる、並行性を高められる、または、その機能性を拡張できることを意味します。これは、Plutusスクリプトの実際の機能を大幅に強化する、メモリーユニット設定に対する一連の変更の第一弾です。ブロックサイズと同様に、変更は段階的に、しかし確実にロールアウトし、ネットワークやSPOが高まる需要に適応できるようにします。

以下に説明する変更(ブロックサイズの拡大とトランザクションあたりのPlutusスクリプトメモリーユニットの増加)は、例えば多くのアプリ開発者から要請されました。こうした変更は互いに密接に関連しています。これは単により複雑なスクリプトを作成するということではありません。これはまた、より多くのデータを通過させることでもあります。

しっかりと確実に

Cardanoプラットフォームが進化するにつれて、すべての変更は慎重に検討され、実施されたら監視をしてパフォーマンスへの影響を測定します。すべての変更は、ネットワークから引き出された実験データに基づき、実際の持続的なユーザー需要に基づきます。重要なのは、短期的なネットワーク使用量の急増に対して、ロングテールの影響を与える決定を行わないようにすることです。たとえば、時期尚早に変更を加えたり、Cardanoの長期的なセキュリティを損なう可能性のあるペースで変更したりすることはありません。

Cardanoの開発は、基礎研究および現在進行中の研究の両方に根差しています。中長期的なネットワークのさらなる強化は、全体として容量の大幅な向上をもたらし、全体的に最高のエクスペリエンスを提供できるようにネットワークを調整します。

これに関しては、11月のCardano360で詳しく紹介しますが、端的に言えば、これは、高度で根本的に分散化されたテクノロジーに基づき、新しく有能なブロックチェーンインフラを構築することです。最初に、Ouroboros Praosの制限を活用できるようにする、多くのパフォーマンスの改善に焦点を当てます。それから、Plutusスクリプトのサイズやその基盤となるPlutusインタープリターのパフォーマンス、Cardanoノードの実装の最適化に集中します。これにより、同じプロトコルパラメーター内でより有用な作業を処理することができるようになります。これに関連して、圧縮手法を使用して、スクリプトやトランザクションのサイズを削減します。すなわち、同じサイズのブロックで、より多くのトランザクションが運べるようになります。このすべて(さらに多くのもの)により、レイヤー1のパフォーマンスと容量が向上します。また将来的には、Hydraによってレイヤー2が導入され、ユーザーが同じ台帳表現を再利用した複数のチェーンをプロビジョニングできるようになることで、スケーラビリティが大幅に向上します。

結論

Cardanoは、ある意味生きた存在であり、革命的なステップごとに成長し、適応します。矛盾して聞こえるかもしれませんが、その基盤は堅固な基礎研究から形成されていながら、柔軟性(ハードフォークコンビネーター(HFC)を介したプロトコル全体の変更までをも含む)は初めから設計に入っています。

パラメーターの変更は、この変容プロセスの一部です。Cardanoのリーチと普及が高まるにつれ、当然のごとくより迅速な動きを求める人々もいる中で、私たちは堅牢かつセキュアな進化に焦点を当て続けます。

本稿の執筆に協力いただいたDuncan Coutts、Kevin Hammond、Fernando Sanchezの諸氏に感謝します。

John Woods

John Woods

Director of Cardano Architecture

Engineering