トランザクション手数料
EthereumおよびEVM互換ブロックチェーン上のすべてのトランザクションは、計算作業量を表すガスで測定される手数料が発生します。ブロックチェーンユーザーは、処理とストレージの対価としてバリデーターに報酬を支払うため、ブロックチェーンのネイティブトークンでガス単位あたりの手数料を支払います。ガス手数料は、スパムを防ぎ、限られたブロックスペースと処理能力を最高入札者に割り当てるのに役立ちます。ガスは通常、Gwei(Giga Wei、つまり109 Wei)で測定されます。
このガイドでは、Ethereumのトランザクションタイプ、ガス手数料の仕組み、およびどのEVM互換チェーンでサポートされているかについての背景情報を提供します。
- 0x0: Legacy Transactions
- 0x1: Access List Transactions
- 0x2: Dynamic Fee Transactions
- 0x3: Blob Transactions
- 0x4: Execution Delegation Transactions
- ガス手数料の見積もり
- トランザクションの再送信
- EVM互換チェーンのサポート
- 固定手数料モデル
0x0: Legacy Transactions
手数料モデル: 固定ガス価格
この入札方法は「ファーストプライスオークション」と呼ばれます。レガシートランザクションはEthereumで引き続きサポートされていますが、EIP-1559トランザクションの方がガス効率が優れています。
| パラメータ | ソース | 定義 |
|---|---|---|
| gas price | ユーザー | バリデーターに支払われる総額。ベース手数料の超過分は、優先手数料としてバリデーターに支払われます(ダイナミック手数料トランザクションを参照)。 |
| base fee | ネットワーク | 前のブロックがどれだけいっぱいだったかに基づいて、ブロックごとに調整される可変手数料。 |
0x1: Access List Transactions
導入: EIP-2930、Berlinアップグレード
手数料モデル: 固定ガス価格 - レガシートランザクションと同じ手数料構造。
アクセスリストは、トランザクションがアクセスするコントラクトアドレスとストレージスロットを事前に宣言できるようにすることで、ガスコストを削減します。ノードはこれらのアクセスを事前に把握しているため、必要な状態をプレウォームし、より高いコールドアクセスガスペナルティを回避できます。トランザクションには無関係なアクセスリストエントリを含めることができますが、各エントリには事前のガスコストがかかり、未使用のエントリは利点がないため、悪用は経済的に効果がありません。
0x2: Dynamic Fee Transactions
導入: EIP-1559、Londonアップグレード
手数料モデル: 最大手数料と最大優先手数料を使用するダイナミック手数料モデル
EIP-1559トランザクションに関する詳細な情報については、この実装者向けチートシートをお読みください。
| パラメータ | ソース | 定義 |
|---|---|---|
| max fee | ユーザー | ユーザーが支払う意思のある最大総手数料(ベース手数料 + 優先手数料)。ベース手数料 + 実効優先手数料がこの金額より少ない場合、差額はユーザーに返金されます(例を参照)。 |
| max priority fee | ユーザー | ユーザーのトランザクションを次のブロックに含めることを優先するためにバリデーターに支払われる最大手数料。 |
| base fee | ネットワーク | 前のブロックの需要に基づいて、ブロックごとに調整される可変手数料。この手数料はバーンされます。 |
EIP-1559手数料シナリオ
基本ケース
トランザクションを送信する際、ユーザーは最大手数料(ガス単位あたりの最大総手数料)と最大優先手数料(バリデーターに支払う意思のある最大チップ)を指定します。ネットワークはブロックのベース手数料を設定し、バリデーターはそのベースの上に優先手数料を受け取ります。実際に支払われる(実効)優先手数料は、総手数料がユーザーの最大手数料を超えないように、最大優先手数料より低くなる場合があります。
ベース手数料が低い場合の返金
ユーザーが最大手数料と最大優先手数料の両方を設定すると、実際のベース手数料が十分に低い場合に返金を受け取ることができます。この例では、ベース手数料は40 Gweiで、実効優先手数料は最大優先手数料の40 Gweiに制限されており、支払総手数料は80 Gweiです。ユーザーの最大手数料は100 Gweiであるため、残りの20 Gweiが返金されます。
最大手数料を等しく設定
ユーザーが最大手数料と最大優先手数料を同じ値に設定した場合、トランザクションはベース手数料を超える限り、最大手数料の全額を支払います。ここでは、ベース手数料は40 Gweiで、残りの60 Gweiが実効優先手数料として適用され、総手数料は100 Gweiとなり、返金はありません。
EIP-1559システムにおけるレガシートランザクション
単一のガス価格を指定するレガシートランザクションは、EIP-1559の下で引き続き機能します。ベース手数料を超えるガス価格の部分は、バリデーターに支払われる優先手数料として扱われ、レガシートランザクションは最大手数料と最大優先手数料の値を等しく設定した場合と同等の動作をします。
0x3: Blob Transactions
導入: EIP-4844(プロトダンクシャーディング)、Dencunアップグレード
手数料モデル: EVMガスとは別の「blobガス」マーケットを追加
Blobトランザクションは、レイヤー2(L2)ロールアップのためのより安価で一時的なデータ可用性をサポートします。Blob手数料マーケットは、従来のEIP-1559手数料マーケットとは別に動作し、blobガスと呼ばれる専用の手数料タイプを使用します。
| パラメータ | ソース | 定義 |
|---|---|---|
| blob max fee | ユーザー | ユーザーがblobガス単位あたりに支払う意思のある最大blob手数料。blob base feeがこの金額より少ない場合、差額はユーザーに返金されます。Blobガスには優先手数料がありません。 |
| blob base fee | ネットワーク | blobの需要に基づいて、ブロックごとに調整される可変手数料。 |
EIP-4844手数料シナリオ
基本ケース
EIP-1559手数料シナリオと同様に、ユーザーはトランザクションの実行のための最大手数料と最大優先手数料を指定します。ネットワークは実行ベース手数料を設定し、バリデーターはそのベースの上に実効優先手数料を受け取ります。実効優先手数料は、総実行手数料がユーザーの最大手数料を超えないように制限されます。
Blob手数料は実行手数料とは別に処理され、ユーザーはblob最大手数料も指定し、ネットワークはblobベース手数料を設定し、blob最大手数料の未使用部分は返金されます。実行ガスとは異なり、blobガスには優先手数料が含まれません。
ベース手数料が低い場合の返金
この例では、実行ベース手数料は40 Gweiで、実効優先手数料は最大優先手数料の40 Gweiに制限されており、総実行手数料は80 Gweiです。ユーザーの最大手数料は100 Gweiであるため、残りの20 Gweiが返金されます。
Blobデータに関しては、ネットワークはblobベース手数料を30 Gweiに設定します。ユーザーのblob最大手数料は40 Gweiであるため、残りの10 Gweiがユーザーに返金されます。
0x4: Execution Delegation Transactions
導入: EIP-7702、Pectraアップグレード
手数料モデル: ダイナミック手数料モデル、EIP-1559と同じ
外部所有アカウント(EOA)が実行のためにスマートコントラクトコードを一時的に含めることを可能にします。認証リストは、EOAの代わりに実行が許可されるコードを指定します。これは、以前のERC-4337標準からのアカウント抽象化の進化です。
ガス手数料の見積もり
ユーザーは、ガス価格オークション(レガシー)または優先手数料(EIP-1559)を通じて、次のブロックに自分のトランザクションを含めてもらうために競争します。ガス価格オラクル(GPO)は、どの手数料が最も効果的で効率的かを予測するためにウォレットでよく使用されます。最も単純な実装は、ブロックチェーンノードにクエリを送信して、推奨ガス価格を返すものです。
go-ethereumノードオラクル
ウォレットがgo-ethereumノードに推奨優先手数料(またはレガシートランザクションのガス価格)をリクエストすると、デフォルトでは、ノードは最新の20ブロックで支払われたすべてのトランザクション手数料の60パーセンタイル(2 Wei未満の手数料を除く)を返します。以下は、go-ethereumのデフォルトGPO CLIパラメータです:
GAS PRICE ORACLE
--gpo.blocks value (default: 20)
Number of recent blocks to check for gas prices
--gpo.ignoreprice value (default: 2)
Gas price below which gpo will ignore transactions
--gpo.maxprice value (default: 500000000000)
Maximum transaction priority fee (or gas price before London fork) to be
recommended by gpo
--gpo.percentile value (default: 60)
Suggested gas price is the given percentile of a set of recent transaction gas
prices
MetaMask Gas Oracle API
MetaMaskなどの一部のウォレットは、ガス価格を提案するためにカスタムAPIを使用します。サポートされているネットワークでは、ノードによって取得される現在のベース手数料に加えて、MetaMaskは以下の追加情報を提供します:
- 時間の見積もり
- 低/中/高ベース
- 優先手数料の提案
- 過去のベース手数料範囲
サポートされていないネットワークでは、MetaMaskはデフォルトでノードに問い合わせます(前のセクションを参照)。現在のMetaMaskガス価格APIは、https://gas-api.metaswap.codefi.network/networks/{ChainID}/suggestedGasFeesで確認できます。選択したネットワークをクエリするにはChainIDを変更してください。例えば、Ethereum Mainnetの場合は1です(人気のあるネットワークのChainIDについては、chainlist.orgを参照してください)。
トランザクションの再送信
メカニズム
保留中のトランザクションは、同じnonceとより高いガス手数料で別のトランザクションを送信することで置き換えることができます。これはネットワークによって異なりますが、置き換え手数料は通常、元の手数料より少なくとも10%高くする必要があります。
このメカニズムにより、次の3つの主要な操作が可能になります:
- スピードアップ: 同一のnonce、ペイロード、および値で、より高いガス手数料で再送信することにより、トランザクションの優先度を上げる
- 置き換え: 同じnonceとより高いガス手数料を使用し、異なるペイロードまたは値で保留中のトランザクションを置き換える
- キャンセル: 同じnonceとより高いガス手数料を使用して、no-opトランザクション(空のペイロードとゼロの値)を送信することで、保留中のトランザクションを削除する
EVM互換チェーンのサポート
人気のあるEVM互換ブロックチェーンでサポートされているトランザクションタイプの概要(例:0x0レガシー、0x1 EIP-2930、0x2 EIP-1559、0x3 EIP-4844、0x4 EIP-7702)と、公式のガスおよび手数料ドキュメントへのリンク。
| チェーン名 | 0x0 | 0x1 | 0x2 | 0x3 | 0x4 | チェーン手数料ドキュメント |
|---|---|---|---|---|---|---|
| Arbitrum One | ✅ | ✅ | ✅ | ✅ | Gas & fees, EVM differences from Ethereum | |
| Avalanche C | ✅ | ✅ | ✅ | ✅ | Gas & fees | |
| Base | ✅ | ✅ | ✅ | ✅ | Gas & fees, EVM differences from Ethereum | |
| BNB | ✅ | ✅ | ✅ | ✅ | ✅ | Gas & fees |
| Celo | ✅ | ✅ | ✅ | ✅ | Transactions, Gas & fees | |
| Curvegrid Testnet | ✅ | ✅ | ✅ | ✅ | ||
| Ethereum | ✅ | ✅ | ✅ | ✅ | ✅ | 0x1: EIP-2930, 0x2: EIP-1559, 0x3: EIP-4844, 0x4: EIP-7702 |
| Filecoin | ✅ | ✅ | ✅ | Docs home | ||
| Flare | ✅ | ✅ | ✅ | ✅ | Transactions | |
| Gnosis | ✅ | ✅ | ✅ | ✅ | ✅ | Gas & fees, EIP-7702 Guide |
| Lisk | ✅ | ✅ | ✅ | Gas & fees, EVM differences from Ethereum | ||
| Mantle | ✅ | ✅ | ✅ | Gas & fees, Relevant FAQs | ||
| NEON EVM | ✅ | ✅ | Gas & fees, EVM differences from Ethereum | |||
| OP | ✅ | ✅ | ✅ | ✅ | Gas & fees, EVM differences from Ethereum | |
| Polygon | ✅ | ✅ | ✅ | ✅ | Transactions | |
| Scroll | ✅ | ✅ | ✅ | ✅ | Transactions, EVM differences from Ethereum | |
| XRPL EVM | ✅ | ✅ | Docs home | |||
| Zircuit | ✅ | ✅ | ✅ | ✅ | Transactions, Gas & fees |
注意事項
- カスタムトランザクションタイプ: 一部のチェーンは、
0x00から0x04を超えるトランザクションタイプを定義しています。例えば、OP Stackは「deposit/system」トランザクションにトランザクションタイプ0x7eを使用していました。 - Polygonチップ下限: Polygonでは、最大優先手数料が30 Gwei未満のトランザクションはドロップされる可能性があります。
固定手数料モデル
-
レイヤー1(L1): 独自のコンセンサスメカニズム(例:Proof of Work、Proof of Stake)を持ち、ネットワークを保護する独自のネイティブバリデーターまたはマイナーを持つブロックチェーンネットワーク。すべてのレイヤー2トランザクションは、最終的に決済とセキュリティ保証のためにL1に依存します。
-
レイヤー2(L2): L1上に構築されたネットワークで、オフチェーンでトランザクションを実行し、結果をバッチでL1に戻すことで、スループットを向上させ、コストを削減します。L2はL1のセキュリティを継承しながら、より高速で安価な実行を提供します。
ArbitrumやOptimismを含む多くのL2ネットワークは、トランザクション実行のための最低ガス価格モデルで動作しています。通常のネットワーク状態では、トランザクションは一般的に先着順で処理され、ユーザーは最低ガス価格にトランザクションのガス使用量を掛けた金額を支払います。これは、EIP-1559のベース手数料と同様の効果があります。
実行手数料に加えて、L2は基盤となるL1にトランザクションデータを公開するための別個のL1データ手数料を請求します。この手数料は、L2によって自動的に計算され、実行時にユーザーから差し引かれます。
| パラメータ | ソース | 定義 |
|---|---|---|
| min gas price | ネットワーク | 現在の時点でトランザクションを実行するために必要な最低手数料。 |