Gateアプリをダウンロードするにはスキャンしてください
qrCode
その他のダウンロードオプション
今日はこれ以上表示しない

イーサリアムは2024年に過去3年間を合わせたよりも多くアップグレードされました。



しかし、1つの提案が静かにすべてを変えます:並列実行です。

EIP-7928は、イーサリアムがついにシングルスレッドであることをやめる瞬間かもしれません。👇🧵

私たちはFusakaアップグレード、kohakuアップグレード、たくさんのEIPやERCを見てきましたが、EIP-7928はEVMの核心に迫ります。
----------------------------------------

EIP-7928とは何ですか?

𝘌𝘐𝘗-7928は、(𝘉𝘈𝘓𝘴)を導入する提案されたアップグレードであり、トランザクションが実行される前に、どの状態を読み取るかまたは書き込むかを宣言する正式な方法です。

構造化された「ステートアクセスマニフェスト」を含めることにより、イーサリアムクライアントは2つのトランザクションが同じステートの部分に触れているかどうかを判断でき、もし触れていなければ、並行して実行することができます。

これにより、イーサリアムの最大の問題の1つが解決されます。これは、すべてのトランザクションが順番に実行される必要がある、順次実行が行われるシステムです。

EIP-7928により、イーサリアムはマルチスレッド実行環境への重要な一歩を踏み出し、EVMを再定義することなく、より多くのスループットを可能にします。
----------------------------------------

BAL (Bounded Atomic List)とは何ですか?

制約付きアトミックリスト (BAL) は、トランザクションが実行される前に、ネットワークに対してどのアカウントとストレージロケーションを読み取ったり変更したりする意図があるかを正確に伝えるメタデータです。

これにより、EVMはブラックボックス型のトランザクションランナーから、リソース使用量が事前に分かる予測可能なシステムに変わります。
BALは、実行のフットプリントのコンパクトで決定論的な概要として機能します。

バリデーターに次のことへの自信を与えます:

➢ トランザクションは、その宣言された境界の外側には触れません。

➢ 実行中に隠れた状態の競合は発生しません

➢ 実行前に行われたスケジューリングの決定は、その後も有効であり続けます

BALは、安全な並行性を可能にするためのコアであり、ノードはEVMを最初に実行することなくトランザクションの競合について推論できるようになりました。

----------------------------------------

BALにはさまざまな種類があります

1. 状態にアクセスするが、その一部を変更しない取引に現れる Read BAL。これは通常のイーサリアムのフローではまれかもしれませんが、バッチ処理システムにとっては非常に価値があります。

2. トランザクションが更新する状態のサブセットを定義する Write BAL。これらのトランザクションは競合解決を必要としますが、状態の異なる領域に触れる他のトランザクションと並行して実行することができます。

3. 読み書きBALには両方のセットが含まれており、クライアントは数千の保留中の取引にわたる読み/書きの重複を比較できます。

これにより、スケジューラーは一貫性のない結果やリバージョンカスケードのリスクを伴うことなく、最適な実行グループを作成できます。
----------------------------------------

EIP-7928のメカニズム

EIP-7928の背後にあるメカニズムは、宣言、検証、およびスケジューリングの3つのコアコンポーネントで構成されています。

1. 執行前宣言

すべてのトランザクションには、アクセスされるすべてのアカウントとストレージスロットのコンパクトマニフェストであるBALが含まれています。
この宣言はトランザクションペイロードの一部であり、実行が始まる前に検証されます。
これだけでEVMを実行することなく、コンフリクト検出が可能になります。

2. BALの静的検証

トランザクションを実行する前に、イーサリアムクライアントは次のことを確認します:

➢ BALが適切に形成されているかどうか

➢ トランザクションが宣言されたセットの外に何かにアクセスしようとしているかどうか

➢ 宣言されたセットが標準で定義された制限を尊重しているかどうか

取引がBALに含まれていないものに触れる場合、それは無効です。これによりネットワークが保護され、並行スケジューリングにおける信頼が確保されます。

3. コンフリクトグラフの構築

BALを使用して、ノードは各トランザクションをノードとする競合グラフを構築します。エッジは読み取り/書き込みセットの重複を意味し、エッジがない場合はトランザクションが独立していることを意味します。

このグラフはスケジューラーに、どのトランザクションが同時に実行できるかを正確に示します。

4. パラレルスケジューリング

クライアントは、トランザクションセットを同時に実行できるバッチに分割します。
独立したバッチは異なるCPUコアまたはスレッドに送信されます。

例:異なるプールでの複数のスワップ、独立したコントラクト状態に影響を与える複数のミント、異なるアカウントに触れる無関係なトランスファー

これらは同時に実行され、CPUの利用率を最大化します。

5. 決定論的コミット

実行は並行して行われますが、状態へのコミットは常に標準的なブロック順序で適用されます。これにより、すべてのノード間での決定論が保たれます。並行性は実行を高速化しますが、順序付けは合意の乖離を回避します。
----------------------------------------

7928-イネーブルドブロックのライフサイクル

BALを使用した取引はメモリープールに入ります。ノードはそれらを分類し、グループ化し、並列実行が始まり、結果は決定論的にマージされ、ブロックがより早く確定されます。
ビルダーとバリデーターの両方が、実行時間の短縮と予測可能な競合パターンの恩恵を受けます。

EIP-7928の利点

➢ EIP-7928は真の並列実行を解放し、イーサリアムがついに現代のマルチコアハードウェアを活用してスループットを劇的に向上させることを可能にします。

➢ EIP-7928は混雑をより速く解消することにより、ガスの急騰を緩和し、高トラフィック期間中の手数料市場を安定させます。

➢ 並行実行はブロック検証時間を短縮し、すべてのバリデーターのハードウェア要件を低下させることで分散化を強化します。

➢ 明確な状態アクセス境界により、ブロックビルダーはMEV戦略とバッチフローをより安全かつ効率的に構築できます。

➢ EIP-7928は、イーサリアムの実行レイヤーを強化し、新しい仮想マシン、契約の書き換え、または既存のツールの破損を必要としません。
----------------------------------------
結論として、EIP-7928は静かにすべてを変えるようなアップグレードの一つのように感じます。

私の視点からすると、これはイーサリアムがパラレルのための実際の基盤を築く初めての時です。高スループットの実行を行うために、スタック全体を書き直すことなく。

これを正しく実現できれば、開発者もユーザーも勝ち、イーサリアムはついに最新のハードウェアの全能力を活用し始めることになります。それは私が本当に楽しみにしている未来です。

EIP-7928についてどう思いますか?
ETH-1.17%
原文表示
post-image
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • コメント
  • リポスト
  • 共有
コメント
0/400
コメントなし
  • ピン