トークン承認(Approve・アローワンス)
別名: アプルーブ · approve · アローワンス · allowance · トークン許可
定義
トークン承認とは、DEXなどのスマートコントラクトに、あなたのウォレットから特定のトークンを指定量まで引き出す権限を与える操作です。
トークン承認の仕組み
イーサリアム系のチェーンでERC20トークンをDEXで交換したり、DeFiに預けたりするとき、最初に「承認(Approve)」の取引が必要になります。これは「このコントラクトは私のUSDCを○○まで動かしてよい」という許可です。
多くのアプリは手間を省くため、承認額を無制限にするよう求めます。正規のサービスでも、そのコントラクトに不具合や乗っ取りがあれば、承認済みのトークンを抜かれるリスクがあります。悪意あるコントラクトに承認すれば、なおさら危険です。
承認は取り消すまで有効です。ブロックエクスプローラーの承認確認ツールやウォレットの機能で、使っていないサービスへの承認を定期的に取り消しましょう。取り消しにも少額のガス代がかかります。
具体例
あなたが500 USDCをDEXでETHに交換するとします。承認画面で無制限ではなく、カスタム額として500 USDCを指定して承認し、その後スワップします。後日そのDEXのコントラクトに問題が起きても、残りの承認額は0なので、ウォレットに残る3,000 USDCは引き出されません。無制限で承認していれば、3,000 USDC全額が危険にさらされていました。
よくある失敗
- 承認画面の金額欄を確認せず、無制限の承認をそのまま許可すること。
- 一度しか使わないサービスへの承認を、取り消さずに放置すること。
- 承認は送金ではないから安全だと思い込み、見知らぬサイトで署名すること。
学んで試す
よくある質問
承認しただけでトークンは減りますか?
承認した時点ではトークンは動きません。ただし承認したコントラクトは、許可された範囲でいつでもトークンを引き出せる状態になります。
承認を取り消すにはどうすればよいですか?
ブロックエクスプローラーの承認確認ページや承認管理ツールで、対象のコントラクトの承認額を0に戻す取引を送ります。この取引にもガス代が必要です。