トークン承認(承認額)とは?
トークン承認は、スマートコントラクトがウォレットからトークンを動かせるようにするものです。アプリが承認を求める理由、無制限の承認が危険な理由、取り消す方法を説明します。
2026年11月8日 更新
要点
トークン承認(承認額)は、決まった額までのトークンをウォレットから動かすことをスマートコントラクトに許可するものです。DeFi アプリはトークンをスワップしたり預け入れたりする前に承認を必要とし、多くは無制限の額を求めます。この許可は取り消すまで残るので、あとで攻撃されたコントラクトへの古い承認によって、そのトークンが今でも抜き取られることがあります。
アプリが承認を求める理由
Ethereum やほかの EVM チェーンでは、コントラクトが自分だけでウォレットからトークンを持ち出すことはできません。DEX が USDC をスワップする前に、USDC を動かすことを承認します。つまり、そのコントラクトに承認額を設定します。そのあとでスワップが実行できます。
アプリは、次回また承認しなくて済むように無制限の承認額を求めることがよくあります。便利ですが、そのウォレットで今後保有するそのトークンのすべてを、そのコントラクトが動かせるということでもあります。
なぜ重要か
- コントラクトは攻撃される。一度使っただけのプロトコルがあとでハッキングされ、その承認ごと悪用されることがあります。
- ドレイナーが悪用する。偽のサイトがありふれたものに見える承認を求め、そのトークンを空にします。
- 忘れやすい。何年も前の承認も、今日の承認と同じように有効です。
どうすればよいか
アプリで選べるときは、正確な額だけを承認しましょう。ときどき承認を確認し、必要のないものを取り消します。使っていないコントラクトや検証できないコントラクトへの無制限の承認から始めてください。取り消しは小さなオンチェーン取引で、トークンが動くことはありません。手順は危険なトークン承認を見つけて取り消す方法をご覧ください。
Burokku では
承認ツールでは、すべてのウォレットとチェーンにある有効な承認額をリスクスコア付きで一覧表示し、それぞれの承認先が今すぐ持ち出せる額もわかります。取り消しは、ウォレットが許す限り少ない署名で行えます。危険な承認のアラートは、いずれかのウォレットが未検証のコントラクトに無制限の承認を与えるとすぐにお知らせします。
よくある質問
- 承認に期限はありますか?
- 標準的なトークン承認にはありません。どれだけ前に与えたものでも、取り消すかゼロに設定するまで残ります。
- メッセージへの署名は、承認より安全ですか?
- そうとは限りません。Permit や Permit2 を使うと、アプリは取引ではなく署名で承認額を得られます。ガス代がかからないぶん、気づかないうちに与えてしまいやすくなります。署名する内容を読みましょう。