本文へ移動

EIP-1559 ベースフィー:計算式、上限、取引コスト

イーサリアムが親ブロックの Gas 使用量から各ブロックの EIP-1559 ベースフィーを算出する方法、手数料上限が実効価格を決める仕組み、取引コストの検証方法を解説します。

更新日

教育目的の参考情報であり、投資助言ではありません。投資により損失が生じる可能性があります。

直接の答え

EIP-1559 ベースフィーは、イーサリアムのブロックで実行 Gas の各単位に対してプロトコルが設定する最低価格です。親ブロックの Gas 使用量が目標を上回ると上昇し、下回ると低下し、目標と等しければ変わりません。消費した Gas に対するベースフィーは、バリデータに支払われずバーンされます。

各ブロックには単一の base_fee_per_gas があり、そのブロックの取引が実行される前に確定しています。イーサリアムの弾力性乗数 2 では、目標はブロック Gas 上限の半分です。これにより短期的な需要急増を Gas 上限まで吸収しつつ、調整規則が平均使用量を目標へ戻します。

タイプ 2 取引は max_fee_per_gasmax_priority_fee_per_gas を指定します。前者は Gas の各単位当たりの総価格を、後者はバリデータへのチップを制限します。高い上限が自動的に全額請求されるわけではなく、送信者は実際に消費した Gas について、ブロックのベースフィーと許容されたチップだけを支払います。

ネットワーク手数料
0.000462 native
法定通貨換算
$1.39
ベース手数料
22 gwei

結果は教育用の概算です。明示されない限り、取引所ルール、税、遅延、オラクル動作、固有のプロトコル条件は含みません。

仕組み

1. 次のブロックのベースフィーを導出する

B を親ブロックのベースフィー、G をその Gas 使用量、T = parent gas limit / 2 を Gas 目標とします。イーサリアムは整数演算を適用します。

  • 目標と等しい場合:G = T なので B_next = B
  • 目標を上回る場合:B_next = B + max(floor(B * (G - T) / T / 8), 1 wei)
  • 目標を下回る場合:B_next = B - floor(B * (T - G) / T / 8)

満杯の親ブロックでは G = 2T となるため、この段階の上昇率は最大 12.5% です。空の親ブロックでは最大 12.5% 低下します。最小上昇幅 1 wei は、整数除算によって目標超過時の増分がゼロへ丸められる場合にだけ意味を持ちます。

2. 取引の手数料上限を適用する

ブロックに含まれるタイプ 2 取引の実効チップと実効価格は次のとおりです。

  • effective_priority_fee = min(max_priority_fee_per_gas, max_fee_per_gas - base_fee_per_gas)
  • effective_gas_price = base_fee_per_gas + effective_priority_fee
  • transaction_fee = gas_used * effective_gas_price

max_fee_per_gas < base_fee_per_gas の場合、取引はブロックに含められません。最大手数料の上限では要求したチップを確保できない場合、実効チップが引き下げられます。ベースフィー部分はバーンされ、優先手数料部分はブロックの手数料受取先へ支払われます。

3. レシートを照合する

取引を含むブロックから baseFeePerGas を、レシートから gasUsedeffectiveGasPrice を読み取ります。gasUsed * effectiveGasPrice が実行手数料による残高変化と一致するか確認します。取引の Gas 上限のうち未消費分には課金されず、max_fee_per_gas までの未使用余地も別の支払いではありません。

計算例

親ブロックの目標が 15,000,000 gas、使用量が完全な 30,000,000 gas 上限、ベースフィーが 30 gwei だとします。最大変化は 30 gwei * 12.5% = 3.75 gwei なので、次のブロックのベースフィーは 33.75 gwei です(ここでは 1 wei 未満の整数丸めだけを無視します)。

次に、そのブロックの単純送金が 21,000 gas を使い、max_fee_per_gas = 50 gweimax_priority_fee_per_gas = 2 gwei を設定したとします。

  • 実効優先手数料:min(2, 50 - 33.75) = 2 gwei
  • 実効 Gas 価格:33.75 + 2 = 35.75 gwei
  • 実行手数料の合計:21,000 * 35.75 = 750,750 gwei = 0.00075075 ETH
  • バーンされるベースフィー:21,000 * 33.75 = 708,750 gwei = 0.00070875 ETH
  • バリデータへのチップ:21,000 * 2 = 42,000 gwei = 0.000042 ETH

50 gwei は最大手数料の上限であり、請求価格ではありません。取引が含まれる前にベースフィーが 50 gwei を超えると、ベースフィーが下がるか、送信者がより高い上限の取引に置き換えるまで対象外です。

リスク

  • ウォレットの見積もりは直近のブロックに基づくため、需要ショックで取引が含まれる前にベースフィーが上がることがあります。
  • 低い max_fee_per_gas は取引を保留状態にし、不要に高い上限は通常全額支払われなくても承認の上限を広げます。
  • 実行がリバートしても Gas は消費されるため、アプリ操作に失敗してもベースフィーのバーンとチップの支払いが発生し得ます。
  • 高いチップは取引が含まれる優先度を高める可能性がありますが、位置、実行成功、ファイナリティは保証しません。
  • ウォレット、RPC、エクスプローラー、ノードのデータは古いか不整合な場合があります。ブロックとレシートを合わせて確認してください。
  • イーサリアム・メインネットのパラメータが、すべてのロールアップや EIP-1559 類似チェーンにそのまま適用されるわけではありません。弾力性、分母、最低手数料、追加手数料の構成は異なり得ます。
  • ベースフィーのバーンは ETH 供給の減少を保証しません。純供給はプロトコル発行量と総バーン量にも左右されます。
  • 取引の gas_limit、ブロック Gas 上限、Gas 目標、gas_used、Gas の各単位当たりの価格、総手数料を混同しないでください。これらは別の量です。

よくある誤解

誤解 1:現在のブロックが自分のベースフィーを決める

親ブロックの Gas 使用量が次のブロックのベースフィーを決めます。現在のブロックの取引は、そのヘッダーですでに確定したベースフィーに従います。

誤解 2:目標を超えるブロックは必ずベースフィーを 12.5% 上げる

変化幅は目標からの距離に比例します。標準的なイーサリアムのパラメータでは、完全な Gas 上限に達したときの最大変化幅が 12.5% です。

誤解 3:max_fee_per_gas は常に全額支払われる

これは上限です。実効価格はブロックのベースフィーと許容された優先手数料の合計で、この上限に制約され、実際に使った Gas を掛けます。

誤解 4:バリデータが Gas 手数料の全額を受け取る

ベースフィー部分はバーンされます。バリデータの実行レイヤー手数料収入は実効優先手数料であり、実効 Gas 価格の全額ではありません。

誤解 5:ベースフィーのバーンで各取引がデフレを起こす

取引は ETH をバーンしますが、一定期間の ETH 総供給が減るかどうかは、総バーン量と総発行量の比較で決まります。

関連トピック

出典

ナビゲーション

Wiki を検索...