Vitalik: ロールアップの拡張スキームの分析 - データ シャーディング

編集:サウスウィンド
イーサリアムにとって、ロールアップは短期から中期、そしておそらく長期的には唯一のトラストレスなスケーラビリティ ソリューションです。イーサリアム L1 の取引手数料はここ数か月間高くなっており、エコシステム全体をロールアップに移行するために必要な措置を講じることがさらに緊急になっています。ロールアップにより、多くのイーサリアム ユーザーの料金が大幅に引き下げられました。l2fees.info ウェブサイトでは、Optimism および Arbitrum ネットワークがイーサリアムのベース レイヤ自体よりも約 3 ~ 8 倍安く、zk-Rollups のデータ圧縮が優れていることがよく示されています。署名も含まれるため、手数料はイーサリアムベースレイヤーの約 40 ~ 100 分の 1 です。
ただし、これらの (ロールアップでの) 料金でさえ、多くのユーザーにとっては法外に高価です。長い間、データ シャーディング (データ シャーディング) は、現在の形式のロールアップの長期的な欠陥に対する解決策として考えられてきました。データ シャーディングにより、ロールアップ用に約 1 ~ 2MB/秒の専用データ スペースが追加されることが期待されています。イーサリアムチェーン。この記事では、ソリューションを実装し、ロールアップ用のデータ スペースをできるだけ早くロック解除し、時間をかけて追加のスペースとセキュリティを追加するための実践的な道筋について説明します。
ステップ 1: トランザクション呼び出しデータを拡張する
現在の既存のロールアップはトランザクション呼び出しデータを使用します。したがって、さまざまなロールアップ チームによる追加の作業を必要とせずに、ロールアップの容量を増やして短期的にコストを削減したい場合は、トランザクション呼び出しデータのガス コストを削減する必要があります。現在の平均ブロック サイズは、イーサリアム ネットワークの安定性を脅かすサイズには程遠いため、安全性が非常に低いエッジ ケースを防ぐために追加のロジックが必要になる可能性はありますが、潜在的には安全です。
見るEIP-4488 プロポーザル、または別の(より単純だが穏やかな)EIP-4490提案。
EIP-4488:
https://github.com/ethereum/EIPs/pull/4488
EIP-4490:
https://github.com/ethereum/EIPs/pull/4490
EIP 4488 では次のことができるはずです各スロットロールアップに使用できるデータ スペースは、理論上の最大値である約 1000 個まで増加しました。1 MB、ロールアップを約5倍のコストダウン最初のレベルのタイトル
ステップ 2: いくつかのシャード
それまでの間、「適切な」シャードをロールアウトするための作業を開始できます。シャーディングを完全な (機能的な) 形式で実装するには長い時間がかかりますが、私たちにできることは、それを段階的に実装し、各段階からメリットを享受することです。まず、シャーディング仕様の「ビジネスロジック」を実装するのは当然ですが、最初に公開するシャードの数を非常に少なくする(例: 4 シャード) シャード化されたネットワークに関する問題のほとんどを回避します。各シャードは独自のものになりますサブネットワーク放送。デフォルトでは、バリデーターは委員会を信頼しますが、希望に応じて各サブネットワークに属することを選択できますが、ビーコン ブロックによって確認されたシャード ブロックの完全なデータを見た場合にのみそれを受け取ります。
シャードの仕様自体は特に難しいものではなく、最近リリースされた Altair ハード フォークと同様のサイズの定型コード変更が含まれています (Altair のビーコン変更仕様ファイルは 728 行、シャードのビーコン変更仕様ファイルは 888 行)。 Altair の実装と展開と同様の時間枠で達成できると予想されます。
シャードされたデータを実際にロールアップで使用できるようにするには、ロールアップがシャードされたデータにプルーフを取り込める必要があります。次の 2 つのオプションがあります。
BEACONBLOCKROOT オペコードを追加します。ロールアップは、歴史的なビーコン チェーン ブロック ルートに基づいたマークル証明を検証するコードを追加します。
将来コミットメント スキームが変更された場合にロールアップのコードを変更する必要がないように、状態および履歴アクセスの将来を見据えたプリコンパイルを追加します。
最初のレベルのタイトル
ステップ 3: N 個のシャード、委員会によって保護される
アクティブなシャードの数を 4 から 64 に増やします。この時点で、シャードされたデータはサブネットワークに入ります。そのため、その時点での P2P レイヤーは、より多くのサブネットワークに分割できるほど十分に強力になっている必要があります。データの可用性のセキュリティは、委員会のセキュリティに依存し、過半数 (検証者) の誠実さの仮定に基づいています。
最初のレベルのタイトル
ステップ 4: データ可用性サンプリング (DAS)
Data Availability Sampling (DAS) は、より高いレベルのセキュリティを確保するために追加されており、多数派 (バリデーター) による不正な攻撃の場合でもユーザーを保護できます。データ可用性のサンプリングは段階的に実行できます。最初は拘束力のない方法でネットワークにテストを許可し、次にビーコン ブロックを受信するための要件として、場合によっては一部のクライアントで最初に実行することもできます。
最初のレベルのタイトル
フラグメントベースのオプティミスティックロールアップと ZK ロールアップ
現在のイーサリアムとシャーディング実装後のイーサリアムの主な違いの 1 つは、シャーディングの世界では、ロールアップ ブロックをスマート コントラクトに送信するトランザクションの一部にロールアップ データを含めることが実際には不可能であることです。代わりに、ロールアップ データの公開とロールアップ ブロックの送信は別個に行う必要があります。まず、データの公開によってデータがオンチェーン (つまり、シャード チェーンに) に配置され、次にブロックの送信によってブロック ヘッダーとブロックが送信されます。基礎となるデータを示す証明。
Optimism と Arbitrum はすでにロールアップ ブロック コミットに 2 段階の設計を使用しているため、これは両方とも小さなコード変更になります。

ZK ロールアップの場合、トランザクションをコミットするには、操作がデータに対して直接操作されることの証明を提供する必要があるため、状況は少し複雑になります。彼らは通り抜けることができますZK-SNARKシャード内のデータがビーコン チェーン上のコミットメントと一致することを証明するには、この操作に非常にコストがかかります。幸いなことに、より安価な代替品があります。
ZK-SNARK が BLS12-381 ベースの場合PLONKの証明、その後、シャード データ コミットメントを入力として直接パッケージ化するだけです。 BLS12-381 シャード データ コミットメントは KZG コミットメントであり、PLONK と同じタイプのコミットメントであるため、パブリック入力としてプルーフに直接渡すことができます。
最初のレベルのタイトル
シャーディングされた世界では誰が履歴データを保存するのでしょうか?
データ容量を増やすために必要な条件は、イーサリアムコアプロトコルがコンセンサスに達したすべてのデータを永続的に維持する責任があるという特性を削除します。これらのデータの量が多すぎるためです。例えば:
EIP-4488 によってもたらされる理論上の最大チェーン サイズは、12 秒スロットあたり約 1,262,861 バイト、つまり年間約 3.0 TB ですが、実際には、特に最初は年間約 250 ~ 1000 GB になる可能性が高くなります。
4 つのシャード (スロットあたり 1 MB) では、年間最大 2.5 TB の追加容量が追加されます。
64 シャード (スロットあたり 16 MB) の場合、年間合計約 40 TB のストレージになります。
ほとんどのユーザーは 256 GB ~ 2 TB のハード ドライブを使用しており、1 TB がその中間の値であるようです。以下のグラフは、コンピューターのハード ドライブの空き容量について、ブロックチェーン研究者のグループの間で実施された内部調査の結果です。

これは、ユーザーは現在ノードを実行できますが、このロードマップの一部が変更なしで実装されると、ユーザーはノードを実行できなくなることを意味します。もちろん、より大きなドライブも利用可能ですが、ユーザーはわざわざそれらを購入する必要があるため、ノードの実行が大幅に複雑になります。現在の主なソリューションは EIP-4444 です。この提案により、1 年以上前のブロックまたはレシートを保管するノードオペレーターの責任がなくなりました。。シャーディングの場合、この 1 年の期間はさらに短縮される可能性が高く、ノードは積極的に参加しているサブネットワーク上のシャードのみを担当する必要があります。
これにより、次のような疑問が生じます。イーサリアムコアプロトコルがこのデータを保存しない場合、誰が保存するのでしょうか?
まず、シャーディングを使用してもデータの量はそれほど大きくないことを覚えておくことが重要です。確かに、年間 40 TB は、個人が「デフォルト」のコンシューマ ハードウェアを実行するのには不可能です (実際、年間 1 TB でもまだ当てはまります)。ただし、ある程度のリソースを投資してこのデータを保存する方法を見つけようとする人にとっては、これは許容範囲内です。現在、48 TB HDD (ハードディスク ドライブ) は 1,729 ドルで販売されており、14 TB は約 420 ドルです。 32 ETH バリデーター スロットを実行している人は、報酬をステーキングするためにシャーディングが実装された後、喜んで支払いをしてチェーン全体を保存する可能性があります。したがって、実際には、「特定のシャードの履歴データを保存する人はいないため、データが完全に失われることになります」この状況は不可能に思えます。
では、このデータは誰が保管するのでしょうか?私の考えの一部:
個人および組織のボランティア。
ブロック エクスプローラー (etherchain.org、etherscan.io、amberdata.io など) は、ユーザーにデータを提供するのがビジネス モデルであるため、すべてのデータを確実に保存します。
ロールアップ DAO は、ロールアップに関連する履歴データを保存および提供する参加者を任命し、支払いを行います。
履歴データは、トレント経由でアップロードおよび共有できます。
クライアントは、ブロックチェーンの履歴データの 0.05% をランダムに保存することを任意に選択できます (多数のクライアントが同時にオフラインになった場合でも、小さなデータ チャンクのみが失われるように消去コーディングを使用します)。
ポータル ネットワーク内のクライアントは、ブロックチェーンの履歴データの一部をランダムに保存でき、ポータル ネットワークは、データを保存するノードにデータ要求を自動的に送信します。
履歴データの保存はプロトコルで奨励できます。
The Graph のようなプロトコルは、クライアントが過去のデータや正確性のマークル証明に対してサーバーに料金を支払うインセンティブ市場を生み出すことができます。これにより、人々や機関は履歴データを保存するサーバーを実行し、そのデータをオンデマンドで利用できるようになります。
これらのソリューションの一部 (個人および組織のボランティア、ブロック探索者) はすでに利用可能です。そして、現在の P2P トレント シーンは、主にボランティアによって推進され、多くのコンテンツが保存されているエコシステムの好例です。他のプロトコルベースのスキームは、インセンティブを提供するためより堅牢ですが、開発に時間がかかる可能性があります。長期的には、現在のイーサリアム プロトコルを介して履歴データにアクセスするよりも、これらの L2 プロトコルを介して履歴データにアクセスする方が効率的になる可能性があります。


