paint-brush
多次元 EIP-1559 でイーサリアムのガス効率を最適化する方法@2077research
2,770 測定値
2,770 測定値

多次元 EIP-1559 でイーサリアムのガス効率を最適化する方法

2077 Research11m2025/02/18
Read on Terminal Reader

長すぎる; 読むには

多次元 EIP-1559 は、リソース コスト (計算、ストレージ、帯域幅) を単一のガス ユニットにまとめるのではなく、分離することで、Ethereum のガス効率を最適化するための提案されたソリューションです。EIP-4844 に触発されたこのモデルは、Ethereum の容量をより有効に活用し、混雑を軽減することを目的としています。計算やストレージなどのリソースに個別の価格設定を導入することで、より効率的なリソース割り当てとスケーラビリティが可能になります。ただし、複雑さ、リソースの相互依存性、プロトコルの変更などの課題により、完全な実装は困難です。よりシンプルな代替案は、ガスをメイン ユニットとして保持しながら、リソースの使用状況を区別することです。これは EIP-7623 に見られ、完全な分離なしで多次元価格設定への一歩となります。
featured image - 多次元 EIP-1559 でイーサリアムのガス効率を最適化する方法
2077 Research HackerNoon profile picture

多次元 EIP-1559 がリソース コストを分離し、スケーラビリティを強化し、ネットワーク使用率を改善することで、Ethereum のガス効率を最適化する方法を探ります。

導入

多次元 EIP-1559 は、2022 年 1 月に Vitalik Buterin がEthResearch の投稿で紹介した後、研究トピックとして登場しました。ロールアップ、MEV、データ可用性ソリューションなどの他の研究トピックほど注目されていませんが、活発に研究されている分野です。


Guillermo Angeris 氏Theo Diamandis 氏が最近発表した研究論文では、多次元手数料市場の理論的基礎と堅牢性について検討し、その構築方法を提案しています。


実際、多次元手数料市場は現在すでに使用されています。2024年3月にEIP-4844が採用されたことで、イーサリアムはブロブガスを導入し、ブロブトランザクション用の別個の手数料市場を作成しました。これは、単一次元ガスモデルから2次元手数料市場への移行を示しました。


ただし、トランザクション リソースの使用を最適化するには、リソース ディメンションの数を増やす必要があります。多次元手数料市場を拡大することは、多様なリソースをより効率的に管理する Ethereum の能力を向上させるスケーラビリティ ソリューションです。


この記事では、多次元ガス料金市場の重要性と仕組みを探り、それがどのように Ethereum のスケーラビリティとリソース割り当てを強化するかを説明します。


まず、多次元ガス価格設定とは一体何なのかを詳しく見ていきましょう。

多次元ガス価格設定とは何ですか?

多次元ガス価格設定は、最近イーサリアムに実装されたガス制限の増加のような L1 スケーリング ソリューションです。イーサリアムの総トランザクション容量を直接増加させることはありませんが、既存の制限内でリソースの使用率を最大化します。これにより、より多くの分散型アプリケーション (DApps) とユーザーが、不要な混雑なしにイーサリアムのベース レイヤーでトランザクションを実行できるようになります。


Ethereum は現在、計算、ストレージ、帯域幅などのすべてのリソース コストを 1 つのガス ユニットにまとめています。代わりに、多次元ガス価格設定ではこれらのリソースを分離し、Ethereum のセキュリティと分散化を維持しながら割り当てを最適化します。



これがなぜ有益なのかを理解するために、現実世界の例えを考えてみましょう。

フィットネスクラブの例え

有酸素運動用のトレッドミル、ウェイトトレーニング用のスクワットラック、一般的な使用のためのダンベルなど、さまざまな設備を備えたフィットネスクラブを想像してください。会員の好みはそれぞれ異なります。トレッドミルのみを使用する人もいれば、スクワットラックを重視する人もいれば、両方を交互に使用する人もいます。


ジムが会員総数に基づいて定額の入場料を請求するシステムでは、非効率が生じます。トレッドミルが混雑しているのにスクワットラックがあまり使われていない日には、全員の定額料金が急騰し、ウェイトトレーニングをする人は、自分が引き起こしていない混雑の費用を支払わなければなりません。同様に、スクワットラックの需要が高いのにトレッドミルが空いている場合、有酸素運動をする人は不必要な費用を負担することになります。この単一次元の価格設定では、ジムの収容能力が最も混雑しているリソースに結び付けられ、他の施設が十分に活用されない状態になります。これは単一次元の価格設定モデルと見なすことができます。


ここで、ジムが多次元の価格設定モデルを導入したと想像してください。定額料金ではなく、トレッドミルとスクワット ラックを個別に課金します。有酸素運動ユーザーとウェイト トレーナーは互いの使用状況の影響を受けなくなり、ジムはこれらのリソースを個別に管理することでキャパシティを最適化できます。よりバランスのとれた使用により、ジムは全体的な混雑を増やすことなく、より多くのユーザーを収容できます。


このアプローチは、公平性と効率性を高めるためにリソースを別々の市場に分割するという、多次元価格設定の本質を示しています。ただし、機器ごとに価格を分けるなど、細分化が多すぎると、不要な複雑さが生じ、システムが使いにくくなる可能性があります。そのため、実際には、フィットネス クラブのほとんどが入場料を固定し、単一次元の価格設定モデルを主張しています。


トレッドミルとスクワットラックに別々の料金を設定することで混雑を軽減できるのと同じように、イーサリアムは計算やデータ使用量などのリソースに別々の市場を利用できます。

これがイーサリアムにどう当てはまるか

EIP-4844 以前、Ethereum は単一次元のガス価格設定モデルを使用していました。このモデルでは、計算、ストレージ、帯域幅を含むすべてのトランザクション リソースが、ガスという単一のメトリックにまとめられていました。このモデルは、フィットネス クラブの例えと同様に、本質的に非効率性につながります。

  • 計算などの 1 つのリソースが頻繁に使用されると、他のリソースが十分に活用されていない場合でも、すべてのユーザーの料金が上昇します。
  • 特定のリソースに余剰容量がある場合、厳格なガス制限により未使用のままになります。


この非効率性の重要な例は、ロールアップが以前にトランザクションデータを保存していた方法です。EIP-4844 以前は、ロールアップはトランザクションデータを Ethereum のコールデータフィールドに投稿し、コールデータの価格設定に基づいてガス料金を支払っていました。しかし、2024 年 3 月に EIP-4844 が採用されたことで、ロールアップはブロブガスと呼ばれる別のユニットを使用するようになり、ブロブと呼ばれる専用の構造にデータを保存できるようになりました。


EIP-4844 ではロールアップ データ用の 2 番目のガス ディメンション (Blob ガス) が導入されましたが、その範囲は限定されています。Blob ガスは Blob トランザクションにのみ適用されます。EVM 実行、呼び出しデータ、ストレージなどのその他のトランザクション コンポーネントは、依然として単一のガス モデルに基づいて価格設定されます。


Ethereum トランザクションは依然として複数の独立したリソースを消費しますが、すべてがガスで価格設定されており、非効率的な最悪のシナリオにつながります。


たとえば、EVM 実行で単一のトランザクションがガス制限 (現在 36M) 全体を消費するとします。Ethereum ノードがより大きなデータ サイズを安全に処理できたとしても、ガスは複数の独立した制限ではなく単一の制約として扱われるため、トランザクションは追加データを伝播できません。


この問題は、イーサリアムのブロックサイズの分布を見るとさらに明らかになります。2024年7月から2024年12月までの平均ブロックサイズは約73KBで、ほとんどのブロックは100KBを大きく下回っています。ただし、ブロック#21419230では、最大ブロックサイズが1.48MBに達し、平均の20倍の大きさになりました。



多次元ガス価格設定では、各リソースを個別に扱うことでこの問題に対処します。計算、ストレージ、帯域幅には、それぞれ別の価格設定と制限が適用されます。この分離により、1 つのリソースがガス コストを支配するボトルネックを防ぎ、セキュリティ リスクを増大させることなく容量を最適化します。


Vitalik Buterin 氏の記事では、分離すべきいくつかの重要なリソース タイプが提案されています。これらの候補リソースと、それらを分離することで Ethereum のスケーラビリティが向上する理由について見ていきましょう。

多次元ガス価格設定を通じて分離できるリソースは何ですか?

多次元の料金市場を設計する場合、リソースの独立性は最も重要な要素の 1 つです。相互依存度の高い 2 つのリソースを別々の料金市場に配置すると、非効率性、価格設定の誤り、不要な複雑さが生じる可能性があります。たとえば、計算 (CPU サイクル) とメモリ使用量 (RAM) が別々に価格設定されていても、一方が他方に依存している場合、ユーザーはコストを相互にシフトすることでシステムを操作し、最適ではない価格設定につながる可能性があります。


したがって、Ethereum リソースを個別のガス市場に分類する前に、ネットワーク経済を歪めることなく個別に価格設定できるほど独立しているリソースを最初に特定する必要があります。


本質的に、Ethereum ノードは複数のリソースを並行して管理するコンピュータです。従来のハードウェア リソースは、個別に最適化できる個別のコンポーネントに分類されます。

  • 計算 (CPU) - ADD、MULTIPLY、スマート コントラクト実行などの操作を実行します。
  • メモリ I/O (RAM) – 一時データの読み取り/書き込み。実行速度に影響します。
  • ストレージ I/O (SSD/HDD 読み取り/書き込み) – 永続的な状態アクセス。長期的なストレージ効率に影響します。
  • ストレージの増加 (ディスク容量の増加) - 保存されたデータの拡張により、ノードの持続可能性に影響します。
  • 帯域幅 (ネットワーク データ転送) - トランザクションとブロック データを送信する能力。


ここでの重要な原則は並列化可能性です。システムがこれらのリソースを独立して処理できる場合、価格設定のためにそれらを分離することは意味があります。これを Ethereum に適用すると、Ethereum ノードが不要な依存関係なしに可能な限り効率的に動作できるように Ethereum リソースを分類することを目指す必要があります。


コンピュータとは異なり、イーサリアムの操作は1つのカテゴリにきちんと収まりません。多くの操作は複数のリソースを同時に消費するため、それらを完全に分離することは困難です。たとえば、

  • トランザクション呼び出しデータは、ネットワークを介して送信する必要があるため、主に帯域幅を消費します。また、ブロックチェーンに永続的に残るため、ストレージの増加にも寄与します。
  • SLOAD (ストレージ読み取り) はストレージ I/O を使用しますが、ノードがステートレスの場合は、フルノードから状態証明を取得するための帯域幅も必要になります。
  • ストレージ書き込み (SSTORE) は、Ethereum の永続的な状態を増加させ、長期的なストレージの肥大化につながるため、読み取りよりもコストがかかります。


これらの相互依存性により、すべてのリソースを独自の価格市場に分離することは非現実的です。代わりに、Ethereum のスケーラビリティに直接影響を与える最も重要なボトルネックに焦点を当てる必要があります。


Ethereum の運用には複数のリソースが関係しますが、現在議論されている多次元価格設定の候補は次のとおりです。

  • 計算 (EVM 実行) - ADD や MULTIPLY などの単純な操作は純粋な CPU タスクです。

  • ストレージ I/O (SSTORE/SLOAD) – Ethereum の状態肥大化に影響を与える永続的な読み取りと書き込み。

  • トランザクション コールデータ – 主に帯域幅を使用しますが、ストレージにも貢献します。

  • 監視データ - 特にステートレス クライアントの場合、帯域幅とストレージ I/O に影響します。



これらのカテゴリをコンピュータ システムがリソースを管理する方法と一致させることで、Ethereum の料金体系をより直感的で効率的なものにすることができます。


理論上は、イーサリアムのリソースをさらに細かいカテゴリに細分化することもできますが、そうすると複雑さが増すだけで、それに見合ったメリットは得られません。代わりに、現在のイーサリアムのパフォーマンスを制限している主要なボトルネックに焦点を当てるべきです。


たとえば、トランザクションの呼び出しデータのサイズは最大ブロック サイズを直接決定するため、Ethereum のコンセンサス レイヤーにとって重大なボトルネックとなります。さらに、フル ノードの実行コストが高くなりすぎないようにストレージの増加を制御し、分散化を維持する必要があります。


したがって、あまり多くの次元を導入するのではなく、Ethereum の効率性を支配するいくつかの重要なリソースに焦点を当てることが現実的です。


これらの主要なリソースが特定されると、多次元価格設定を実現する 2 つの異なる方法、つまり個別の料金市場または修正された単一ガス ユニットを検討できます。

多次元ガス価格設定の実装 1: 各リソースの個別の料金市場

多次元ガス価格設定を実装する 1 つの方法は、各リソースに独立した料金市場を作成し、より効率的な割り当てを確保することです。この方法は、ロールアップ データ ストレージ用の個別のユニットとして BLOB ガスを導入した EIP-4844 を通じてすでに部分的に実装されています。


この概念は、状態の成長や証人サイズなどの他のリソースにも拡張でき、Ethereum はすべてのコストを単一のガス メトリックにまとめるのではなく、各リソースの制限を個別に管理できます。


このアプローチを形式化するために、bi をリソース i の基本料金、gi をトランザクションでのリソース i の消費量、ki​ を単一ブロック内のリソース i の制限として定義しましょう。


総トランザクション手数料は ibi*gi​ として計算され、ブロックはすべてのリソース i についてすべての i に対して all txbi ki という制約を満たす必要があります。現在の EIP-1559 モデルと同様に、bi は以前のブロックの使用状況に基づいて動的に調整されます。Ethereum は、リソース消費を規制するために指数関数的な価格設定モデル (BLOB ガスに使用されるもの) または別の手数料更新メカニズムを採用できます。


個別の料金市場モデルには、重要な利点があります。独立した上限設定を可能にすることで各リソースを正確に制御できるため、現在のガス モデルでの非効率的な最悪ケースの推定を回避できます。また、不要な混雑を防ぎ、1 つのリソースに対する需要が高まっても、関連のない操作の料金が不釣り合いに増加しないようにします。さらに、このアプローチでは、間接的なガス価格調整に頼ってリソース消費を規制するのではなく、1 MB または状態の増加に上限を設定するなど、データ伝播などの要素に直接制限を適用することで、ネットワークの使用を最適化します。


個別の手数料市場はリソースの割り当てを改善しますが、リソースを細かく分割しすぎると、大幅な複雑さが生じます。リソースの種類ごとに独立した市場を作成するには、プロトコルの大幅な変更が必要になり、Ethereum のベースレイヤーが不安定になる可能性があります。DApp とウォレットも、複数の手数料市場を追跡し、各リソースの基本手数料の変動を予測する必要があるため、追加の課題に直面し、コスト効率が高くタイムリーなトランザクションの組み込みが難しくなります。


1 つのリソースで予測できない価格高騰が発生すると、別の問題が発生します。ウォレットが他のすべてのリソースの手数料を最適化したとしても、1 つの手数料市場での急激な高騰により、トランザクションがブロックに含まれなくなる可能性があり、ユーザーにとって不確実性と非効率性につながります。


バリデーターも同様の課題に直面しています。バリデータの目標は、各リソース制限の制約内に留まりながら収益を最大化することです。独立したリソース市場の数が増えるにつれて、この状況は複雑な最適化問題となり、最も収益性の高いトランザクションを選択することがますます困難になる多次元ナップサック問題に似たものになります。


最大抽出可能価値 (MEV) の収益はバリデーターの利益に大きく貢献し、優先手数料は意思決定においてそれほど重要ではないため、この複雑さは大きな問題ではないと主張する人もいます。ただし、各リソースに対して完全に独立した手数料市場を実装することの全体的な実現可能性は未解決の研究課題であり、効率、使いやすさ、ネットワークの安定性の間のトレードオフをさらに調査する必要があります。

多次元ガス価格設定の導入2:ガスをメインユニットとして維持

手数料市場を完全に分離するより簡単な方法は、手数料の計算方法を調整しながらガスを主要な単位として保持することです。各リソースに新しい単位を導入する代わりに、総取引手数料は最も多くのガスを消費するリソースによって決定されます。


リソース i のガスコストを ci 、使用されたリソースの量を gi と定義します。トランザクション手数料は次のように決定されます。

(c1*g1、c2*g2、c3*g3、...)


リソース全体のガス使用量を合計する代わりに、トランザクションは消費する最も高価なリソースに基づいてのみ課金されます。


たとえば、EVM 実行に 50,000 ガス、通話データに 200,000 ガスを消費するトランザクションを考えてみましょう。このモデルでは、通話データが主要なリソースであるため、トランザクション手数料は 200,000 ガスとなり、実行コストは実質的に無視されます。


この方法は価格設定を簡素化しますが、潜在的な問題も生じます。

  • 公平性に関する懸念: 通話データに 200K ガス、実行に 50K ガスを使用するトランザクションは、通話データに 200K ガス、実行に 150K ガスを使用するトランザクションと同じ手数料を支払います。これにより、複数のトランザクションを戦略的に組み合わせてコストの利点を活用するバンドルが促進されます。その結果、洗練されたオプティマイザーが恩恵を受ける可能性があり、一般ユーザーや DApp にとってトランザクション コストが予測しにくくなります。
  • リソースの非効率性: 最も消費量の多いリソースのみが問題となるため、ユーザーは追加コストなしで他のリソースを故意に過剰に使用する可能性があります。前の例では、最大 150K ガスの EVM 実行には追加料金がかからず、コストを増やすことなくネットワークを膨張させる無駄なトランザクションが作成されます。


こうした懸念にもかかわらず、このアプローチの主な利点はそのシンプルさです。ガスを普遍的な価格設定単位として維持することで、Ethereum は複数のリソース単位を管理する複雑さを回避しながら、異なるタイプのリソース使用を区別します。


Pectra アップグレードで実装されるEIP-7623は、同様のアプローチを採用していますが、わずかに変更されています。これは、通話データの多いトランザクションに二重の価格設定メカニズムを導入し、通話データの使用量が不釣り合いに多いトランザクションにはより高い料金が支払われるようにします。完全な多次元ガス価格設定モデルではありませんが、これは Ethereum のガス構造を全面的に見直すことなく、リソースの差別化を改善するための一歩となります。

EIP-7623 は多次元ガス価格設定とどのように関連していますか?

EIP-7623 では、特にコール データの使用量が実行ガスの使​​用量を大幅に上回る場合に、データ可用性 (DA) トランザクションの料金が高くなります。このメカニズムにより、過剰なコール データを消費するトランザクションには高い料金が支払われ、新しい価格設定単位を必要とせずに不要なデータ ストレージが抑制されます。


EIP-7623 のガス計算の簡略版は次のとおりです。

合計ガス使用量の最大値(4tokens_in_calldata + evm_gas_used、10*tokens_in_calldata)

さらに単純化すると次のようになります。

合計ガス使用量 4tokens_in_calldata + 最大値(evm_gas_used、6*tokens_in_calldata)


この式は、実行ガスとコールデータ ガスの最大値を取ることで、ガスの総使用量を決定します。トランザクションが主にコール データを使用する場合、実行コストの削減によって補助されるのではなく、コール データに対してより高い料金が請求されます。これにより、過剰なデータ ストレージが抑制され、計算量の多いトランザクションが不当にペナルティを受けないようにすることができます。


EIP-7623 は、実行ガスと呼び出しデータ ガスの暗黙的な区別を導入し、ネットワーク リソースのよりバランスの取れた割り当てを促進するため、多次元ガス価格設定の簡略化されたバージョンです。

結論

多次元ガス価格設定は、経済性や UI/UX の強化と見なされることが多いですが、リソース割り当てを最適化するための基本的なスケーラビリティ改善です。ただし、その実装には、主にプロトコル レイヤーの大幅な変更が必要であり、リソース タイプを完全に分離することが難しいため、大きな課題があります。そのため、高次元ガス価格設定がすぐに採用される可能性は低いでしょう。


これらの課題にもかかわらず、多次元ガス価格設定は、リソース使用率の向上、ネットワーク セキュリティの強化、持続可能なノード操作など、大きなメリットをもたらします。Ethereum の計算能力とストレージ容量をより効率的に使用できるようにすることで、分散化とセキュリティを維持しながら Ethereum を拡張するための現実的な道筋が示されます。


この記事は元々 ここ