オンチェーンの取引コストは「約定価格」そのものです。ガス代を1回あたり数百円〜数千円抑えるだけでも、アービトラージ、スキャルピング、スイングのいずれでもリターンの分布が有意に変わります。本稿は、EIP‑1559以降のBase Fee / Priority Fee / Max Feeの正しい理解、ガスリミットの意味、メンンプールの挙動、MEV回避、L2のデータコストまで含めた実務ガイドです。最後に、実戦で即使えるチェックリストも提示します。
- 1. なぜ「ガス最適化」がアルファになるのか
- 2. ガス代の構造(EIP‑1559)
- 3. ガスリミットの正体:「上限宣言」だが、使った分だけ請求
- 4. 期待値の式と「実行可否」判断
- 5. 実戦のパラメータ設定:速度とコストの最適点
- 6. タイミング戦略:安い時間帯と「空いているブロック」狙い
- 7. メンンプールの読み方と失敗回避
- 8. MEVを避ける:取引の「露出」を下げる
- 9. L2とデータコスト(Blob含む)の実務
- 10. 承認とスワップの最適化
- 11. ブリッジの費用と遅延
- 12. 実戦チェックリスト(送信前30秒)
- 13. ケーススタディ:DEXスワップのコストを32%削減
- 14. よくある失敗と対策
- 15. まとめ:執行コストは「設計」で勝てる
1. なぜ「ガス最適化」がアルファになるのか
同じ戦略でも、実行コストが低いほど期待値は高く、撤退ライン(損益分岐)も緩くなります。たとえば、1回のスワップで総コストが800円→520円に下がれば、年間1,000回の執行で28万円超の差です。しかもガスはボラティリティや板厚に依存せず、本人のオペレーションで直接コントロール可能という点が重要です。
2. ガス代の構造(EIP‑1559)
現在のイーサリアムでは、取引手数料は次の合計で決まります。
- Base Fee:ネットワーク混雑度でブロック毎に自動調整。バーンされます。
- Priority Fee(=Tip):マイナー/バリデータへの上乗せ。自分で指定。
- Max Fee:この取引で許容する総上限。実際の支払は
min(Max Fee, Base Fee + Priority Fee)
。
実務では、Max Fee
は余裕を持たせつつ、Priority Fee
で執行速度を微調整します。過剰なPriority
はムダ、低すぎると遅延・取り消しリスクが増します。
3. ガスリミットの正体:「上限宣言」だが、使った分だけ請求
Gas Limitは「この取引のために確保する最大ガス量」。実際に消費された分だけが課金対象です。多めに設定しても基本的に損ではありません(不必要に高くしても未使用分は返金される)。ただし低すぎると途中で枯渇してOut of Gasで失敗し、Base Fee分も無駄になります。
参考レンジ(実装や状態により変動)
- ETH送金:21,000
- ERC‑20送金:40,000〜65,000
- DEXスワップ(単一プール):110,000〜180,000
- 複数ルート最適化スワップ:200,000〜400,000+
- 承認(approve):45,000〜65,000
安全側に倒すなら、シミュレーション(ドライラン)で見積もり、見積値×1.2倍をGas Limit
に置くのが無難です。
4. 期待値の式と「実行可否」判断
オンチェーントレードの期待値は、概ね次式で評価できます。
E[PNL] = 期待スプレッド − (ガスコスト + 価格影響 + 失敗確率×失敗コスト)
失敗コストには、Out of Gasやフロントランでの不利約定、キャンセルのガス消費などを含めます。ガスを下げる=期待値を押し上げることに直結します。
5. 実戦のパラメータ設定:速度とコストの最適点
5.1 Priority Feeの目安
混雑が緩いときはBaseに近い最小限のTipで十分。混雑時は待てるなら待つのが基本。執行遅延が戦略損益に与える影響を金額換算し、その分までをTip上限とするのが合理的です。
5.2 Max Feeは「保険枠」
ブロック間でBase Feeが跳ねるケースを想定し、Max Fee
はBase+Priority
より20〜100%程度の余裕枠を付けます。ただしウォレットの自動提案が過剰な場合も多いので、手動で調整できるUIを使うとよいでしょう。
5.3 置き換え(Replacement)とキャンセル
送信済みTxの置き換えには、同じnonce
でPriority
を上げたトランザクションを再送します(一般にmax(Base+Tip)×1.1以上)。混雑時は最初から十分なPriority
を積んだ方が総コストは下がることが多いです。
6. タイミング戦略:安い時間帯と「空いているブロック」狙い
平日深夜〜早朝(UTC)にBase Feeが下がる傾向があり、イベント直前・人気ミント・オンチェーンゲーム開始直後は急騰しがちです。待てる取引は待つ、待てない取引はL2へ逃す、が原則です。さらに、ブロック提案直後〜次ブロック形成前の短時間は空きが出やすく、ここで送ると低いTipでも通りやすくなります。
7. メンンプールの読み方と失敗回避
メンンプールには未確定のTxが滞留します。自分のTxの位置と競合を観察できれば、必要なPriority
の最小値を推定できます。また、同一nonceの多重送信で意図しないキャンセルや高コスト置き換えが起きやすいので、送信キューをクリーンに保ちましょう。
ガス不足による失敗は、シミュレーション→十分なGas Limit→失敗時の即置き換えの運用で最小化します。
8. MEVを避ける:取引の「露出」を下げる
サンドイッチ等の被害は、公開メンンプールにTxを出すと起きます。対策として、プライベートRPC(バリデータへ直接バンドル)を使い、Txをメンンプールに公開しない方法があります。あるいは、スリッページ許容幅を狭める、小分割バッチで一撃の価格影響を下げるのも有効です。
9. L2とデータコスト(Blob含む)の実務
L2の手数料は、L2内の計算ガスとL1へ投稿するデータコストで決まります。データ圧縮の効率や混雑時のL1データ価格で費用は変動します。ブリッジやDEX執行をL2で完結できる設計なら、総コストは往々にしてL1より低く、しかもMEV被害も軽減されることがあります。
10. 承認とスワップの最適化
初回のみ必要なapprove()
は、必要額だけの承認か、無制限承認かのトレードオフです。セキュリティを重視するなら都度承認、頻繁に使うペアは上限広めに設定して承認回数を減らし、承認ガス+待ち時間を節約します。permit
やPermit2
対応なら、承認を署名に置き換えて承認Txを省略できます。
11. ブリッジの費用と遅延
ブリッジは、送出元のガス・到着側の受取ガス・プロトコル手数料・到着待ちの機会損失を合算で評価します。超短期の裁定なら、始めから必要チェーンに在庫を置く、ルーティングをL2内で閉じる方が勝ちやすいです。
12. 実戦チェックリスト(送信前30秒)
- 最新の見積ガスをシミュレーションで取得したか。
Gas Limit
は見積の1.2倍以上か。Priority
は必要最小になっているか。- イベント前後や混雑ピークを避けられるか。
- 可能ならプライベートRPCを使うか。
- 承認は署名で代替できないか(permit等)。
- 分割実行でスリッページ・MEV露出を下げられないか。
- 期待値式でコスト>エッジになっていないか。
13. ケーススタディ:DEXスワップのコストを32%削減
前提:単一プール経由のスワップを毎日10回、年間300日。初期運用では、平均Gas Used=150,000
、Base Fee=30 gwei
、Priority=3 gwei
、ETH=40万円/ETH。
初期コスト:(Base+Priority)×GasUsed
=33 gwei × 150k ≒ 4,950,000 gwei=0.00495 ETH(≒1,980円)。
改善:①深夜帯送信でBase=18
、②プライベート送信でPriority=1.5
、③シミュ精度向上でGas Used=130,000
。
改善後:19.5 × 130k=2,535,000 gwei=0.002535 ETH(≒1,014円)。
→ 約32%削減。年間3,000回で約290万円分の差(ETH価格一定仮定)。
14. よくある失敗と対策
- Gas Limit不足:見積に倍率をかける/コントラクトの分岐(ルート最適化)を理解。
- Tipの積み過ぎ:混雑時こそ「待つ」という選択肢。
Max Fee
は広く、Priority
は必要最小。 - 多重nonceで詰まり:保留Txを整理し、置き換え基準(×1.1)を決めて運用。
- 承認Txの乱発:permit/Permit2、必要額承認、頻度の高いペアは上限広め。
- 公開メンンプールで被弾:プライベート送信、スリッページ幅の見直し、分割実行。
15. まとめ:執行コストは「設計」で勝てる
戦略の優劣が拮抗するほど、最終的な差は執行コストで決まります。タイミング・パラメータ・ルーティング・送信経路の4点を設計し、常にメトリクス(平均Gas Used、成功率、置き換え率、1回あたりETH支払)を記録・改善してください。継続的なガス最適化は、複利的に効いてきます。
コメント