深く解読する EIP-4844:シャーディングの一歩、イーサリアムのスケーリングの大きな一歩
執筆者:Yihan Xu、Foresight Research
このレポートでは以下のことがわかります:
EIP-4844;
Proto-danksharding;
Danksharding;
KZGコミットメント;
KZGセレモニー;
動的状態シャーディング;
…
最近、コミュニティの参加が過剰なKZGセレモニーが話題になっていますが、この儀式は一体何をしているのでしょうか?
簡単に言うと、KZGセレモニーはEIP-4844を実現するための不可欠な初期段階であり、EIP-4844はイーサリアムのシャーディングプロセスにおける先行バージョンです。
一、シャーディング:イーサリアムの拡張の長期的な解決策
- シャーディングはデータの可用性の観点から拡張し、ロールアップは主に実行層から拡張し、共にメインネットの混雑問題を緩和します。私はシャーディングがブロックチェーンの不可能な三角形を突破する試みである可能性があると考えています。
- 以下のイーサリアムのブロックサイズの推移グラフは、データ層の拡張の必要性を別の視点から示しています。創世ブロックから、イーサリアムは基盤アーキテクチャから上層アプリケーションまで急速に進化し続けていますが、平均ブロックサイズは約90Kbであり、最高点でも質的な突破はありません。ロールアップが計算層から切り込んでイーサリアムの混雑問題を解決していますが、性能は依然としてレイヤー1のデータストレージ能力に制約されています。
- 実現プロセスの複雑さと安全性の考慮から、イーサリアム開発チームはシャーディングを複数の段階に分け、その中には最近言及されたプロトダンクシャーディングとダンクシャーディングが含まれています。このプロセス全体は数年にわたる更新となるでしょう;
- 現在のイーサリアムのデータストレージモデルでは、特定の高性能マシンのみがネットワークに参加してノードとなることができますが、フルシャーディング後はイーサリアムは各ノードがすべてのデータを保存する必要がなくなり、メインネットのデータストレージコストを削減しつつ安全性を強化します(ノードになるためのハードルが下がり、分散化の度合いがさらに向上し、攻撃のリスクも低下します)。
二、EIP-4844:短期的な高リターン、シャーディングの簡略版
EIP-4844 = プロトダンクシャーディング; プロトはイーサリアムの研究者の名前に由来します
ダンクシャーディング(次のセクションで分析します)の実現が非常に複雑で、開発サイクルは少なくとも年単位であるため、プロトダンクシャーディングはダンクシャーディングを実現する前のイーサリアムの拡張プランであり、主にダンクシャーディングの取引形式、プレコンパイルなどの設計を実現しています;
1. プロトダンクシャーディングの概要
プロトダンクシャーディングは新しいトランザクションタイプ、すなわちblob-carryingトランザクションを導入しました。これにより、ロールアップのデータはblobの形式でより低コストでレイヤー1に転送され、非永続的に保存されます。同時に、blobは現在のcalldataよりもはるかに大きく、ロールアップ上の高TPSをより良くサポートします。
blobについて:
- 各トランザクションは最大2つのblobを持つことができます;
- 各ブロックは理想的な状態で8つのblobを含み、約1MB、最大で16のblobを含み、約2MBになります;
- blobはcalldataのように履歴ログとして永続的に保存される必要はありません;
- ダンクシャーディングと比較して、ノードは依然として完全なDAを検証する必要があります。
2. Blob-carryingトランザクションの解釈
トランザクションにblob(データユニット)を付加する
役割
Vitalikが提案の中で示した図を参考にすると、データblobは現在のcalldataに似ており、ロールアップは取引、証明などのデータをblobを通じてレイヤー1にアップロードしてデータの可用性を保証します。
コスト
データblobの設計の目的はロールアップの高スループットの取引をサポートすることであり、同等のサイズのcalldata(オンチェーンストレージを使用)と比較して、blobのコストは大幅に低下します(永続的な保存が不要です)。したがって、ロールアップがデータの可用性を維持するためにかかるガスは以前よりも大幅に減少します。
容量
各blobのサイズは約125kBです(事実:現在の平均ブロックサイズは約90kBです)。
3. Blob-carryingトランザクションの価値と課題
価値
blobはキャッシュの一種と見なすことができ、ロールアップが提出した取引データはキャッシュの形式で存在します。ストレージハードウェアへの要求を減らし、イーサリアムに追加のデータ拡張を提供し、ガスコストを削減します。
課題:イーサリアムノードのハードウェア性能への要求
イーサリアムの現在の平均ブロックサイズは約90kBですが、1つのblobは約125kBです。
EIP-4844の設計によれば、各スロットは通常約1MBであるため、年間のデータ増加量は次のようになります:
1 MB/ブロック * 5 ブロック/分 * 43200 分/月 * 12 月/年 = 年間2.47 TB
年間のデータ増加量はイーサリアムのデータ総量を大幅に超えており、このようなストレージソリューションは明らかに非効率的です。
解決策
短期的な拡張効果から見ると、各ノードが全履歴データを保存する必要があるため、EIP-4844を実現する際に、一定の時間枠を超えたblob(具体的な制限時間はまだ最終決定されていませんが、1ヶ月または1年の可能性があります)を自動削除することができます;
シャーディングの長期的な利益から見ると、EIP-4444を実現し、ノードが全履歴データを保存する必要がなくなり、履歴の有効期限を参照して特定の時間以降のデータを保存するだけで済むようになります;
これら2つの解決策は、blob-carryingトランザクションのストレージスペースに関するトレードオフを異なる程度で緩和します。
4. KZGコミットメント
KZGコミットメントはEIP-4844で採用されている多項式コミットメントスキームです
KZGコミットメントの解析
KZGは著者のAniket Kate、Gregory M. Zaverucha、Ian Goldbergの姓の頭文字を取ったもので、彼らは2010年に「Constant-Size Commitments to Polynomials and Their Applications」という多項式コミットメントスキームに関する論文を発表しました。このスキームはplonkスタイルのzk-snarkプロトコルで広く使用されています。
Dankrad Feistの講演における図を参考にすると、KZGルートはMerkleルートに似ていますが、違いはKZGルートが多項式をコミットすることです。すなわち、すべての位置がこの多項式上にあります。プロトダンクシャーディングのシナリオに基づいて、KZGルートは一連のデータをコミットし、その中の任意のデータがこの全体に属することを検証できます。
これがKZGコミットメントが後のDAS実装に対して互換性がある理由です。
KZGコミットメントのプロセスは以下の通りです:
- プルーバー:証明を提供し、データのコミットメントを計算します。プルーバーは与えられた多項式を変更できず、証明に使用されるコミットメントは現在のこの1つの多項式にのみ有効です;
- バリファイア:プルーバーが送信したコミットメント値を受け取り、検証して、プルーバーが有効な証明を提供したことを確認します。
KZGコミットメントの利点
私は主にコストと安全性に関する考慮から、以下の点に要約できると考えています:
コスト
- KZGコミットメントは迅速な検証、相対的に低い複雑さ、簡潔さを備えています;
- 追加の証明を提出する必要がないため、コストが低く、帯域幅を節約できます;
- データにアクセスするために必要なポイント評価プレコンパイルは、より低いコストを得ることができます。
安全性
- 失敗が発生した場合でも、影響を受けるのはコミットメントに対応するblob内のデータのみであり、他の深刻な影響はありません。
より互換性がある
- シャーディング全体のスキームを通じて、KZGコミットメントはDASスキームと互換性があり、重複開発のコストを回避します。
5. KZGセレモニー(信頼できるセットアップ)
KZGセレモニーはKZGコミットメントに信頼できるセットアップを提供します。 現在、20,000人以上の参加者が参加し、貢献しており、歴史上最大規模の信頼できるセットアップとなっています。
最近、コミュニティの参加熱が高まっているKZGセレモニーは、EIP-4844で採用されたKZGコミットメントに信頼できるセットアップを提供します;
KZGセレモニーのプロセス
Vitalikのフローチャートを参考にすると、誰でも参加者として秘密を提供し、以前の結果と混ぜて新しい結果を生成することができます。このようにして、最終的なSRSを得るために入れ子の形式で進め、KZGコミットメントの信頼できるセットアップを完成させます。
信頼できるセットアップ
- EIP-4844では一般的なマルチ参加者の信頼できるセットアップであるpowers-of-tauが採用されています;
- 1-of-Nの信頼モデルに従い、生成セットアップのプロセスに参加する人数に関わらず、1人でも自分の生成方法を漏らさなければ、信頼できる初期化は有効です;
必要性
- KZGコミットメントの信頼できるセットアップは、各回の暗号プロトコルを実行する際に依存する必要があるパラメータを生成することと簡単に理解できます。これはzk-snarkが信頼できる初期化を必要とするのと似ています;
- プルーバーが証明を提供する際、KZGコミットメントC = f(s)g1となります。ここでfは評価関数で、sはKZG信頼できるセットアップから得られた最終秘密です;
- 最終秘密は多項式コミットメントを生成するための核心的なパラメータであり、この核心的なパラメータを取得するための信頼できるプロセスとして、今回のKZGセレモニーはシャーディング全体の実現に非常に重要です。
6. EIP-4844がもたらす変化
ロールアップ
ethresear上で示された図を参考にすると、ロールアップは状態の変化、KZGコミットメントのバージョンハッシュをcalldataに含めて提出する必要があります(zk-rollupはzk証明も提出する必要があります)。
異なる点は、calldataには状態の変化やKZGコミットメントのような小さなデータしか含まれず、大量の取引データを含むトランザクションバッチはblobに置かれることです。
- コストを有効に削減し、calldataに置くのは非常に高価です;
- ブロックスペースの占有を減少させます。
安全性
- データの可用性:blobは信号チェーンに保存され、レイヤー1の安全性と同等です;
- 歴史データ:ノードはblobを一定期間のみ保存するのではなく、レイヤー2ロールアップが永続的なデータストレージを行う必要があるため、安全性はロールアップに依存します。
コスト
プロトダンクシャーディングは新しいトランザクションタイプを導入し、低コストデータ形式のblobの追加はロールアップのコストをさらに低下させることは間違いありません。実際のチェーン上のアプリケーションと実装の進捗に依存し、最適化された後のロールアップのコストは10倍、さらには50倍に低下する可能性があります;
同時にEIP-4844はblob手数料を導入しました;
- ガスとblobはそれぞれ調整可能なガス価格と制限を持ちます;
- blobの課金単位は依然としてガスであり、ガス量はトラフィックに応じて変動し、各ブロックに平均8つのblobを掛ける目標を維持します(追加のデータ量の制限)。
プレコンパイルの実装
blob内のデータ自体は直接アクセスできず、EVMはデータblobのコミットメントのみを取得できます。したがって、ロールアップはコミットメントの有効性を検証するためにプレコンパイルを提供する必要があります。
以下にEIP-4844で言及されている2つのプレコンパイルアルゴリズムを分析します。
ポイント評価プレコンパイル(数学原理に興味がある方はVitalikの解析を参照)
- 複数のコミットメントが同じデータを指していることを証明します;
- 主にzk-rollupに対して、ロールアップは2種類のコミットメントを提供する必要があります:1. KZGコミットメント;2. zk-rollup自体のコミットメント;
- オプティミスティックロールアップでは、大多数がマルチラウンド詐欺証明のメカニズムを採用しており、最終ラウンドの詐欺証明に必要なデータ量は比較的小さいです。したがって、ポイント評価プレコンパイルを使用することで、より低いコストを達成できます。
Blob検証プレコンパイル
- バージョンハッシュとblobが有効に対応していることを証明します;
- オプティミスティックロールアップは詐欺証明を提出する際に全データにアクセスする必要があるため、最初にバージョンハッシュとblobの合法性を検証し、その後詐欺証明の検証を行います。
三、ダンクシャーディング:フルシャーディングへの重要な一歩
ダンクシャーディングの名前はイーサリアム研究者のダンクラッド・ファイストに由来します
1. 拡張:ロールアップのキャッシュスペースをさらに拡充
プロトダンクシャーディングが実現した後、新しいトランザクション形式がblobを導入したため、各ブロックは平均して追加の1MBのキャッシュスペースを得ることができます。ダンクシャーディングが実現した後、各ブロックは追加で16MB、最大32MBを許可します。
2. データ 可用性: ストレージと検証戦略がより効率的
プロトダンクシャーディングが全ノードに全データをダウンロードすることを要求するのに対し、ダンクシャーディングが実現した後、イーサリアムノードはblobをサンプリングするだけで済みます。サンプリングされたデータは全ネットワークノードに分散され、完全なデータblobを構成できます。
DAS:効率的なサンプリングチェック
- 纠缠码(エラーチェック)を使用して、全ネットワークノードが部分データをダウンロードする際に元のデータの喪失の確率をより容易に発見できるようにし、安全性を向上させます。
3. 安全性:基本的に変わらない
各ノードがもはや全履歴データを保存しないため、データの可用性、バックアップ、サンプリングチェックの観点から、安全性は少なくとも1つのノードが全データを保存することから、複数のノードが部分データを保存し、最終的に完全なデータを復元することに変わります。
一見すると単一のポイントへの依存は多ポイントへの依存よりも安全性が高いように見えますが、イーサリアムネットワーク内のノード数が十分に多いため、データバックアップのニーズを完全に満たすことができるため、安全性には大きな変化はありません。
4. 新たな課題:ブロックビルダーへの要求が高まる
検証者が全履歴データをダウンロードして保持する必要がなくなり、帯域幅とストレージハードウェアの要求が緩和されましたが、ブロック作成者は依然として全トランザクションデータを含むblobデータをアップロードする必要があります。ここでPBS(提案者/ビルダー分離)について簡単に紹介します。 ダンクラッドがダンクシャーディングの提案におけるPBSの適用図を示しています:
- ブロック作成者の役割を提案者とビルダーに分割します。最初はアンチMEV設計の提案のために行われ、ダンクシャーディングの設計ではブロック作成時の帯域幅の要求を低下させるために行われます。
四、他のシャーディングプラン:Shardeumの動的分片
ShardeumはEVM互換のレイヤー1パブリックチェーンであり、イーサリアムの静的シャーディングプランとは異なり、Shardeumは動的状態シャーディングのプランを通じて基盤の拡張性と安全性を向上させ、自然に高い分散化の程度を保証します;
1. 動的状態シャーディング
利点
動的状態シャーディングがもたらす最も直感的な利点は線形スケーリングであり、ネットワークに接続されたノードは非常に効率的にシャーディングアルゴリズムによって動的にグループ化され、迅速に応答し、ブロックチェーンネットワークのTPSを向上させます。動的状態シャーディングの設計では、各ノードは異なる範囲のアドレスをカバーし、カバー範囲には冗長設計があり、高効率のシャーディングと安全性を保証します。
シナリオ内の実装
エコシステムの複雑さを除けば、2つの技術実装の観点から見ると、動的状態シャーディングの難易度は静的シャーディングよりも高いです。Shardeumの技術チームはシャーディングの技術面で深い蓄積があり、チームはShardusテクノロジーでの研究もこのパブリックチェーンの基盤技術に大きな貢献をしており、プロジェクトの初期段階で動的状態シャーディングがもたらす線形スケーリングをうまく示しました。
2. Shardeumの総括
製品
ノードを異なるグループに分け、divide and conquerの考え方を参考にして、計算とストレージの作業負荷を分流し、より高い並行処理を許可します。これにより、より多くのノードが参加でき、パブリックチェーンのスループットと分散化の程度がさらに向上します。
チーム
市場経験が豊富で、ストーリーテリング能力が非常に高く、動的分片の研究が深いです。
技術
自分たちのシナリオに適したシャーディングプラン(動的状態シャーディング)とコンセンサス設計(Proof of Stake + Proof of Quorum)を設計し、拡張性を第一の目標として、より高い分散化と安全性を保証します。
進捗
2023年2月2日にベータネットをローンチする予定で、注目に値します。
五、シャーディングに関する考察と展望
- シャーディングはイーサリアムの拡張の長期的な解決策であり、非常に大きな価値と意義を持つ長期的なプランです。シャーディングを実現する過程で、現在のすべてのプランは継続的に進化する可能性があり、プロトダンクシャーディング、ダンクシャーディングなどが引き続き注目に値します;
- シャーディングの大方向の理解は重要ですが、フルシャーディングプロセスの中で採用される各提案の技術プラン(PBS、DAS、マルチ次元手数料市場)も同様に注目に値し、多くの関連する優れたチームやプロジェクトが現れると信じています;
- シャーディングは拡張技術の総称ですが、具体的な実装プランは一つだけではありません。異なるパブリックチェーンにはそれぞれのシナリオに適したシャーディングプランがあることを認識する必要があります。例えば、ダンクシャーディングのいくつかの設計はイーサリアムネットワークにのみ適しており、安全性のトレードオフには多くのノードが必要です;
- シャーディングと他の拡張プランの合理的な組み合わせは拡張性の向上に寄与します1+1>2。現在のダンクシャーディングは独立した拡張プランではなく、イーサリアムエコシステムの他の実装と相互に補完し合っています。例えば、ダンクシャーディングとロールアップが共にイーサリアムの拡張においてより良い効果を達成します。
参考文献
https://notes.ethereum.org/@dankrad/kzgcommitmentsin_proofs
https://notes.ethereum.org/@dankrad/new_sharding
https://vitalik.ca/general/2022/03/14/trustedsetup.html
https://notes.ethereum.org/@vbuterin/protodankshardingfaq#Why-use-the-hash-of-the-KZG-instead-of-the-KZG-directly
https://ethresear.ch/t/easy-proof-of-equivalence-between-multiple-polynomial-commitment-schemes-to-the-same-data/8188
https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html
https://notes.ethereum.org/@dankrad/new_sharding
https://eips.ethereum.org/EIPS/eip-4844
https://www.eip4844.com/
https://biquanlibai.notion.site/Data-Availability-caa896aae59d489b98f2448f17b01640
https://docs.google.com/presentation/d/1-pe9TMF1ld185GL-5HSWMAsaZLbEqgfU1sYsHGdD0Vw/edit#slide=id.g1150d91b32e0474
https://ethresear.ch/t/a-design-of-decentralized-zk-rollups-based-on-eip-4844/12434