同じエントリーとクローズでも、執行の質が悪いと年利換算で数%の差につながります。DEXの取引コストは、①価格影響(スリッページ)②ガス代③MEV被害(サンドイッチ等)に大別できます。本稿では、メンンプールの性質とEIP-1559のガス設計、ノンス管理、Private RPCの使い方、注文分割(TWAP)まで、実務で即使える手順を整理します。
1. なぜ「執行アルファ」が効くのか
AMM(例:x*y=k)では、注文サイズがプール準備金に対して大きいほど価格が不利に滑ります。概算では価格影響は impact ≈ size / liquidity の一次近似で把握できます。例えばUSDC/ETHのプールに10,000 ETHと30,000,000 USDCがあるとき、100 ETHの買いは約1%前後の影響を与えます(実際は曲線的で、出力価格はΔP = 1 – √(L/(L+size))に近づきます)。
ガス代は 実支払 = (baseFee + priorityFee) × gasUsed × ETH価格 で決まります。スワップのgasUsedが120,000、baseFeeが20 gwei、priorityFeeが1 gwei、ETHが3,000 USDなら、およそ7.56 USDのガスとなります。小口・高頻度になるほどガスの占有率が増え、純利益を圧迫します。
MEVはサンドイッチやフロントランで実行価格を悪化させます。公開メンンプールにブロードキャストされたトランザクションは、アービトラージャに観測されやすく、スリッページ許容幅が広いほど狙われやすくなります。
2. 最短で効く実務手順(チェックリスト)
2.1 Private RPCの利用
取引を公共メンンプールに流さず、バリデータや中継ノードに直接送信するPrivate RPCを使います。これによりサンドイッチのリスクを大幅に低減できます。ウォレットの「ネットワーク追加」からカスタムRPCを設定し、対象チェーンに対応した保護付きエンドポイントを有効化します。
2.2 スリッページ許容値の最適化
許容幅はデフォルトの1%では広すぎます。板厚・ボラティリティ・注文サイズから逆算し、0.2%~0.5%を起点に調整します。許容幅は「攻撃ベクトル」でもあるため、広げる前提であれば必ずPrivate RPCと併用します。
2.3 EIP-1559のガス設計
Max Fee(上限)とPriority Fee(チップ)を分離して考えます。
・Max Fee:baseFee変動に備えた上限。目安は「直近baseFee×(1.2~1.5)+最小チップ」。
・Priority Fee:一般時は0.5~1.0 gwei程度で十分なことが多く、Private RPCではさらに低く抑えられます。
・Replace-By-Fee(RBF):詰まり時はPriority Feeを微増して置き換えます。過剰な上乗せは不要です。
2.4 ノンス管理(整流化)
同一アカウントはトランザクションがノンスで直列化されます。承認(Approve)を先に投げるとスワップが詰まることがあります。Permit/Permit2対応なら、承認とスワップを単一トランザクションにまとめ、「承認詰まり」を回避します。ペンディングが溜まったら低ガスの古いTxをRBFで明示的にキャンセルし、詰まりを解消します。
2.5 ルーティングと注文分割
アグリゲーターで「部分約定可」「複数プール分割」を有効にし、価格影響を下げます。大口はTWAP(時間分割)でブロック間に散らし、1トランザクションあたりのサイズを下げます。目安としては、impact目標 ÷ 取引回数が0.2%未満に収まるよう調整します。
2.6 約定タイミング
ガス込みコストが重いチェーンでは、オフピーク(現地深夜帯)や混雑イベント回避でbaseFeeを抑えます。ボラが急騰している間は敢えてTWAPの間隔を広げ、フィルを遅らせます。
3. ケーススタディ:同じスワップでどれだけ差が出るか
条件:ETH価格3,000 USD、USDC/ETHの有効流動性10,000 ETH、買い100 ETH。ガスは120,000、baseFee 20 gwei。
ナイーブ実行:公共メンンプール、スリッページ1%、デフォルトガス。
・価格影響:約1.0%(約3,000 USD相当の不利)
・ガス:7.56 USD
・MEV被害:0.05%想定(1,500 USDの約0.05%=0.75 USD)
最適化実行:Private RPC、スリッページ0.3%、分割2回、Priority 0.5 gwei。
・価格影響:0.50%前後(分割効果)
・ガス:2本合計で約8.0 USD(若干増)
・MEV被害:理論上ほぼ0(Private経由)
差分:約3,000×(1.0%-0.5%)=15 USD改善、MEV 0.75 USD回避、ガス+0.44 USD増。合計で約15.31 USD改善。これを週2回、年100回繰り返すと1,531 USDの差です。資金回転が高い戦略ほど効きます。
4. サンドイッチ対策の実務ディテール
・Private送信:公開メンンプールに出さないことが最重要です。
・スリッページを狭く:許容幅を狭めるほど攻撃が成立しにくくなります。
・単一コール:許可とスワップを一体化して手がかりを減らします(Permit/Permit2対応)。
・期限・乱数:deadlineを短く、可能ならサルト(salt)やランダム化で予測性を下げます。
・流動性選択:薄いプールは避け、深いプールまたは複数経路を選択します。
5. ガス削減の具体テクニック
・不要な呼び出しを省く:複数回の承認・転送をまとめます。
・再利用:一度高額ガスで承認したトークンはアローワンスを維持し、再承認を避けます(ただしセキュリティと相談)。
・L2の活用:目的と流動性が合うならロールアップ(Optimistic/ZK)での取引を検討します。
・キュー管理:ペンディングを溜めず、RBFで整理してガスの二重払いを防ぎます。
6. 失敗パターンとリスク
・詰まりからの価格逆行:ガス不足で約定が遅れ、想定と逆方向に動く。→Max Fee設計とRBF運用で回避。
・許容幅の設定ミス:狭すぎて不成立、広すぎて被害拡大。→ボラティリティとサイズから動的に設定。
・承認詰まり:Approveが先に並び、スワップが停止。→Permit併用か、承認とスワップの順序制御。
7. 実装メモ(ウォレット&アグリゲーター)
1) ネットワーク設定でPrivate/保護付きRPCを追加して既定にします。
2) アグリゲーターで「部分約定可」「複数経路」「手数料表示」「MEV保護」をON。
3) スリッページ0.2%から開始し、約定失敗が出たときのみ0.1%刻みで拡張。
4) Max Fee=直近baseFee×1.3+0.5 gwei、Priority=0.5 gweiを初期値。
5) 大口は2~5本にTWAP分割。各本のdeadlineは短め(例:90秒)。
8. まとめ
執行の質は「戦略の勝率やリスクリワード」と同程度にパフォーマンスへ効きます。Private RPC、適切なスリッページ、EIP-1559のガス設計、ノンス管理、TWAP分割という基本セットを徹底するだけで、同じ相場観でも結果は数%改善します。まずはスモールスタートで、チェックリスト化して標準手順に落とし込みましょう。
コメント