Cointime

Download App
iOS & Android

EIP 4844 の完全な概要 - EIP 4844 の初心者ガイド

Validated Individual Expert

著者: Samuel Okediji編集: Cointime.com 237

ブロックチェーン技術の分野では、イーサリアムは拡大し続けるユーザーベースに対応し、トランザクションのスループットを向上させ、コストを削減することに取り組んできました。長期的なスケーラビリティを実現するために、イーサリアムはデータ シャーディングの概念を採用しています。シャーディングの完全実装に向けた暫定ステップとして、イーサリアム改善提案 4844 (EIP-4844) が導入されました。この提案は、セキュリティと分散化を維持しながら、イーサリアムが 1 秒あたり約 100,000 トランザクション (TPS) というより高いスループットを達成できるようにすることを目的としています。

EIP 標準と EIP-4844 の重要性を理解します。

イーサリアム改善提案 (EIP) は、イーサリアム プロトコルの改善、新機能、または変更を概説する正式な文書です。これらは、イーサリアム コミュニティのメンバーが潜在的な拡張機能を提案し、議論する方法を提供します。

EIP-4844 は主に、シャード BLOB トランザクションをイーサリアム ネットワークに統合することに関係しています。シャーディングとは、効率とパフォーマンスを向上させるためにデータベースを小さなパーティション (別名シャード) に分割することです。シャード BLOB トランザクションを実装することで、イーサリアムはトランザクション コストを改善し、全体的なスループットを向上させることを目指しています。 EIP-4844 は完全なシャーディング ソリューションではありませんが、より広範な導入を促進するために必要なスケーラビリティとコスト効率を達成するための重要なステップとなります。

この記事では、EIP-4844 とそのイーサリアムのスケーラビリティへの影響について詳しく説明します。シャーディングの概念を説明し、EIP 標準の役割についての洞察を提供し、イーサリアム エコシステムにおける BLOB トランザクションのシャーディングの重要性を明らかにします。さらに、BLOB を運ぶトランザクション、ガスの請求、EIP-4844 とフルスケール シャーディングの関係など、EIP-4844 によって導入された主要な機能とメカニズムについても説明します。この記事を読むことで、EIP-4844 と、スケーラビリティの向上とトランザクション コストの削減を目的としたイーサリアムの継続的な取り組みに対する EIP-4844 の貢献について包括的に理解できるようになります。

この調査を通じて、次の洞察が得られます。

シャーディングの概念とイーサリアムのスケーラビリティに対するその重要性

完全なシャーディングに向けた中間ステップとしての EIP-4844 の役割。

Blob を運ぶトランザクションやガス請求など、EIP-4844 によって導入された機能とメカニズム。

EIP-4844 がイーサリアムのスケーラビリティとコスト削減のロードマップにどのように適合するか。

ユーザーは、EIP-4844 の実装により、トランザクションの高速化と手数料の削減が期待できます。

この記事を読むことで、EIP-4844 の重要性と、スケーラビリティの向上と広範な普及に向けた EIP-4844 のイーサリアムへの影響を完全に理解し、評価できるようになります。

EIP-4844とは何ですか?

EIP-4844 は、イーサリアム ネットワークでのシャード BLOB トランザクションの統合に焦点を当てています。シャーディングでは、効率とパフォーマンスを向上させるために、データベースを小さなパーティション (シャード) に分割します。イーサリアムのコンテキストでは、シャーディングはトランザクションコストを改善し、スループットを向上させることを目的としています。イーサリアムはダンクシャーディング(特定タイプのシャーディング)の実装を計画しており、これによりイーサリアムのTPSが約100,000に大幅に増加すると予想されています。

EIP-4844 は、イーサリアム ネットワークでのシャード BLOB トランザクションの統合に焦点を当てています。シャーディングでは、効率とパフォーマンスを向上させるために、データベースを小さなパーティション (シャード) に分割します。イーサリアムのコンテキストでは、シャーディングはトランザクションコストを改善し、スループットを向上させることを目的としています。イーサリアムはダンクシャーディング(特定タイプのシャーディング)の実装を計画しており、これによりイーサリアムのTPSが約100,000に大幅に増加すると予想されています。

以前のイーサリアムおよび非イーサリアムのシャーディング提案と比較して、ダンク シャーディングにはいくつかの革新性が導入されています。トランザクションだけでなく、データの BLOB により多くのスペースを提供することに重点を置いています。さらに、ダンク シャーディングは、1 つのプロポーザーがすべてのシャードのトランザクションを選択する統合された料金市場を実装し、各シャードが独自のプロポーザーを持つ必要がなくなります。最大抽出可能価値 (MEV) の問題に対処するために、提案者と構築者の分離アプローチも導入されています。

EIP-4844 (プロトダンクシャーディング)

EIP-4844 はプロトダンク シャーディングとも呼ばれ、本格的なダンク シャーディングに向けた中間ステップです。 TPSを約1,000に高めることを目指しており、「BLOBキャリートランザクション」と呼ばれる新しいトランザクションタイプを導入する。これらのトランザクションには、本格的なダンク シャーディングの重要な要素である「BLOB」データが含まれています。 EIP-4844 の実装は 2023 年後半に行われる予定ですが、遅れる可能性があります。

EIP-4844はどのように機能しますか?

EIP-4844 では、BLOB を使用したトランザクションが導入されています。BLOB は通常のトランザクションに似ていますが、「BLOB」と呼ばれるバイナリ ラージ オブジェクトが追加されています。これらの BLOB はブロックに追加され、BLOB を含むブロックのデータ容量が増加します。単にブロック サイズを増やすのとは異なり、BLOB を含めることにより、集中化や計算要件などの問題によりイーサリアムでブロック サイズを増やす慣行が回避されることは注目に値します。

BLOB はブロックとは異なるプロパティを持っています。ブロックは無期限に保存され、イーサリアム仮想マシン (EVM) に表示されますが、BLOB の有効期間は限られており、EVM には表示されません。 BLOB は実行層ではなくイーサリアム コンセンサス層に存在するため、ストレージ コストが削減されます。 EIP-4844 には、実行層ロジック、検証ルール、多次元料金市場、および将来の本格的なダンク シャーディングに必要なその他のシステム変更も含まれています。

EIP-4844 は実際にはシャーディングを実装しているわけではありませんが、イーサリアムを広く普及するために必要なスケーラビリティとコストのレベルに近づけることに注意することが重要です。 EIP-4844 は、本格的なダンク シャーディングを実装していないにもかかわらず、スケーラビリティとコスト削減の利点を提供します。

EIP-4844 はユーザーにどのようなメリットをもたらしますか?

EIP-4844 は、イーサリアムのロールアップ中心のロードマップに沿ったプロトコル アップグレードです。導入の準備は急速に進んでおり、開発ネットワークはすでに稼働しており、アップグレードの仕様は最終決定に近づいています。

EIP-4844 の実装後、ユーザーは主にトランザクションの高速化と手数料の削減という形で大幅な改善が期待できます。導入が成功すれば、仮想通貨分野におけるイーサリアムの競争力も強化されるだろう。

削除された古い BLOB からのデータへのアクセスに懸念があるユーザーの場合、BLOB は数週間後に削除されますが、そのデータはイーサリアム コンセンサス レイヤーによって維持される長期ストレージで引き続き利用できるはずであることに注意することが重要です。

BLOB トランザクション

EIP-4844 では、EIP-2718 標準に基づいた新しいトランザクション タイプ「BLOB トランザクション」が導入されています。 BLOB トランザクションの TransactionType は BLOB_TX_TYPE で、TransactionPayload は TransactionPayloadBody の RLP シリアル化であり、chain_id、nonce、max_priority_fee_per_gas、max_fee_per_gas、gas_limit、to、value、data、access_list、max_fee_per_data_gas、blob_versioned_hashes、y_parity、r などのさまざまなフィールドが含まれます。 s.

通常の作成トランザクションとは異なり、BLOB トランザクションの「to」フィールドは 20 バイトのアドレスを表す必要があり、nil にすることはできません。

BLOB トランザクションの EIP-2718 ReceiptPayload は、RLP としてエンコードされた status、cumulative_transaction_gas_used、logs_bloom、およびログで構成されます。

BLOB トランザクション形式:

BLOB トランザクションの EIP-2718 ReceiptPayload は、RLP としてエンコードされた status、cumulative_transaction_gas_used、logs_bloom、およびログで構成されます。

BLOB トランザクション形式:

サイン

BLOB トランザクションの y_parity、r、および s 署名値は、特定のダイジェストに secp256k1 署名を構築することによって計算されます。ダイジェストは、keccak256 ハッシュ アルゴリズムを使用して、BLOB_TX_TYPE の RLP シリアル化とchain_id、nonce、max_priority_fee_per_gas、max_fee_per_gas、gas_limit、to、value、data、access_list、max_fee_per_data_gas、および blob_versioned_hashes を連結してハッシュすることによって取得されます。

署名の計算:

ダイジェスト = keccak256(BLOB_TX_TYPE || rlp([chain_id, nonce, max_priority_fee_per_gas, max_fee_per_gas, Gas_limit, to, value, data, access_list, max_fee_per_data_gas, blob_versioned_hashes]))

署名 = secp256k1_sign(ダイジェスト、秘密鍵)

y_parity, r, s = extract_signature_parts(署名)ヘッドエクステンション

EIP-4844 は、2 つの新しい 64 ビット符号なし整数フィールド、data_gas_used および extra_data_gas を導入することにより、現在のヘッダー エンコーディングを拡張します。 data_gas_used フィールドは、ブロック内のトランザクションによって消費されたデータ ガスの総量を示します。 extra_data_gas フィールドは、目標値を超えるデータ ガスの累積値を追跡します (最小値は 0)。ターゲット データ ガス消費量を超えるブロックは、excess_data_gas の値を増加させますが、ターゲット値を下回るブロックは、その値を減少させます。

ヘッダーコード:

バージョンハッシュを取得するためのオペコード

EIP-4844 では、バージョン付きハッシュを取得するために、BLOBHASH と呼ばれる新しいオペコード (オペコード バイトとして HASH_OPCODE_BYTE を使用) が導入されています。このオペコードは、スタックからビッグ エンディアンの uint256 インデックスを読み取り、インデックスが blob_versioned_hashes リストの範囲内にある場合は、それを tx.blob_versioned_hashes[index] に置き換えます。それ以外の場合、インデックスはゼロ値のバイト 32 に置き換えられます。このオペコードによって消費されるガスは、HASH_OPCODE_GAS によって定義されます。

BLOBHASH オペコード:

BLOBHASH オペコード:

ドット評価プリコンパイル

KZG 証明を検証するための新しいプリコンパイルを POINT_EVALUATION_PRECOMPILE_ADDRESS に導入しました。この証明は、Promise によって表される BLOB が特定の時点で指定された値に評価されることを示しています。このプリコンパイルは、POINT_EVALUATION_PRECOMPILE_GAS コストで実行され、提供された versioned_hash とコミットメントの関連付けを検証し、コミットメント、ポイント、および証明の値を使用して KZG 証明を検証します。

pip 評価プリコンパイル:

def point_evaluation_precompile(入力: バイト) -> バイト:

versioned_hash = 入力[:32]

z = 入力[32:64]

y = 入力[64:96]

コミットメント = 入力[96:144]

証明 = 入力[144:192]

assert kzg_to_versioned_hash(コミットメント) == versioned_hash

アサート verify_kzg_proof(コミットメント、z、y、証明)

return Bytes(U256(FIELD_ELEMENTS_PER_BLOB).to_be_bytes32() + U256(BLS_MODULUS).to_be_bytes32())ガスの計算

EIP-4844 では、通常のガスとは独立した新しいタイプのデータ ガスが導入されています。 EIP-1559 と同様に、データ ガスは独自の宛先ルールに従います。 extra_data_gas ヘッダー フィールドには、データ ガス価格の計算に必要な永続データが格納されます。現在、BLOB 価格のみがデータ ガスを使用します。

ガス計算式:

data_fee = calc_data_fee(ヘッダー, 送信)

total_data_gas = get_total_data_gas(tx)

data_gasprice = get_data_gasprice(ヘッダー)

calc_data_fee(ヘッダー, tx) = get_total_data_gas(tx) * get_data_gasprice(ヘッダー)

get_total_data_gas(tx) = DATA_GAS_PER_BLOB * len(tx.blob_versioned_hashes)

get_data_gasprice(header) = fake_exponential(MIN_DATA_GASPRICE、header.excess_data_gas、DATA_GASPRICE_UPDATE_FRACTION)コンセンサス層の検証

get_data_gasprice(header) = fake_exponential(MIN_DATA_GASPRICE、header.excess_data_gas、DATA_GASPRICE_UPDATE_FRACTION)コンセンサス層の検証

コンセンサス層では、BLOB は参照されますが、ビーコン ブロック内で完全にはエンコードされていません。代わりに、「バイパス」形式で伝播します。コンセンサス レイヤーは、BLOB の可用性を確保し、更新されたビーコン ブロックの処理、ビーコン ブロック タイプと新しい BLOB バイパスの伝播と同期、および関連付けられた BLOB バイパスを持つビーコン ブロックの生成を処理します。

実行層の検証

実行層は、excess_data_gas の更新、BLOB トランザクションの十分な残高、少なくとも 1 つの BLOB の存在、バージョン管理された BLOB ハッシュの検証、現在のデータ ガス価格が満たされていることの確認、総データ ガス消費量の追跡、各データ ガス消費量の追跡など、ブロックの有効な条件を強制します。ブロックの最大データガス制限。

通信網

BLOB トランザクションには、PooledTransactions と BlockBodies という 2 つのネットワーク表現があります。 PooledTransactions は、EIP-2718 TransactionPayload、BLOB、コミットメント、プルーフなどのラッパー形式を使用します。これらの要素は、BLOB トランザクションを検証するために必要なデータをカプセル化します。コンテンツ取得応答の BlockBodies は、標準の EIP-2718 BLOB トランザクション TransactionPayload 形式に従います。

ノードは、BLOB トランザクションをピアに自動的にブロードキャストしません。代わりに、これらのトランザクションは NewPooledTransactionHashes メッセージを使用して通知され、GetPooledTransactions を使用して手動でリクエストできます。

結論は

EIP-4844 は完全なシャーディングに向けた重要なステップであり、ロールアップにアドホック スケーリングを提供するというイーサリアムの目標と一致しています。 EIP-4844 では、最終的なシャーディング仕様で期待される形式に準拠する BLOB トランザクションを導入することで、ロールアップをスロットあたり 0.375 MB までスケールアップできます。システムの使用が限定されている間、料金を低く抑える独立した料金市場を確立します。

EIP-4844 の設計は、結果の達成と将来の開発の負担の軽減のバランスをとります。これにより、新しいトランザクション タイプ、実行レイヤー ロジック、コンセンサス相互検証、ビーコン ブロック ロジック、BLOB の適応型独立ガス価格設定など、完全なシャーディングの実装に必要な作業が大幅に進歩します。

完全なシャーディングを可能にするためのさらなる作業には、2D サンプリング拡張機能、データ可用性サンプリングの実装、提案者と構築者の分離、バリデーターの管理証明要件が含まれます。

また、EIP-4844 は、ガス価格の更新ルールを主要な基本料金計算に適用するなど、将来のプロトコルの強化とクリーンアップへの道も開きます。

コメント

全てのコメント

Recommended for you