ガス・手数料メカニズム(EIP-1559)
手数料の高騰と過払いを減らす仕組みを原理から理解できる。ベースフィーのバーンと需給調整、ブロックの弾力性、チップの役割を辿り、手数料を根拠を持って予測・設定できるようになる。
- 1.ガスは計算資源の計量単位で、手数料は gasUsed×(baseFee+priorityFee) で決まる。EIP-1559 は従来のオークション(gasPrice の入札)を、プロトコルが算出するベースフィー+任意のチップに置き換えた。
- 2.ベースフィーは直前ブロックの使用量から決定的に更新される。目標(ガス上限の半分)を超えると上げ、下回ると下げ、1ブロックあたり最大±12.5%。混雑の指標がプロトコル内で自動調整される。
- 3.ベースフィーは検証者に渡らずバーン(焼却)される。これにより料金操作の動機を絶ち、需要が供給を長期に上回る局面ではネット供給が減る。取り込み順の入札はチップ(優先料)が担う。
ガスとは何を計っているのか
ブロックチェーン(分散台帳)では、あるトランザクションを実行した結果を全ノードがビット単位に同一に再現できなければ合意(台帳の一致)が崩れます。裏を返せば、送られてきた計算は誰かが実際に全ノード分の資源を費やして実行するということです。この消費量を測る単位がガスです。加算のような軽い演算は数ガス、ストレージへの新規書き込みのように全ノードの永続状態を恒久的に肥大化させる操作は 2 万ガス級、といった具合に、各オペコードへ固定コストが割り当てられます(オペコード計量の詳細は スマートコントラクトとEVM を参照)。
ここで区別すべきは**ガス量(gas)と価格(gas price)**です。ガス量は「その計算にどれだけ資源が要るか」という物理量で、コード内容から一意に決まります。価格は「1ガスあたり幾ら払うか」という市場が決める値です。支払う手数料は概念的に次式で表せます。
手数料 = gasUsed × (実効ガス価格)
gasUsed … 実行で消費したガス量(コードで決まる物理量)
実効ガス価格 … 需給で決まる 1 ガスあたりの単価
有限なブロック空間を無料で使わせれば、悪意なくとも肥大化し、重い計算を投げ続ける DoS も成立します。ガス課金は資源濫用を経済的に抑止する装置であり、その価格をどう決めるかが「手数料市場」の設計問題です。
EIP-1559 以前:単純第一価格オークション
2021 年の EIP-1559 導入前、Ethereum の手数料は第一価格オークションでした。送信者は gasPrice(1ガスの単価)を自分で入札し、採掘者はブロック容量が許す範囲で単価の高いトランザクションから詰めます。仕組みは単純ですが、二つの慢性的な欠陥を抱えていました。
- 予測困難と過払い:最適な入札額は「他人が幾ら入れてくるか」に依存し、事前に分かりません。取り込まれたい送信者は安全側に倒して必要以上に高く入札しがちで、第一価格オークションに固有の非効率(勝者の呪い)が生じます。
- 急変動:容量が瞬間的に埋まると単価が跳ね上がり、少し空くと急落する。混雑の程度を表す安定した指標がなく、ウォレットの見積もりも当てになりませんでした。
さらに、ブロックサイズが固定上限だったため、需要が上限に貼り付くと待ち行列が暴走し、価格だけが際限なく上がる構造でした。
EIP-1559 の中核:ベースフィーとチップ
EIP-1559 は実効ガス価格を二つの成分に分解しました。
実効ガス価格 = baseFee + min(priorityFee, maxFee - baseFee)
baseFee … プロトコルが算出する必須料金(バーンされる)
priorityFee … 送信者が任意で上乗せするチップ(検証者へ)
maxFee … 送信者が許容する 1 ガスあたりの支払い上限
送信者は入札額そのものではなく、**maxFee(支払い上限)**と maxPriorityFee(チップ上限)の二つを指定します。実際に引かれるのはベースフィーとチップの合計で、maxFee との差額(maxFee − baseFee − priorityFee)は払い戻されます。これにより「取り込まれるために過剰に盛る」必要が薄れ、送信者は上限だけ守れば残りをプロトコルに委ねられます。
EIP-1559 の要は、混雑度をプロトコルが内生的に算出する点にあります。ベースフィーは送信者どうしの入札で決まるのではなく、直前ブロックの使用量という観測可能な事実から決定的に更新されます。全ノードが同じ入力から同じベースフィーを計算できるため、この値自体が合意対象になり、ウォレットは次ブロックのベースフィーを正確に予測できます。
| 成分 | 決まり方 | 行き先 | 役割 |
|---|---|---|---|
| ベースフィー(baseFee) | 直前ブロック使用量から自動更新 | バーン(焼却) | 混雑の需給調整・スパム抑止 |
| 優先料(priorityFee/チップ) | 送信者が任意指定 | 検証者(採掘者/提案者) | 取り込み順の入札・MEV配分 |
| 支払い上限(maxFee) | 送信者が指定 | 超過分は払い戻し | 価格急騰時の保護 |
ベースフィーの需給調整アルゴリズム
ベースフィーの更新は EIP-1559 の心臓部です。ブロックには**目標ガス量(gas target)と上限(gas limit)**があり、上限は目標のちょうど 2 倍に設定されます(Ethereum メインネットの上限は運用で調整され、2025 年に 3000 万から 6000 万へ引き上げられた。上限 6000 万なら目標は 3000 万ガス)。次ブロックのベースフィーは、直前ブロックが目標に対してどれだけ埋まったかで動きます。
親ブロックの使用量を gasUsed、目標を gasTarget とすると
gasUsed == gasTarget → baseFee 据え置き
gasUsed > gasTarget(混雑) → baseFee を引き上げ
gasUsed < gasTarget(余裕) → baseFee を引き下げ
変化率(擬似コード):
delta = gasUsed - gasTarget
change = baseFee * delta / gasTarget / 8 # 分母 8 = 1/8
nextBaseFee = baseFee + change # 上げ下げ対称
分母の 8 が意味するのは、1ブロックあたりの変化幅は最大でも ±12.5%(=1/8)に制限されるということです。ブロックが上限まで(目標の 2 倍)埋まった極端な場合でも delta/gasTarget は 1 なので、増加は 1/8 が上限になります。逆に完全に空なら 12.5% 下がります。この乗算的更新(前回値に比率を掛ける)により、ベースフィーは需要の変化に指数的に追随します。
加算的に一定額ずつ動かすと、価格帯が高いときの追随が遅れます。前回値へ比率を掛ける乗算的更新なら、どの価格帯でも「何ブロック連続で目標超過か」が桁の変化に直結します。混雑が続けば 1.125^n で急騰して需要を抑え込み、緩めば同じ勢いで下がる。ベースフィーは混雑の連続時間を測るメーターとして働きます。
数値で追うと感覚がつかめます。ベースフィーが 100 gwei のとき、ブロックが上限(目標比 2 倍)で埋まり続けると、次は 112.5、その次は約 126.6……と 1 ブロックごとに 12.5% ずつ上がります。約 6 ブロック(Ethereum なら約 72 秒)で概ね 2 倍に達し、需要が容量目標を超えるほど加速度的に高くなるため、スパム的な連続送信のコストは急速に跳ね上がります。逆に混雑が去れば同じ速さで下がるので、一時的な高騰が長く尾を引きません。
ブロックサイズの弾力性
EIP-1559 の見落とされがちな貢献がブロックサイズを弾力的にした点です。従来は上限が固定で、需要が上限に達すると価格でしか調整できませんでした。EIP-1559 では目標を平常運転の基準とし、上限(目標の2倍)まで一時的に超過できます。
- 突発的な需要(人気NFTの発行、清算の集中など)が来ても、ブロックは目標の 2 倍まで膨らんでその場で吸収できる。全員が次ブロックまで弾き出されるのではなく、多くが同一ブロックに入れる。
- ただし超過した分だけ次のベースフィーが上がるため、混雑は必ず価格に反映される。弾力性は「無料の容量拡大」ではなく、「短期の需要変動を平滑化しつつ、超過には課金する」仕組みです。
- 平均使用率が目標(=上限の半分)に収束するよう設計されているため、平常時のブロックは半分ほど空いている。これは無駄ではなく、急な需要のための緩衝であり、ベースフィーが上下両方向に動ける余地を確保します。
「上限まで使えるなら容量が2倍になった」と考えるのは誤りです。上限まで埋め続ければベースフィーが 12.5%/ブロックで際限なく上がり、経済的に持続しません。目標超過はあくまで一時的な吸収で、長期の平均は目標へ引き戻されます。恒久的なスループット向上には、L1のガス上限引き上げか、実行を外へ逃がすレイヤー2・ロールアップが必要です。
バーンの意味と手数料予測
ベースフィーが検証者へ渡らずバーン(焼却)される点は、EIP-1559 のもう一つの核心です。理由は主に二つあります。
第一に料金操作の遮断です。もしベースフィーが採掘者/提案者の収入になるなら、彼らは自ら空トランザクションでブロックを埋めてベースフィーを吊り上げ、手数料収入を水増しできてしまいます。バーンすれば釣り上げても手元に一切残らないため、その動機が消えます。送信者を欺いて高い料金を払わせる誘因が、経済設計から取り除かれるわけです。
第二に供給への影響です。バーンは流通トークンを恒久的に減らします。ネットの供給変化は概念的に次のようになります。
ネット供給変化 = 新規発行(検証者報酬)- バーン(総ベースフィー)
需要(利用)が高い局面 → バーン > 発行 → ネット供給は減少(デフレ的)
需要が低い局面 → 発行 > バーン → ネット供給は増加
つまり利用が活発なほどトークンが焼かれ、ネットワーク需要と供給抑制が同じ資産に結びつく設計です。この経済的含意(発行・報酬・供給の相互作用)はトークンとインセンティブ設計で扱う主題そのものであり、EIP-1559 はその手数料側の具体化と言えます。
チップの役割も明確化されます。ベースフィーは同一ブロック内の全トランザクションで同額なので、それだけでは「どれを先に入れるか」の順位付けができません。ここで優先料(チップ)が取り込み順の入札を担います。清算やアービトラージなど、順序が利益を左右する取引ほど高いチップを積むため、チップの相場は MEV(採掘者/検証者が抽出しうる価値)と連動します。ブロック内の順序決定が誰の手に握られるかという論点は、ファイナリティとフォーク選択で扱う枝選択とは別レイヤで、同一ブロック内の並びの話です。
「EIP-1559 でベースフィーはどう決まるか」は頻出です。核は──(1) 入札ではなく直前ブロック使用量から決定的に算出、(2) 目標超過で上げ・下回りで下げ、変化幅は ±12.5%/ブロック、(3) ベースフィーはバーン、順序付けはチップが担当、(4) 上限は目標の 2 倍で弾力的だが平均は目標に回帰。「ガス代が下がったか」ではなく「予測可能性と料金操作耐性を改善した」のが本質、と説明できると強いです。
まとめ
- ガスは計算資源の計量単位で、手数料は
gasUsed × 実効ガス価格。EIP-1559 は実効価格をベースフィー+チップへ分解した。 - ベースフィーは直前ブロックの使用量から決定的に更新され(目標超過で上げ・下回りで下げ、最大±12.5%/ブロック)、全ノードが同値を計算できるため予測可能。
- バーンは料金操作の動機を絶ち、需要が高い局面ではネット供給を減らす。取り込み順の入札は**チップ(優先料)**が担い、MEV と連動する。
- ブロックは目標の2倍まで弾力的に膨らんで突発需要を吸収するが、超過は必ず価格に反映され、長期平均は目標へ回帰する。恒久的なスループット向上は L1 拡張や L2 に委ねる。
- 実務では **maxFee(上限)**と **maxPriorityFee(チップ)**を分けて指定し、次ブロックのベースフィー予測を土台に、過払いを避けつつ確実な取り込みを狙うのが定石。
ブロックチェーン Article
ガス・手数料メカニズム(EIP-1559)を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
ブロックチェーン
比較で見る軸
難易度: advanced / カテゴリ: ブロックチェーン / タグ数: 6
導入後に効く点
ベースフィーは直前ブロックの使用量から決定的に更新される。目標(ガス上限の半分)を超えると上げ、下回ると下げ、1ブロックあたり最大±12.5%。混雑の指標がプロトコル内で自動調整される。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- ブロックチェーン
- タグ数
- 6
判断チェックリスト
- 自社の用途が「ブロックチェーン / Ethereum」に近いか確認する。
- 強みである「ガスは計算資源の計量単位で、手数料は gasUsed×(baseFee+priorityFee) で決まる。EIP-1559 は従来のオークション(gasPrice の入札)を、プロトコルが算出するベースフィー+任意のチップに置き換えた。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。