以下はIOGブログに掲載された記事「Slow and steady wins the race: network evolution for network growth」を翻訳したものです。
ゆっくりと着実にレースに勝つ:ネットワークの成長のためのネットワークの進化
カルダノのスマートコントラクト時代を成功裏にスタートさせた後、私たちは将来の成長をサポートするためのネットワーク調整プログラムの第一弾を間もなく開始します。
by John Woods 2021年11月22日
カルダノは、その構想から、セキュリティ、スケーラビリティ、分散化という長年のトレードオフのバランスを最もよくとるためのプラットフォームとして設計されました。そのため、私たちは、強固で安全なネットワーク層を構築しましたが、同時に、数百万人のユーザーのグローバルベースをサポートするために成長・拡張できる柔軟性も備えています。
安全で高度に分散化されたプルーフオブステークネットワークがしっかりと確立され、コアとなるスマートコントラクト機能が導入された今、私たちは最適化、スケーリング、ネットワークの成長に焦点を当てたBashoフェーズに向かっています。
分散型パーミッションレス・ブロックチェーンであるカルダノは、それを使いたい、あるいはそれをベースに構築したい人には誰にでも開かれています。最近のハードフォーク(ネイティブトークンやスマートコントラクト機能の追加)により、多くの新しいユーザーがカルダノのエコシステムに参加し、取引量やネットワークトラフィックが急速に増加(および急増)しています。
ウォレットコネクタやPlutus Application Backend(PAB)などのコアコンポーネントが完成し、メインネットに統合されるにつれて、ネットワークアクティビティが大幅に増加することが予想されます。カルダノをベースにしたさまざまなプロジェクトが、まずテストネットで、次にメインネットで開始されます。これらのプロジェクトはさらに増加し、今後数ヶ月の間にブロックチェーンスペクトルのあらゆる側面から何十万人もの新規ユーザーがカルダノに参入する可能性があります。
必然的に、新しい分散型アプリケーション(DApps)の立ち上げ時には、特に初期の数日から数週間で大きなトラフィックが発生することが予想されます。このような継続的な成長に対応し、カルダノの回復力と堅牢性を維持するために、現在、ネットワークパラメータの一連の調整を開始しています。これらのパラメータの変更は、ユーザーの全範囲にわたって、カルダノの使いやすさと体験を継続的に改善・向上させるものです。
成長のための設計
Ouroborosは、大量のデータや、様々な複雑さや大きさのトランザクションやスクリプトを処理できるように設計されています。現在のパラメータでは、カルダノネットワークは平均して容量の約25%しか利用していません。これは最適ではありません。実際、最も効率的なシナリオは、カルダノがその容量の100%もしくはそれに近い状態で稼働することです(つまり、ネットワークが「飽和」している状態です)。
しかし、OuroborosとCardanoのネットワークスタックは、飽和状態であっても公平で高い回復力を持つように設計されています。
効率的なシステムは、混雑を最小限に抑えつつ、混雑が起きたときに効果的な管理ができるように設計されています。詳しくは最近のブログをご覧いただきたいのですが、簡単に言うと、ネットワークは背圧を利用してシステム全体の負荷を管理しています。そのため、NFTの大規模なドロップ時には、個々のユーザーがトランザクションの待ち時間が長くなることがありますが、これはネットワークが「苦労している」ことを意味するものではありません。これは、ネットワークが意図したとおりに動作していることを意味します。私たちはこれを「graceful degradation」と呼んでいますが、この点については、ネットワーク設計書で詳しく説明しています。
パラメータの調整
オリジナルのアーキテクチャー設計や、さまざまなシミュレーション環境でのベンチマークを行っても、需要や変更の有効性を真に評価できるのは、現実の世界だけです。
広範なベンチマークと開発者からのフィードバックを受けて、現在、段階的な調整を開始しており、本日、2つの初期変更を提出しました。これらの変更は、11月25日(木)にテストネット上で有効になる予定です。これらの変更は、11月25日(木)にテストネットで有効になる予定です。テスト後、メインネットにも適用され、エポック306(2021年12月1日(水)21:45:00 UTC)に有効になる予定です。
では、どのような調整が行われるのでしょうか。
ブロックサイズを8KB増やし、72KBにします(12.5%増)
現在、200万を超えるカルダノウォレットが使用されており、トラフィックは1年で20倍以上に増加しています(2020年11月には1日あたり1万件未満だった取引が、1日あたり20万件以上になっています。開発者が新しいDAppsを展開することでトラフィックの増加が予想されるため、ブロックサイズはすぐに重要な検討事項となっています。ブロックサイズが大きいほど、より多くの取引が1つのブロックに収まるため、ユーザーにとっては大きな容量となります。12.5%多くのトランザクションをブロックに収めることができるということは、1秒間により多くのトランザクションを処理していることを意味し、より有用な指標である「データスループット」が向上していることを意味しています。
私たちは、Cardanoのパラメタライゼーションの変更に対して、着実かつ計画的に取り組んでいます。12.5%の増加はかなりの大きさですが、大きすぎることはありません。さらなる拡張の余地を残し、ステークプール運営者(SPO)が需要の増加に対応できるようにしています。ブロックサイズの変更については、「ゆっくりと着実に」行うことで、エンドユーザーがネットワークの容量を利用できるようにするとともに、世界的に分散化されたブロックチェーンとして成功し続けることができるようにしています。現世代のOuroboros(Praosと命名)には、セキュリティの目標を確実に達成するために満たさなければならない特定の要件があります。ブロック伝搬時間とは、新しく鋳造されたブロックが、ネットワーク上のノードに伝搬されるまでの時間のことで、賭けられたアダの95%に相当します。Praosが安全であり続けるためには、ネットワークは5秒以内に新しいブロックを伝播しなければなりません。
この5秒という制限は、ブロックサイズの拡大などに使える「予算」と考えることができます。ブロックサイズを大きくするなどの変更は、当然、ブロックの伝播に必要な時間を増加させるので、パフォーマンスを向上させるために行う変更がネットワークのセキュリティに影響を与えないように注意深く監視する必要があります。Ouroborosの将来のイテレーションでは、この予算を増やす予定です。その一方で、セキュリティを維持しつつ、需要の増加に合わせてネットワークを柔軟に変化させることに重点を置いています。
また、トランザクションあたりのPlutusスクリプトのメモリユニットを1,125万個に増やします(これも12.5%の増加)
これは強力な変更であり、DAP開発者の皆様には大変喜ばしいことだと思います。Plutusのメモリ容量が増えることで、より洗練されたPlutusスクリプトを開発したり、既存のスクリプトでより多くのデータアイテムを処理したり、同時実行数を増やしたり、その他の機能を拡張したりすることが可能になります。これは、Plutus スクリプトの実世界での機能を大幅に向上させるための、メモリユニット設定に対する一連の変更の最初のものとなります。ブロックサイズの変更と同様に、ネットワークとSPOが需要の増加に対応できるように、少しずつ、しかし着実に変更を行っていきます。
後述の変更(ブロックサイズの増加とトランザクションあたりのPlutusスクリプトのメモリユニットの増加)は、例えば多くのアプリ開発者から要望がありました。これらの変更はどちらも手を取り合って行われます。より複雑なスクリプトを作成するだけではありません。より多くのデータを通すことでもあるのです。
堅実で確実
カルダノプラットフォームの進化に伴い、すべての変更は慎重に検討され、一度実行されると、その後はパフォーマンスへの影響を測定するために監視されます。すべての変更は、ネットワークから得られた経験的なデータと、実際の持続的なユーザーの要求に基づいて行われます。重要なのは、ネットワークの使用量が短期的に急増した場合に、長期的な影響を与えるような決定をしないことです。例えば、早急に変更したり、カルダノの長期的なセキュリティを損なう可能性のあるペースで変更したりすることはありません。
カルダノの開発は、基礎研究と継続研究の両方に基づいています。中長期的には、ネットワークをさらに強化することで、大幅なキャパシティの向上と、最高の総合的な体験を提供するためのネットワークのチューニングをまとめて行います。
私は11月のCardano360に参加して、この点についてさらに考えを述べるつもりです。しかし、一言で言えば、これは先進的で基本的に分散化された技術に基づいて、新しく有能なブロックチェーンのインフラを構築することです。最初は、Ouroboros Praosプロトコルの限界を利用できるようにするため、いくつかのパフォーマンス改善に焦点を当てます。次に、Plutusスクリプトのサイズの最適化、PlutusインタープリタとCardanoノードの実装の基本的なパフォーマンスの最適化に注力します。これにより、同じプロトコルのパラメータで、より有用な作業を処理できるようになります。これに関連して、スクリプトやトランザクションのサイズを縮小するために圧縮技術が使用されます。これは、同じサイズのブロック内でより多くのトランザクションを実行できることを意味します。このようにして、レイヤー1のパフォーマンスとキャパシティを向上させます。将来的には、Hydraはレイヤー2のソリューションを導入し、ユーザーが同じ台帳表現を再利用する複数のチェーンを提供できるようにすることで、大幅なスケーラビリティの向上を実現します。
結論として
カルダノは、進化するたびに成長し、適応していく、いわば生き物のようなものだといえるでしょう。矛盾しているように聞こえるかもしれませんが、その基盤は揺るぎない基礎研究から形成されている一方で、柔軟性(ハードフォークコンビネーター(HFC)によるプロトコル全体の変更も可能)が最初から設計されています。
パラメータ化の変更は、この変革のプロセスの一部です。もっと早く進めたいという人が出てくるのは避けられませんが、私たちは、カルダノが普及していく中で、着実で安全な進化に焦点を当てていきます。
この記事にご協力いただいたDuncan Coutts氏、Kevin Hammond氏、Fernando Sanchez氏に感謝します。