トークン承認の取り消し
- 執筆
- CRYPTO PORT 編集部
- 公開日
- 更新日
- 読了目安
- 6 分
結論
DeFiやNFTを使うと、コントラクトに対して「自分のトークンを動かしてよい」という承認が残ります。承認は明示的に取り消すまで有効で、後からそのコントラクトが悪用されれば資産が抜かれる経路になります。定期的に一覧を確認し、使っていない承認を取り消す習慣をつけてください。
要点
- 承認はサイトとの接続を切っても残り続ける。別途の取り消し操作が必要
- 無制限の承認は、その後いつでも全額を動かせる権限を与えたことになる
- 取り消しはブロックチェーン上の取引なので、ガス代がかかる
- 取り消しツールは必ず公式ドメインを確認して使う。偽サイトが多い
定義
特定のコントラクトに与えていたトークン操作の権限(approve)を、後から取り消すブロックチェーン上の取引のこと。承認の残存は、資産流出の主要な経路のひとつ。
なぜ承認という仕組みがあるのかを先に押さえておくと、判断が楽になります。DEXでのスワップやNFTの出品では、コントラクトが利用者に代わってトークンを動かす必要があります。毎回の取引で個別に許可を取ると操作が煩雑になるため、最初に「このコントラクトはこのトークンをこの数量まで動かしてよい」という権限を設定しておく設計になっています。これが承認(approve)です。
問題は、この権限が期限を持たないことです。一度与えた承認は、明示的に取り消すまで有効なままです。多くのサイトが既定で「無制限」の数量を提案するため、利用者は気づかないうちに、そのコントラクトがいつでも全額を動かせる状態を作っています。そのコントラクトに脆弱性が見つかったり、運営者が悪意を持ったりした場合、数年前に一度使っただけのサービスから資産が抜かれることがあります。
棚卸しの手順は、おおむね次のとおりです。まず承認一覧を表示するツールを使い、自分のアドレスを入力して、どのコントラクトにどのトークンの権限を与えているかを確認します。この種のツールとしては Revoke.cash が知られており、アドレスを入れるだけの確認であればウォレットを接続する必要はありません。確認と取り消しで必要な操作が違う、という点を覚えておいてください。
取り消したい承認を選ぶと、ウォレットに署名の要求が来ます。ここで初めて接続と署名が必要になり、ブロックチェーン上の取引として実行されるためガス代がかかります。承認が多数残っている場合、1件ずつ取り消すとガス代が積み上がるので、金額が大きいトークンや、明らかに使っていない古いコントラクトから優先的に処理するのが現実的です。
運用としては、大きな金額を扱うアドレスと、新しいDAppを試すアドレスを分ける方法が有効です。試すためのアドレスには必要最小限しか置かず、そこで承認が積み上がっても損失の上限が決まっている状態を作ります。取り消しの手間を減らすより、失っても困らない設計にするほうが確実です。
注意点
- · 承認取り消しツールを名乗る偽サイトが多数あります。必ず公式ドメインであることを自分で確認し、検索広告やSNSのリンクからは入らないでください
- · 取り消しの過程でシードフレーズや秘密鍵の入力を求められることは絶対にありません。求められたら詐欺です
- · すでに資産が流出したあとに承認を取り消しても、失われた分は戻りません。定期的な棚卸しは、事後対応ではなく予防策です
よくある質問
承認を取り消すと、そのサービスは使えなくなりますか?
次に同じ操作をするときに、あらためて承認を求められるだけです。サービスが使えなくなるわけではありません。取り消しのたびにガス代がかかるため、頻繁に使うサービスは残し、使っていないものから整理するのが現実的です。
どのくらいの頻度で確認すべきですか?
決まった基準はありませんが、新しいDAppをいくつか試したあとや、利用しているサービスに問題が報じられたときは確認の機会です。定期的な棚卸しを習慣にしておくと、いざというときの対応が早くなります。