中級者用語を調べる
不正なトークン承認とは
- 執筆
- CRYPTO PORT 編集部
- 公開日
- 更新日
- 読了目安
- 5 分
結論
トークンの承認(approve)は、コントラクトに対して自分のトークンを動かす権限を与える操作です。悪意のあるサイトはこれを「接続」や「受け取り」のように見せかけ、上限なしの権限を取ろうとします。承認は署名した時点で有効になり、取り消すまで残り続けるため、定期的な棚卸しが必要です。
要点
- 承認はトークンを動かす権限を渡す操作
- 上限なしの承認は残高全部が対象になる
- 署名画面で対象トークンと上限を確認する
- 使い終わった承認は取り消して残さない
定義
トークン規格に備わる、指定したコントラクトに自分の残高を動かす権限を与える仕組み。悪意ある相手に上限なしで与えると、後から任意のタイミングで残高を移される。
分散型取引所などでトークンを扱うには、まずコントラクトに「動かしてよい」と許可を出す必要があります。これ自体は正常な仕組みです。問題は、許可の上限を無制限に設定できることと、署名画面の文言が一般利用者には読み取りにくいことです。
悪意のあるサイトは、エアドロップの受け取り、NFTのミント、ウォレット接続といった無害そうな見た目で承認を求めます。署名した直後に資金が動くとは限らず、数日後にまとめて移されることもあります。「署名しても何も起きなかったから大丈夫」という判断は成り立ちません。
確認すべきは、署名画面に表示されている対象トークン、権限を得る相手のアドレス、そして上限の数値です。金額が「無制限」や極端に大きい数になっている場合は、そこで止めます。承認の内容が読めない、あるいは表示されないウォレット画面が出たときも、同じく中断するのが安全です。
承認は一度与えると自動では消えません。ブロックチェーンのエクスプローラや、ウォレットの権限管理画面から現在有効な承認を確認し、使っていないものを取り消す作業を定期的に行ってください。取り消しにも手数料はかかりますが、残高全部と比べれば小さな費用です。
注意点
- · 署名画面で対象トークン・相手のアドレス・上限額を読み、無制限の承認は避ける
- · 使い終わったサービスの承認は、権限管理画面から定期的に取り消す
- · 普段使いのウォレットと保管用ウォレットを分け、接続するのは普段使い側だけにする