ガスとフィー(手数料)
最終更新: 2026年2月16日
イーサリアムネットワークにとってガスは切り離せないものです。 ガスは車にとってのガソリンのようにイーサリアムを稼働させるための燃料として使われます。
前提条件
このページをよりよく理解するために、まずトランザクションとEVMについてお読みになることをお勧めします。
ガスとは
ガスとは、イーサリアムネットワーク上で特定の操作を実行するために必要な計算労力を測定する単位のことです。
イーサリアムでは、トランザクションを実行するには計算リソースが必要です。そのため、そのリソースの対価として料金を支払う必要があります。これにより、イーサリアムはスパム攻撃に対する脆弱性を解消し、無限の計算ループに陥ることを防ぎます。 計算料金は、ガス代として支払われます。
ガス手数料とは、ある操作を行うために使用されるガスの量に、ガス単位あたりのコストを乗じたものです。 この料金は、トランザクションが成功したか失敗したかに関係なく支払われます。
図はEthereum EVM illustrated (opens in a new tab)を参考に作成
実際にはガス代はイーサリアムのネイティブ通貨であるイーサ(ETH)で支払う必要があります。 ガス価格は通常、ETHの単位の1つであるgweiで見積もられます。 gweiは、ETHの10億分の1(0.000000001 ETHすなわち10-9 ETH)に相当します。
例えば、0.000000001 ETHのガス代は、1 gweiとなります。
「gwai」とは、「10億wei」を意味する「giga-wei」の略語であり、 1 gweiは、10億weiに相当します。 Wei自体(b-money (opens in a new tab)の作成者であるWei Dai (opens in a new tab)にちなんで名付けられました)は、ETHの最小単位です。
ガス代の計算方法
ガス量を設定してトランザクションを送信できます。 ガス量をいくらか支払うことで、次のブロックに含まれるトランザクションに入札することになります。 ガス量が少なすぎると、バリデータがトランザクションを処理する可能性が低くなります。つまり、トランザクションが遅れて実行されたり、まったく実行されなかったりすることがあります。 一方で、ガス量が多すぎると、ETHを無駄にすることになります。 それでは、どのようにして適切なガス代を決めればよいのでしょうか。その方法について説明します。
支払うガスの総額は、base feeとpriority fee(チップ)の2つの要素に分かれています。
base feeはプロトコルによって設定されます。トランザクションが有効とみなされるためには、少なくともこの金額を支払う必要があります。 priority feeは、バリデータが次のブロックに含めるトランザクションとして選択するよう、トランザクションを魅力的にするためにbase feeに追加するチップです。
base feeのみを支払うトランザクションは技術的には有効ですが、バリデータが他のトランザクションよりも優先して選択するインセンティブがないため、ブロックに含まれる可能性は低いです。 「適切な」priority feeは、トランザクションを送信する時点でのネットワークの使用状況によって決まります。需要が多い場合はpriority feeを高く設定する必要があるかもしれませんが、需要が少ない場合はより低い料金で済みます。
例えば、JordanがTaylorに1 ETHを支払わなければならない場合、 ガス単位で21,000が必要になります。基本料金は10 gweiですが、 Jordanはチップとして2 gweiを追加します。
合計フィーは、次と等価となります。
使用されるガス単位 × (ベースフィー + プライオリティフィー)
ここで、base feeはプロトコルによって設定される値で、priority feeはユーザーがバリデータへのチップとして設定する値です。
例: 21,000 * (10 + 2) = 252,000 gwei (0.000252 ETH)。
Jordanが送金すると、Jordanの口座から1.000252 ETHが差し引かれ、 Tayloの口座に1.0000ETHが入金されます。 また、バリデータには0.000042 ETHのチップが支払われ、 0.00021 ETHのbase feeはバーンされます。
ベースフィー
ブロックごとに、最低価格となるベースフィーが設定されています。 トランザクションをブロックに含めるには、ガスあたりの提供価格がベースフィー以上である必要があります。 ベースフィーは現在のブロックとは無関係に計算され、その前のブロックによって決定されるため、ユーザーはトランザクション手数料をより予測しやすくなります。 ブロックが作成されると、この**ベースフィーは「バーン」**され、流通から削除されます。
ベースフィーは、前のブロックのサイズ(すべてのトランザクションに使用されたガスの量)をターゲットサイズ(ガスリミットの半分)と比較する数式によって計算されます。 ターゲットブロックサイズがターゲットを上回るか下回るかによって、ベースフィーはブロックごとに最大12.5%増減します。 この指数的な増加により、ブロックサイズを無制限に高くすることは、経済的に不可能になります。
| ブロック数 | 含有ガス | 増加されるフィー | 現在のベースフィー |
|---|---|---|---|
| 1 | 18M | 0% | 100 gwei |
| 2 | 36M | 0% | 100 gwei |
| 3 | 36M | 12.5% | 112.5 gwei |
| 4 | 36M | 12.5% | 126.6 gwei |
| 5 | 36M | 12.5% | 142.4 gwei |
| 6 | 36M | 12.5% | 160.2 gwei |
| 7 | 36M | 12.5% | 180.2 gwei |
| 8 | 36M | 12.5% | 202.7 gwei |
上の表では、ガスリミットとして3,600万を使用した例が示されています。 この例に従い、ブロック番号9でトランザクションを作成する場合、ウォレットはユーザーに対し、次のブロックに追加される最大ベースフィーが 現在のベースフィー * 112.5% または 202.7 gwei * 112.5% = 228.1 gwei であることを確実に通知します。
また、フルブロックの状態になるとベースフィーの上昇速度が上がるため、フルブロックのスパイクが長続きしないことにも注意が必要です。
| ブロック数 | 含有ガス | 増加されるフィー | 現在のベースフィー |
|---|---|---|---|
| 30 | 36M | 12.5% | 2705.6 gwei |
| ... | ... | 12.5% | ... |
| 50 | 36M | 12.5% | 28531.3 gwei |
| ... | ... | 12.5% | ... |
| 100 | 36M | 12.5% | 10302608.6 gwei |
優先手数料(チップ)
優先手数料(チップ)は、ブロックガスリミットによってのみ制約されるブロック内のトランザクション数を最大化するよう、バリデータにインセンティブを与えます。 チップがなければ、合理的なバリデータは、実行レイヤーやコンセンサスレイヤーからの直接的なペナルティなしに、より少ない、あるいはゼロのトランザクションを含めることができます。これは、ステーキング報酬がブロック内のトランザクション数に依存しないためです。 さらに、チップにより、ユーザーは同じブロック内での優先権を他者より高く入札することができ、事実上の緊急性を示すことができます。
最大手数料
ネットワーク上でトランザクションを実行する場合、ユーザーはトランザクション実行に支払うフィーの上限を指定できます。 このオプションパラメータはmaxFeePerGasとして知られています。 トランザクションを実行するには、最大フィーがベースフィーとチップの合計額を上回る必要があります。 トランザクションの送信者には、最大フィーからベースフィーとチップの合計額を差し引いた差額が返金されます。
ブロックサイズ
各ブロックは現在のガスリミットの半分のターゲットサイズを持ちますが、ブロックのサイズはネットワークの需要に応じて、ブロックリミット(ターゲットブロックサイズの2倍)に達するまで増減します。 プロトコルは、tâtonnement (手探り)のプロセスを通じて、ターゲットで平均ブロックサイズの均衡を達成します。 つまり、ブロックサイズがターゲットブロックサイズよりも大きい場合、プロトコルは次のブロックのベースフィーを増加させます。 同様に、ブロックサイズがターゲットブロックサイズより小さい場合、プロトコルはベースフィーを減らします。
ベースフィーが調整される金額は、現在のブロックサイズとターゲットまでの差に比例します。 これは、空のブロックで-12.5%、ターゲットサイズで0%、ガスリミットに達したブロックで最大+12.5%という線形計算です。 ガスリミットは、バリデータのシグナリングやネットワークのアップグレードによって、時間とともに変動する可能性があります。 ガスリミットの経時的な変化はこちらで確認できます (opens in a new tab)。
ガス手数料を実際に計算する
トランザクションを実行するために支払う金額を具体的に指定できますが、 ほとんどのウォレットプロバイダーは、ユーザーへの負担を軽減するため、推奨トランザクションフィー(ベースフィー + 推奨プライオリティフィー)を自動で計算しています。
ガス代の必要性
簡単に説明すると、ガス代はイーサリアムネットワークを安全に保つのに役立ちます。 ネットワーク上のそれぞれの計算処理に手数料を課すことで、ネットワークに対する攻撃を防止します。 コード内の偶発的または敵対的な無限ループ、またはその他の過剰計算による損失を防ぐために、 各トランザクションはコード実行の計算ステップ数(1トランザクションにおける計算量)を制限する必要があります。 計算の基本単位は「ガス」になります。
トランザクションには上限が含まれますが、トランザクションで使用されなかったガスはユーザーに返還されます(例: max fee - (base fee + tip)が返還)。
図はEthereum EVM illustrated (opens in a new tab)を参考に作成
ガスリミットとは
ガスリミットとは、1回のトランザクションで消費できるガスの最大量のことです。 スマートコントラクトを伴うより複雑なトランザクションは、より多くの計算作業を必要とするため、単純な支払いよりも高いガスリミットが必要です。 標準のETH送金には、21,000ユニットのガスリミットが必要です。
例えば、簡単なETH送金に50,000のガスリミットを設定した場合、EVMは21,000を消費し、残りの29,000が戻されます。 しかし、例えば単純なETH送金に対して20,000のガスリミットのように、指定するガスが少なすぎると、トランザクションは検証フェーズで失敗します。 ブロックに含まれる前に拒否され、ガスは消費されません。 一方、実行中にトランザクションのガスが尽きた場合(例えば、スマートコントラクトが途中でガスをすべて使い果たした場合)、EVMはすべての変更を元に戻しますが、提供されたガスはすべて実行された作業に対して消費されます。
ガス代が高い理由
高いガス代はイーサリアムの人気の高さが原因です。 需要が高すぎると、他のユーザーのトランザクションよりも高いチップをオファーする必要があり、 高いチップを払うほど、トランザクションが次のブロックに入る可能性が高くなります。 また、より複雑なスマートコントラクトアプリは、その機能を維持するために多くの操作を実行し、大量のガスを消費することがあります。
ガス代を削減するための取り組み
イーサリアムのスケーラビリティアップグレードは、最終的にガス手数料の問題の一部を解決するはずです。これにより、プラットフォームは毎秒数千のトランザクションを処理し、世界規模でスケールできるようになります。
レイヤー2のスケーリングは、ガス代、ユーザーエクスペリエンス、スケーラビリティを大幅に向上させるための主要なイニシアチブです。
ガス手数料のモニタリング
ETHをより安く送れるようにガス代を節約したい場合は、次のような様々なツールを利用できます。
- Etherscan (opens in a new tab) トランザクションのガス価格見積りツール
- Blockscout (opens in a new tab) オープンソースのトランザクションガス価格見積もりツール
- ETH Gas Tracker (opens in a new tab) イーサリアムとL2のガス価格を監視・追跡し、トランザクション手数料を削減してコストを節約
- Blocknative ETH Gas Estimator (opens in a new tab) タイプ0のレガシートランザクションとタイプ2のEIP-1559トランザクションの両方をサポートするガス見積もりChrome拡張機能。
- Cryptoneur Gas Fees Calculator (opens in a new tab) メインネット、Arbitrum、Polygonにおけるさまざまなトランザクションタイプのガス手数料を自国通貨で計算。
関連ツール
- Blocknative's Gas Platform (opens in a new tab) Blocknativeのグローバルなメンプールデータプラットフォームを利用したガス見積もりAPI
- Gas Network (opens in a new tab) オンチェーンのガスオラクル。 35以上のチェーンをサポート。