zkPorter: レイヤー 2 コンポーザブル スケーラビリティ
編集者注: この記事は以下から引用しましたイーサリアム愛好家 (ID: ethfans)イーサリアム愛好家 (ID: ethfans)
まとめ
、著者:Alex Gluchowski、翻訳:A Jian、Odaily が許可を得て転載。
最初のレベルのタイトル
まとめ
私たちは、スケーラビリティが高く、アトミックに構成可能なブロックチェーン ネットワークで zkRollup とシャーディングを組み合わせることができる、新しいレイヤー 2 スケーラビリティ テクノロジ「zkPorter」を提案します。
問題 #1: トランザクションのスループット ≠ スケーラビリティ ⚖️
トランザクションのスループットはネットワーク全体で処理されるトランザクションの総数によって測定され、スケーラビリティは単一ノードによって処理されるトランザクションの数です。 zkRollup は、セキュリティと利便性を満たした究極のレイヤ 2 スケーリング ソリューションと言えます。 (編集者注: 記事の最後にあるハイパーリンク「さまざまなイーサリアム レイヤ 2 拡張スキームの評価と比較」を参照してください。) ただし、zkRollup は、メイン ネットワークと比較してスケーラビリティの向上が約 100 倍にとどまります。これは、トランザクション データが依然として必要なためです。すべてのフルノードにブロードキャストします。 zkRollup はスループットを直線的に増加させるだけで、指数関数的なスケーラビリティを提供しないと主張する人もいます。
zkRollup は Eth1 で最大 3000 TPS を処理できますが、控えめに見積もっても (Eth2 実装の詳細に応じて) シャード Eth2 では少なくとも 20,000 TPS になります。 Visa の最大 24,000 TPS のスループットと比較すると、これはすでに大きな成果ですが、私たちは現在銀行口座を持たない何十億もの人々を支援したいため、さらに多くのことを目指して努力する必要があります。
DeFi の台頭は、構成可能性が成功の鍵であることを意味します。 DeFiアプリケーションは、自由に組み合わせることができる「通貨の構成要素」として、トラストフリーのプロトコルを階層化することで解き放つことができる潜在的な価値を証明しています。プロジェクトが独自のスケーリング ソリューションのみに注目すると、最終的には、コミュニティが共有する構成可能なスケーリング メカニズムによって作成されるセキュリティやネットワークの影響から孤立してしまうことになります。
zkPorterのご紹介🎉
この論文では、上記の問題をすべて解決することを約束する、新しいゼロ知識証明ベースのスケーリング スキーム、zkPorter を実証します。
副題
zkPorter について説明します 🥜
一方で、ゼロ知識証明に基づくスケーリングスキームは、依然としてデータの可用性の問題に直接対処していません。つまり、状態データが利用できなくなると、資金が凍結されてしまいます。 zkRollup と Validium は、データ可用性の問題に対処するために異なる方法を使用します (編集者注: 記事「ZK ロールアップと Validium の比較」の最後にあるハイパーリンクを参照してください)。
zkPorter は、zkRollup コンセプトとシャーディングコンセプトを組み合わせたハイブリッド アプローチを使用して、データ可用性の問題を解決します。任意の数のシャードをサポートでき、それぞれが独自のデータ可用性スキーム (そのシャードのスマート コントラクトによって定義される) を持ちます。同時に、シャードの選択は個々のアカウント レベルで制御されます (シャードの選択は個々のアカウント レベルで制御されます)。
zkPorter は、状態の有効性とデータの可用性に関する懸念を分離します。状態の有効性 (有効な状態遷移が発生する必要がある) は、レイヤー 1 のセキュリティ保証を継承しながら指数関数的なスケーラビリティを提供するゼロ知識証明ツールによって均一に実装されます。一方、データの可用性はシャード自体に委ねられているため、シャードはさまざまなソリューションを自由に試すことができます。必要な場合は団結し、解決策がない場合は自由 (In necessariis Unitas, in dubiis libertas)!
副題
zkPorter のコンポーザビリティ: 強化されたブロックチェーンのインターネット 💊
それならzkPorterを試してみましょう! zkPorter のすべてのアカウントは同じアドレス空間を共有し、zkPorter の基本シャード 0 で実行される zkRollup を通じて他のアカウントと相互運用できます。高いトラフィック要件や特定のデータ可用性ニーズを持つプロトコルは、独自のプロトコル インターフェイスを独自の (zkPorter 内の) シャードに配置できます。セキュリティ、コスト、スループットのトレードオフについては後で説明します。
zkPorter を使用すると、任意の数のプロトコルがスムーズに相互運用できます。単一のアトミック トランザクションは、異なる zkPorter シャード上で任意の数のスマート コントラクトを呼び出すことができます。それだけでなく、シャード内のトランザクションは、他のシャード上のデータを含む zkPorter 状態全体にアクセスできるようになります。この機能は、たとえば、情報入力メカニズムから情報を読み取るために使用できます。
zkPorter モデルは、zk ホルモンを備えたブロックチェーン インターネットと考えることができます。
副題
zkPorter シャーディング: セキュリティとオーバーヘッド 💸
zkPorter のシャード 0 は、完全なデータ可用性とイーサリアムのセキュリティ保証を備えた zkRollup です。シャード 0 は zkPorter で最も高価なシャードとなり、トランザクション コストはメインネット トランザクションの約 1/100 です。
シャード 0 以外のシャードは、独自のスマート コントラクトで独自のデータ可用性スキームを定義します。これらの他のシャードは、さらに 10 ~ 100 倍のトランザクション コストの削減とスループットの向上と引き換えに、チェーン上のデータの可用性を犠牲にします。 zkPorter は、「zkPorter Guardians」と呼ばれるオプションのバリデーターメカニズムを導入します。これにより、プロトコルは、プロトコルステークホルダーをプロトコルシャードのデータ可用性保証者として参加するよう招待できます。ガードメカニズムを使用するシャードはプルーフオブステークコンセンサスメカニズムを実行するため、参加しているバリデーターの 1/3 が正直である限り、シャードのユーザーはいつでも自分のデータを持って終了できます。
柔軟なデータの可用性は、zk Porter の中核となる設計目標です。各プロトコルが独自のスキームを設計できるようにすることで、zkPorter は多くの異なるスキームをサポートし、あらゆる人のニーズに適応できます。セキュリティの前提条件 信頼できる集中参加者を保証人として適用することにより、Proof-of-Authority のコンセンサスメカニズムを実現できます。また、ガバナンス トークンを備えたアプリケーションは、独自のプルーフ オブ ステーク コンセンサス メカニズムを実装して、独自のシャードを保護できます。ただし、シャード内の資金量がロックされたバリデーター デポジット額を超えないようにするだけです。イレイジャーコーディングメカニズムを使用すると、検証者がデータを削除していないことを証明できます。たとえば、ビットコイン ネットワークの比較的単純な性質とトランザクション数の少なさを考えると、zkPorter シャードのバリデーターは、プルーフ オブ ワーク ベースの SATO コンセンサスを実行するビットコイン実装をシャード内に作成できます。これらはすべて、zkPorter の Guardian バリデーター設定と組み合わせたり、独立して実行したりできます。
zkPorter は、拡張機能を念頭に置いてゼロから設計されました。 zkPorter プロトコルは、各シャードのデータ可用性と有効性のオーバーヘッドを非常に低いレベルに削減します。新しいシャードを追加する限界コストは、基礎となる zkRollup にネストされたデータを含めることによって発生するコストと比較すると、対数的になります。これにより、zkPorter は効率的に拡張して数億のアカウントをサポートできるようになります。
最後に、ユーザーのプライバシーはゼロ知識証明テクノロジーによって保護できます。 zkRollup を zkPorter の基本要素として使用すると、トランザクションの内容を公開せずに状態遷移の正当性を証明できるという固有の利点があります。
副題
建築 🏛
実際、zkPorter は zkRollup および Validium に非常に似ています。レイヤ 1 に配置されたスマート コントラクトは資金をホストし、アカウント状態のマークル ルートの記録を保持します。実際の状態データは、zkPorter バリデーターと各シャードのデータ保証者によってオフチェーンに保持されます。これは「状態ツリー」とも呼ばれます。
シャード化されたスマート コントラクトは、独自の状態遷移ルールを定義します。 zkPorter ブロックが受け入れられると、ブロックによって状態遷移が発生します。つまり、レイヤー 1 のトランザクションがマークル ルートを新しい値に置き換えます。このトランザクションは、新しい値が有効であることを証明するために使用されるゼロ知識証明を検証する必要があります。つまり、ブロック内のすべてのトランザクションが有効であることを検証する必要があります。
zkPorter では、各シャードのアカウントを状態ツリーの個別のサブツリーに保存する必要があります。さらに、各シャード サブツリーには、独自のシャード タイプに関する情報と、その状態可用性ポリシーを定義する参照スマート コントラクト アカウントが含まれている必要があります。
シャードのタイプが zkRollup であると仮定すると、アカウントの状態を変更するシャード内のすべてのトランザクションは、(zkRollup と同様に) レイヤ 1 コールデータとして状態の変更を公開する必要があります。
2 つ以上のシャードの状態を同時に変更するすべてのトランザクションは、zkRollup モードで実行する必要があります。
特定のシャード内のアカウントにのみ影響する他のすべてのトランザクションは、通常のシャード モードで実行できます (これらを「シャード トランザクション」と呼びます)。ブロックにシャード S にいくつかのシャード トランザクションが含まれている場合は、次のルールに従う必要があります。
追加の要件を実行するには、シャードに付随するスマート コントラクトを呼び出す必要があります (例: シャード コンセンサス参加者の署名の検証)ケーススタディ 💼
4 つのケースを使用して zkPorter の可能性を実証し、さまざまなアプリケーションをシームレスに組み合わせ、同時に各アプリケーションのニーズを満たすためにトランザクション量を拡張できる方法を示します。
副題
ケース 1: Reddit コミュニティ ポイント
2020 年 6 月、Reddit は The Great Reddit Scaling Bake-Off プログラムを開始し、各コミュニティにコミュニティ ポイント システムを通じて独自のサブレディットをホストする機会を与え、レイヤー 2 ソリューションがその才能を発揮できるようにしました。コミュニティ ポイント システムのソリューションは、他のサードパーティ アプリケーション (ウォレット、コントラクト) との相互運用性を維持しながら、安全で分散型で使いやすく、さらに数十万件のトランザクションを処理できなければならないことは明らかです。コミュニティ ポイントは、zkPorter を使用して 3 つの異なる方法で実装できます。
オプション 1: zkSync で実行 (zkPorter シャード 0)
コミュニティ ポイントをイーサリアム メインネットに接続するために、Reddit は zkSync 上で既存の zkRollup 機能を直接使用できます。 zkSync は Eth1 で 3000 TPS に達します。月間アクティブな Reddit ユーザー 5 億人全員が積極的に参加していると仮定します。各ユーザーが月平均で 1 回のミント トランザクション、1 回のバーニング トランザクション (サブスクリプション料金の支払い)、および 2 回の送金を送信すると仮定すると、コミュニティ ポイント システムに必要な平均負荷は次のようになります。
5 億 × 4 / (30 × 24 × 60 × 60) は約 700 TPS に相当します
これは、zkRollup の現在のスループットの 1/4 にすぎません。
オプション 2: Reddit 固有のシャードに配置し、zkPorter ガードによって検証される
トランザクション スループットの弾力性を向上させ、ユーザー コストを削減することが目的の場合、Reddit は Reddit トランザクションを基本シャードから Reddit 固有のシャードに転送できます。 Reddit は、ユーザーにデータ可用性の保証を提供するための独自のスキームを自由に選択できます。最も単純なソリューションは、既存の zkSync ガード実装であり、プルーフ オブ ステークによって実装されたデータ可用性の保証をユーザーに提供します。 Reddit では、Guardian テンプレートの使用に加えて、Reddit のサーバーにデータを保存することをお勧めします。このモードでは、たとえ防御側が 2/3 の過半数の攻撃を受けたとしても、Reddit がそれに対処できるため、ユーザーは座ってリラックスできます。したがって、Reddit サーバーのエラーや攻撃によってユーザーデータが覆されることはありません。
3 番目の方法は、Reddit がトランザクション スループットを最大化し、ユーザー コストを最小限に抑えることを選択できることです。これは、Reddit コミュニティを専用のシャードに置き、保護メカニズムの代わりにカスタマイズされたデータ可用性ソリューションを使用することです。プルーフ・オブ・ステークのコンセンサスに基づく実現可能なソリューションは、コミュニティ主導のデータ可用性と 2/3 マルチ署名メカニズム (3 分の 2 マルチ署名) を組み合わせたものです。
相互運用性
このスキームの可能な実装を想像してください。Reddit と Reddit ユーザーは、各状態遷移の正当性を証明するために署名を送信します。たとえば、Reddit は署名の総重量の 1/3 を取得し、2/3 をユーザーに配布することができます。署名の重みの 2/3 多数決メカニズム (署名の重みの 3 分の 2 を合わせたもの) と組み合わせることで、Reddit シャードの状態遷移が有効であることを確認するのに十分です。ユーザーは、無効な状態遷移に対するパブリッシャーの保証金を差し引くなど、自分が見た無効な遷移の証拠を投稿するよう奨励することができます。
このスキームにおける取引コストは、ゼロ知識証明を生成するために必要なコストのみをカバーします (現在は取引あたり 1,000 分の 1 ですが、将来的には急激に減少します)。
相互運用性
zkSync上にデプロイされたDeFiプロトコル(zkSync上のCurve、zkSync上のCompoundなど)を使用して取引/貸し出し/ローンを行うなど、他のシャード上のスマートコントラクトと簡単に対話できます。
コミュニティ ポイントを zkRollup シャード上のユーザーに転送します (セキュリティを最大限に高めるため)
トークンをイーサリアムメインネットに素早く引き出して、zkSync 以外のスマートコントラクトと対話します。
副題
ケース 2: スマート ウォレット/暗号通貨銀行 (Argent、Dharma、MyKey など)
スマート ウォレットはスマート コントラクトを実装したウォレットであり、ユーザーがプライバシーと相互運用性の機能を取得できるようになります (たとえば、レイヤー 2 拡張ソリューションにシームレスに接続できます)。 Argent などの一部のスマート ウォレットでは、新規ユーザーを誘導する過程でユーザーの取引手数料の一定割合を選択的に補助しています。現在のガス価格 (75 グウェイ) とイーサリアム価格 (320 ドル) では、トランザクションは 0.5 ドルです。スマート ウォレットは、スマート コントラクトを使用して zkRollup 関数を呼び出し、全体的な Gas オーバーヘッドを削減できます。
ここでは、3 つの簡単なステップで可能な実装を示します。
ステップ 1: zkRollup シャーディング
スマート ウォレット アカウントは、zkSync などの zkRollup ソリューションに移行できます。 zkSync 内のウォレット間の転送は安価ですが、zkSync からメインネットに送信されるトランザクションは若干高価で、時間がかかります (完了までに約 5 ~ 10 分)。
ステップ 2: zkSync Guardian + Wallet Operator シャーディング
十分な数の新規ユーザーを獲得した後、zkRollup での運用コストを考えると、ウォレット運営者は専用シャードの開始を検討する可能性があります。上記の Reddit セクションでは、このアプローチについて詳しく説明しました。ユーザー ベースをスタンドアロンの zkSync ガーディアン (Reddit の場合はコミュニティ メンバー、ここではプロトコル参加者になる可能性があります) とウォレット オペレーターに移行して、データの可用性を確保します。シャーディングは、ウォレット運営者または zkSync ガードの大部分が侵害されない限り、安全です。このオプションは、ウォレット運営者にとって柔軟な料金共有スキームの可能性も開きます。
ある時点で、ウォレットのユーザーベースが非常に大きくなり、ガバナンストークンによって管理されるシャードにウォレットを移行する必要が生じる可能性があります。このシャードは引き続き zkSync ネットワークの一部となり、zkRollup モードで他のすべてのシャードのサービスにアクセスできます。
プライバシーに関する考慮事項
プライバシー機能は上記のどのステップでも簡単に実装できることをさらに説明する必要があります。ゼロ知識証明なしではプライバシーを達成することは困難です。しかし、zkRollup の利点は、セキュリティと分散化を犠牲にすることなく、アカウントが即座にプライバシーを獲得し、ネットワークへの参加コストを大幅に削減できることです。
副題
ケース 3: DeFi プロトコルと DEX (Loopring、IDEX、Curve、Coupound など)
将来のスループットのボトルネックを予測して、IDEX や Loopring などのいくつかの主流 DeFi アプリケーションは、独自のスケーラビリティ ソリューションの展開に投資しています。これは、ガス価格が高いときに競争上の優位性が得られる一方で、スケーラビリティ技術や犠牲についてのより深い理解も得られるため、賢明な行動です。
それだけでなく、高頻度取引をサポートすることに熱心な分散型取引所の場合、単一の注文を満たすために非常に多くのトランザクションが必要となるため、単一トランザクションの手数料は可能な限り低くなければなりません。
単独のスケーラビリティには、構成可能性やネットワーク効果が欠けています。
ゼロ知識証明テクノロジーの可能性が完全に明らかになるにつれて、ゼロ知識証明が大量採用の鍵であると認識する人がますます増えています。同時に、ZKP 分野のイノベーションのスピードは非常に速いため、そのペースに追いつくためには独自の専任の研究開発チームが必要です。ただし、複雑な暗号アルゴリズムが十分に監査および実装されていない場合、重大なセキュリティ ホールが待ち構えている可能性があります。暗号化の分野における黄金律は依然として真実です。それは、自分だけが知っている暗号化セットを作成しないことです。
zkPorter はこの問題を解決します。 DeFi プロトコルは、トランザクションコストを制御しながら、高度なスケーラビリティテクノロジーと強力なネットワーク効果に基づいて構築できます。これらを実現するために、プロトコルは zkPorter 内に独自のシャードを作成し、プロトコル トークン所有者の合意に従ってそれを保護します。これにより、柔軟な料金分担(または料金補助)の機会も開かれます。
ケース 4: マイクロトランザクション (Brave、Livepeer、Storj など)多数の少額の転送 (マイクロトランザクション) を処理する必要があるプロトコルでは、Validum と同様のシャード (つまり、複数の参加者がシンプルなマルチ署名を使用してデータの可用性を確保できるシャード) を実装することができ、トランザクション手数料が発生します。最低ゼロ 知識証明の生成コストは十分です (現在、トランザクションあたり約 0.001 ドルですが、将来的には大幅に削減されることが予想されます)。
このようにマイクロトランザクションプラットフォームを統合することで、ユーザーは残高が一定量を超えた後に自動的に残高をzkRollupシャードに転送することもできます。
最初のレベルのタイトル
これから先へ🛣
zkPorter は、最初は zkSync ロードマップの一部として実装されます。
このビジョンに向けて、私たちが次に行うことは次のとおりです。
zkSync の汎用スマート コントラクトのサポートを提供する
zkSync トークンを配布してガード保護されたシャードを有効にする
zkSync がイーサリアムメインネット上で起動され、パーミッションフリーの zkRollup モードを使用できるようになりました。そのスループットは、イーサリアム 2.0 に移行するまでの今後 2 年間のイーサリアム コミュニティのニーズを満たすのに十分であると考えています。ただし、カスタマイズされた配信ソリューションと緊密なパートナーシップについての議論と実装を歓迎します。
こちらからお問い合わせください。


