L2 Gas Tracker
2026-09-11 · By L2 Gas Tracker Research

ERC-20承認手数料:なぜUniswapでは2回の確認が必要なのか

MetaMask showing an ERC-20 token approval transaction before a Uniswap swap on layer 2

二つのポップアップが表示されるという疑問

DeFiでの初めての取引を行う際、誰もが実際に戸惑ってしまう瞬間があります。たとえばUniswapでトークンをスワップしようとしたとき、通常なら1回の確認だけで済むはずなのに、なぜか2回の確認が求められます。最初のポップアップには「Approve(承認)」、2回目には「Swap(スワップ)」と表示されます。多くのユーザーは、何も考えずに両方を承認してしまうか、あるいは詐欺に遭うのではないかと不安になって操作を中断してしまいます。しかし、どちらの反応もやや適切とは言えません。

この「Approve」は、ごく普通の操作であり、必ず必要となるものです。また、毎回ガス代がかかります。さらにこれは、DeFiを理解する上で最も重要な概念の一つでもあります。なぜなら、この操作は実質的に資金に関わるものであり、同時にユーザー自身がコントロールできる最大のセキュリティ上の手段でもあるからです。では、この「Approve」とは一体何なのか、そして実際にどれほどのコストがかかるのか、詳しく説明しましょう。

承認(Approval)とは実際に何なのか

ERC-20トークン(USDC、UNI、およびほぼすべてのトークン)には、以下のルールがあります:あなたのトークンは、あなた自身が送金した場合にのみ移動できます。Uniswapなどのスマートコントラクトは、あなたのウォレットから勝手にUSDCを取り出してスワップを完了させることはできません — 事前に許可を得る必要があります。この承認トランザクションとは、あなたがその許可に署名することを意味します。「私はUniswapコントラクトに対して、このトークンを最大X数量まで移動させる権限を与えます」。

そのため、スワップとは別に実行され、またスワップより先に行われるのです。一度承認を行えば、スワップコントラクトが資金をプルして、一連の処理で取引を完了させることができます。新しいトークンを新しいコントラクトと組み合わせて取引する際には、それぞれ個別の承認が必要です。たとえば、Uniswapに対してUSDCの承認を1度行えば、今後のUniswapにおけるUSDC取引は承認済みとなりますが、別のプロトコルでUSDCを利用する場合は、そのプロトコルに対して再度USDCの承認を行う必要があります。

承認にかかるコスト

これは他のトランザクションと同様に、ガス代がかかります。各チェーンにおける金額は以下の通りです:

L2では、この承認コストはほぼ無視できるほど微小なものですが、これは非常に重要な点です。なぜなら、mainnetでは承認コストが高いため、ユーザーが新しいプロトコルを試そうとする意欲そのものを阻害してしまうからです。一方、Baseでは、ちょっと興味を持ったトークンでも、コストが実質的にゼロに近いことから、気軽に承認を行えます。リアルタイム・トラッカーでは、クリックする前に現在が低コストのタイミングかどうかを確認できます。

限定承認 vs 無制限承認

承認操作を行う際、ウォレットは通常「無制限承認」をデフォルトとしています。つまり、そのトークンについて、契約先のコントラクトが今後いつでも無制限の金額を支出できるようになります。これは利便性が高いです:一度承認すれば、そのトークンとプロトコルの組み合わせについては、再び承認のポップアップが表示されません。しかし一方で、これがDeFiにおけるウォレット資産流出事件の多くを引き起こすセキュリティリスクでもあります。万が一、そのコントラクトがハッキングされたり、悪意ある方法でアップグレードされたりした場合、無制限承認によって攻撃者はあなたのウォレット内の当該トークンに常時アクセス可能になってしまうのです。

より安全な代替手段は、直近の取引で実際に使用する金額のみを対象とした限定承認です。ただし、この選択にはトレードオフがあります:次回のセッションでは再度承認が必要となり、毎回少額のガス代を支払う必要があります。メインネットではこのコストが高額であったため、実用的ではありませんでした。しかしLayer 2では、ガス代は数セント程度にまで低下しており、この状況が推奨事項を根本的に変えました。私は現在、信頼性にやや不安がある場合はすべて限定承認を用いており、頻繁に利用し、長年にわたり実績のあるごく少数のコントラクトに対してのみ無制限承認を残しています。Base上では、追加の承認にかかるコストは実質ゼロに近く、Baseにおけるガス節約ガイドで、この習慣の詳細が解説されています。

無料のパス:permit署名

ガスを消費せずに承認できる、より新しい標準があります。これは「permit」と呼ばれ、これをサポートするトークン(およびPermit2を利用するUniswapなどのプロトコル)では、トランザクションではなく署名付きメッセージによる承認が可能です。署名にはガスが不要です——ログイン時に見慣れた署名画面と同じものです。承認とスワップがまとめて処理されるため、オンチェーンで送信するのは1回のトランザクションだけです。

MetaMaskが承認時に「Confirm」トランザクションではなく「Sign」リクエストを表示した場合、あなたはこの無料のパスを利用しています——ぜひ活用してください。これはさりげない工夫ですが、多くのユーザーが取引ごとに数セントのコストを節約できただけでなく、追跡すべきトランザクションの数も減らすという、実用性の高いメリットを提供しています。

署名する前の要点

したがって、2つの承認プロンプトが表示された際には、これらは正当な権限設定であり、わずかなガス代(Base/Arbitrum上ではほぼゼロ)がかかります。また、「限定的」か「無制限」かという選択は、実際にセキュリティを左右する重要な判断です。私のルールはシンプルです——今まさに利用中のプロトコルのみを承認し、新規または規模の小さいプロトコルについては限定的承認を優先してください。また、これを単なる「税金」と捉えるのではなく、ご自身のトークンを常にご自身で管理・保有するためのコストと捉えてください。

この自己管理(セルフカストディ)こそが本質的な目的なのです。つまり、あなたに2度確認を求めるこの承認システムそのものが、悪意あるプロトコルがあなたのUSDCに一切アクセスできないように守っているのです。DeFi全体におけるコストの全体像を把握したい場合は、Uniswap手数料の内訳およびBaseガス料金計算ツールをご活用ください。これらはリアルタイムの数値を提供します。承認は意識的に——しかしガス代についてはもう心配する必要はありません。なぜならL2上では、実質的にガス代は発生しないからです。

低手数料でBase / Arbitrumで取引

L2ネットワークでswap、bridge、取引するための信頼できるプラットフォームを選択してください。

アフィリエイトリンク — 追加費用なしでコミッションを得る場合があります。