QRコードをスキャンしてダウンロードしてください。
BTC $70,156.67 -0.87%
ETH $2,063.19 -0.74%
BNB $651.64 -0.50%
XRP $1.42 -4.56%
SOL $81.67 -4.53%
TRX $0.2795 -0.47%
DOGE $0.0974 -3.83%
ADA $0.2735 -4.22%
BCH $454.89 -0.99%
LINK $8.64 -2.97%
HYPE $28.98 -1.81%
AAVE $122.61 -3.42%
SUI $0.9138 -6.63%
XLM $0.1605 -4.62%
ZEC $260.31 -8.86%
BTC $70,156.67 -0.87%
ETH $2,063.19 -0.74%
BNB $651.64 -0.50%
XRP $1.42 -4.56%
SOL $81.67 -4.53%
TRX $0.2795 -0.47%
DOGE $0.0974 -3.83%
ADA $0.2735 -4.22%
BCH $454.89 -0.99%
LINK $8.64 -2.97%
HYPE $28.98 -1.81%
AAVE $122.61 -3.42%
SUI $0.9138 -6.63%
XLM $0.1605 -4.62%
ZEC $260.31 -8.86%

EIP-7706 を詳述し、最新の Ethereum のガスメカニズムを整理する。

Summary: Vitalikは2024年5月13日にEIP-7706提案を発表し、既存のGasモデルに対する補完案を提案しました。calldataのガス計算を独立させ、Blobガスのようなベースフィーの価格設定メカニズムをカスタマイズし、L2の運用コストをさらに削減しました。
マリオがWeb3を見る
2024-05-15 15:08:44
コレクション
Vitalikは2024年5月13日にEIP-7706提案を発表し、既存のGasモデルに対する補完案を提案しました。calldataのガス計算を独立させ、Blobガスのようなベースフィーの価格設定メカニズムをカスタマイズし、L2の運用コストをさらに削減しました。

著者++@Web3Mario++

序文 :Vitalikは2024年5月13日にEIP-7706提案を発表し、既存のGasモデルに対する補完策を提案しました。これは、calldataのgas計算を独立させ、Blob gasに似たbase feeの価格設定メカニズムをカスタマイズすることで、L2の運用コストをさらに削減するものです。関連する提案は2022年2月に提案されたEIP-4844に遡る必要があり、時間が経過しているため、関連資料を調査し、最新のEthereum Gasメカニズムについての概観を提供し、皆さんが迅速に理解できるようにします。

現在サポートされているEthereum Gasモデル------EIP-1559とEIP-4844

最初の設計では、Ethereumは取引手数料を設定するためにシンプルなオークションメカニズムを採用しており、ユーザーは自分の取引に対してガス価格を設定する必要がありました。通常、ユーザーが支払う取引手数料はマイナーに帰属するため、マイナーは経済的最適の原則に基づいて入札の高低に応じて取引のパッキング順序を決定します。これはMEVを無視した場合の話です。当時のコア開発者たちはこのメカニズムが以下の4つの問題に直面していると考えていました:

  • 取引手数料の変動性と取引の コンセンサス コストの不一致 活発な状態にあるブロックチェーンでは、取引のパッキング需要が十分であり、ブロックが容易に満たされることを意味しますが、これはしばしば全体の手数料の変動性が非常に大きいことを意味します。例えば、平均Gas Priceが10 Gweiのとき、ネットワークが1つのブロックにさらに1件の取引を受け入れることによって生じる限界コストは、平均Gas Priceが1 Gweiのときの10倍であり、これは受け入れられません。
  • ユーザーにとって不必要な遅延: 各ブロックにはガスリミットの厳しい制限があり、過去の取引量の自然な変動により、取引は通常数ブロック待たなければなりませんが、これは全体のネットワークにとって非効率的です;つまり、1つのブロックを大きくし、次のブロックを小さくする「緩和」メカニズムが存在しないため、個々のブロックの需要の差を満たすことができません。
  • 価格設定の 非効率性: シンプルなオークションメカニズムの採用により、公正な価格発見の効率が低下し、ユーザーにとって合理的な価格設定が困難になります。これにより、多くのケースでユーザーが高い手数料を支払うことになります。
  • ブロック報酬のないブロックチェーンは 不安定 :マイニングによるブロック報酬を廃止し、単純な手数料モデルを採用すると、多くの不安定性を引き起こす可能性があります。例えば、取引手数料を盗む「姉妹ブロック」のインセンティブを生み出したり、より強力な自己中心的なマイニング攻撃ベクトルを開放したりすることです。

EIP-1559の提案と実行まで、Gasモデルは初めてのイテレーションを迎えました。EIP-1559はVitalikらのコア開発者によって2019年4月13日に提案され、2021年8月5日のロンドンアップグレードで採用されました。このメカニズムはオークションメカニズムを廃止し、Base feeとPriority feeの二重価格モデルを採用しました。Base feeは親ブロックでのガス消費の状況と浮動的かつ再帰的なガスターゲットとの関係に基づいて定量的に計算されます。直感的な効果として、前のブロックでのガス使用状況が予め設定されたガスターゲットを超えた場合、base feeが引き上げられ、ガスターゲットに達しない場合はbase feeが引き下げられます。これにより、供給と需要の関係をより良く反映し、合理的なガスの予測がより正確になり、誤操作による高額なGas Priceが発生することを防ぎます。base feeの計算はシステムによって直接決定され、ユーザーが自由に指定するものではありません。具体的なコードは以下の通りです:

ここで、parentgasusedがparentgastargetより大きい場合、現在のブロックのbase feeは前のブロックのbase feeにオフセット値を加えたものになります。オフセット値はparentbasefeeに前のブロックのガス総使用量とガスターゲットのオフセット量を掛け、ガスターゲットと定数の最大値を取ります。逆の論理も同様です。

さらに、Base feeはマイナーに報酬として分配されるのではなく、直接焼却されるため、ETHの経済モデルはデフレ状態にあり、価値の安定に寄与します。一方、Priority feeはユーザーがマイナーに対して支払うチップに相当し、自由に価格設定できるため、マイナーのソートアルゴリズムがある程度再利用されることが可能です。

2021年に進むにつれて、Rollupの発展が徐々に進展しました。OP RollupやZK Rollupは、L2のデータを圧縮処理した後、calldataを通じてチェーン上にアップロードしてデータの可用性を実現することを意味します。このため、これらのRollupソリューションはL2の最終性を維持する際に非常に大きなGasコストに直面しており、これらのコストは最終的にユーザーに転嫁されるため、その時点でほとんどのL2プロトコルの使用コストは想像以上に低くありませんでした。

同時に、Ethereumはブロックスペースの競争という窮地にも直面しています。各ブロックにはGas Limitが存在し、現在のブロック内のすべての取引のGas消費の合計はこの値を超えてはなりません。現在のGas Limitが30000000であると仮定すると、理論的には30,000,000 / 16 = 1,875,000バイトの制限があります。ここで16はEVMが各calldataバイトを処理するのに必要なGasの単位です。つまり、単一のブロックは最大で約1.79 MBのデータを保持できます。一方、L2ソーターが生成するRollup関連データは通常、データ規模が大きいため、他のメインチェーンユーザーの取引確認と競争し、単一のブロックでパッキングできる取引量が減少し、メインチェーンのTPSに影響を与えます。

この窮地を解決するために、コア開発者たちは2022年2月5日にEIP-4844提案を発表し、2024年第2四半期初頭のDencunアップグレード後に実施されました。この提案はBlob Transactionという新しい取引タイプを提案し、従来のTransactionタイプと比較して、Blob Transactionの核心的な考え方は新しいデータタイプ、すなわちBlob dataを補充することです。calldataタイプとは異なり、blob dataはEVMによって直接アクセスできず、そのハッシュのみがアクセス可能で、VersionedHashとも呼ばれます。また、2つの伴う設計があります。1つは、通常の取引と比較して、blob transactionのGC周期が短く、ブロックデータが過度に膨張しないように保証します。もう1つは、blob dataがネイティブなGasメカニズムを持ち、全体的にEIP-1559に似た効果を示しますが、数学モデルでは自然指数関数を選択し、取引規模の変動に対する安定性が向上します。自然指数関数の傾きも自然指数関数であるため、ネットワークの取引規模がどのような状態にあっても、取引規模が急増する際にblob gasのbase feeがより十分に反応し、取引の活発度を効果的に抑制します。また、この関数には重要な特性があり、横軸が0のとき、関数値は1になります。

basefeeperblobgas = MINBASEFEEPERBLOBGAS * e**(excessblobgas / BLOBBASEFEEUPDATE_FRACTION)

ここで、MINBASEFEEPERBLOBGASとBLOBBASEFEEUPDATEFRACTIONは2つの定数であり、excessblobgasは親ブロックの総blob gas消費とTARGETBLOBGASPERBLOCK定数との間の差によって決まります。総blob gas消費が目標値を超えると、差が正となり、e**(excessblobgas / BLOBBASEFEEUPDATEFRACTION)が1より大きくなり、basefeeperblob_gasが大きくなり、逆に小さくなります。

このように、Ethereumのコンセンサス能力を利用して特定の大規模データの証明を行い、可用性を保証するシナリオでは、低コストで実行でき、ブロックの取引パッキング能力を圧迫することはありません。Rollupソーターの例を挙げると、blob transactionを通じてL2の重要な情報をblob dataに封入し、EVM内で巧妙な設計を利用してversionedHashを用いてチェーン上の検証ロジックを実現できます。

現在のTARGETBLOBGASPERBLOCKとMAXBLOBGASPERBLOCKの設定は、メインネットに制限をもたらします。すなわち、各ブロックの平均処理は3つのblob (0.375 MB) の目標と最大6つのblob (0.75 MB) の制限があります。これらの初期制限は、このEIPがネットワークに与える圧力を最小限に抑えることを目的としており、ネットワークがより大きなブロックでの信頼性を示すにつれて、将来のアップグレードで増加することが期待されています。

実行環境のGas消費モデルの再細分化------EIP-7706

現在のEthereumのGasモデルを明確にした後、EIP-7706提案の目標と実施の詳細を見ていきましょう。この提案はVitalikによって2024年5月13日に提案されました。Blob dataに似て、この提案は特別なデータフィールドに対応するGasモデルを剥離しました。このデータフィールドはcalldataです。そして、関連するコード実装ロジックを最適化しました。

原理的に、calldataのbase fee計算ロジックはEIP-4844のblob dataのbase feeと同じであり、指数関数を用いて親ブロックの実際のガス消費値と目標値の偏差を基に現在のbase feeのスケーリング比率を計算します。

新しいパラメータ設計に注目すべきです。LIMITTARGETRATIOS=[2,2,4]であり、LIMITTARGETRATIOS[0]は実行操作類Gasの目標比率を示し、LIMITTARGETRATIOS[1]はBlob data類Gasの目標比率を示し、LIMITTARGETRATIOS[2]はcalldata類Gasの目標比率を示します。このベクトルは親ブロック内の3種類のガスに対応するガスターゲット値を計算するために使用され、計算ロジックは以下の通りです。すなわち、LIMITTARGETRATIOSを用いてガスリミットを整数除算します:

ここで、gas_limitsの設定ロジックは以下の通りです:

gas_limits[0]は既存の調整公式に従う必要があります。

gaslimits[1]はMAXBLOBGASPER_BLOCKに等しくなければなりません。

gaslimits[2]はgaslimits[0] // CALLDATAGASLIMIT_RATIOに等しくなければなりません。

現在、gaslimits[0]は30000000であり、CALLDATAGASLIMITRATIOは4に設定されているため、現在のcalldata gas targetは約30000000 // 4 // 4 = 1875000となります。また、現在のcalldata gas計算ロジックによれば、各非ゼロバイトは16 Gasを消費し、ゼロバイトは4 Gasを消費します。仮にあるcalldata内の非ゼロバイトとゼロバイトの分布がそれぞれ50%を占めるとすると、平均して1バイトのcalldataを処理するのに10 Gasを消費することになります。したがって、現在のcalldata gas targetは約187500バイトのcalldataデータに対応し、現在の平均使用量の約2倍となります。

このようにすることで、calldataがガスリミットに達する確率を大幅に減少させ、経済モデルによってcalldataの使用量を比較的一定の状態に保つことができ、calldataの乱用を防ぐことができます。このような設計はL2の発展を促進し、blob dataと組み合わせることでソーターのコストをさらに削減します。

関連タグ
warnning リスク警告
app_icon
ChainCatcher Building the Web3 world with innovations.