あなたがDAppでトークンを使用するたびに、通常はまずそのDAppのスマートコントラクトに対して「承認(Approve / アプルーブ)」を行い、ウォレット内の特定のトークンを操作する権限を与える必要があります。この承認は、あなたがそのDAppをもはや使用しなくなったとしても、永遠に残り続けます。もしある日、そのDAppのコントラクトがハッカーに攻撃されたり、プロジェクトの開発者が資金を持ち逃げ(ラグプル)したりした場合、ハッカーはあなたが以前に与えた承認を利用して、あなたのウォレット内のトークンを直接送金してしまう可能性があり、あなたは全く気づかないかもしれません。これが、不要になったDAppの承認を定期的に確認し取り消す(Revoke / リボーク)ことが、Web3ウォレットのセキュリティ管理において最も重要な習慣の1つである理由です。これは、自分のクレジットカードに見知らぬ自動引き落としサービスが紐付けられていないか定期的にチェックするのと同じです。多くの人がDeFiの操作中に様々なコントラクトに承認を与え続け、使い終わったら忘れてしまい、日々の積み重ねで大量のセキュリティ上の隠れたリスクを残しています。操作を行う前に、バイナンス公式サイトでアカウント登録とWeb3ウォレットの開設を済ませ、オンチェーンの承認を管理するためにスマホに最新版のバイナンス公式アプリをインストールしておく必要があります。Appleスマホユーザーでアプリの再インストールが必要な場合は、iOSインストールガイドを参照してください。以下に、承認の原理と取り消し方法について詳しく解説します。
DAppの承認(Approve)メカニズムを理解する
トークンの承認(Token Approval)とは何か
分散型取引所(DEX、例えばPancakeSwap)で初めてUSDTを使って他のトークンに交換(スワップ)する際、PancakeSwapのスマートコントラクトはあなたのウォレット内のUSDTを直接動かすことはできません。あなたはまず「承認」のトランザクションを実行し、USDTのコントラクトに対して「PancakeSwapのコントラクトアドレスが私のウォレット内のUSDTを使用することを許可する」と伝える必要があります。この承認はブロックチェーン上に記録され、その後、あなたが取引を確認した際に、PancakeSwapは自動的にあなたのウォレットからUSDTを差し引いて交換を完了させることができます。
承認の金額
承認する際には、承認金額の上限を指定します。よくある2つのパターンがあります:
- 正確な金額の承認:今回の取引に必要な金額のみを承認します。例えば100 USDTを交換したい場合、100 USDTだけを承認します。次回交換する際には再度承認が必要になり、Gas代(手数料)が1回余分にかかりますが、より安全です。
- 無制限の承認(Unlimited Approval):極めて大きな金額(通常は2^256-1という天文学的な数字)を承認し、実質的にDAppに無制限の使用権を与えます。これにより、今後取引のたびに再承認する必要がなくなり、Gas代を節約できますが、リスクははるかに高くなります。
ほとんどのDAppはデフォルトで無制限の承認を要求します。これはユーザー体験を良くするため(操作ステップを減らすため)です。しかし、セキュリティの観点から見ると、無制限の承認は、コントラクトが攻撃された場合、攻撃者が金額の制限なくあなたのトークンを送金できることを意味します。
承認の持続時間
トークンの承認は一度実行されると、ブロックチェーン上に永久に存在し、期限切れになることはありません。あなたが自ら取り消さない限り、この承認はずっと有効です。これが、あなたが半年前に使ったあるDAppのコントラクトが、現在でもあなたのトークンを操作できる理由です。
既存の承認を確認する
バイナンスWeb3ウォレットで確認する
バイナンスWeb3ウォレットには承認管理機能が組み込まれている場合があります。Web3ウォレットの「セキュリティ」または「設定」ページに進み、「承認管理」または「Token Approvals」といったオプションを探します。これがあれば、各チェーンでどのDAppに承認を与えたかを直接ここで確認できます。
サードパーティのツールで確認する
もしバイナンスアプリに承認管理機能が組み込まれていない場合は、バイナンスWeb3ウォレットのDAppブラウザで以下のサードパーティツールにアクセスして使用できます:
- Revoke.cash:複数のEVMチェーンをサポートしており、インターフェースがシンプルで直感的です。
- DeBank:承認管理に加えて、完全なDeFi資産の追跡も提供します。
- Etherscan Token Approval Checker:イーサリアムの公式ブロックエクスプローラーの承認確認ツールです。
- BSCScan Token Approval Checker:BSCチェーンの承認確認ツールです。
Revoke.cashを例にとると:DAppブラウザで revoke.cash にアクセスし、あなたのWeb3ウォレットを接続すると、ウェブサイトがあなたの選択したネットワーク上のすべてのアドレスの承認記録をスキャンしてリストアップします。
承認リストに含まれる情報
承認を確認する際、以下の情報が表示されます:
- 承認されたトークン:どのトークンを承認したか(USDT、WBNBなど)。
- 承認されたコントラクトアドレス:どのスマートコントラクトに承認を与えたか。
- 承認金額:承認の金額上限(巨大な数字や「Unlimited」と表示されている場合は無制限の承認です)。
- 承認時間:いつ承認を行ったか。
承認を取り消す(Revoke)操作手順
Revoke.cashを通じた取り消し
- バイナンスWeb3ウォレットのDAppブラウザで revoke.cash を開きます。
- あなたのWeb3ウォレットを接続します。
- 確認したいネットワーク(BSC、Ethereumなど)を選択します。
- スキャンが完了するのを待つと、ページにすべての承認がリストアップされます。
- 取り消したい承認を見つけ、その横にある「Revoke」ボタンをタップします。
- ウォレットの取引確認ウィンドウがポップアップするので、確認してGas代を支払います。
- 取引が承認(コンファメーション)されると、その承認は取り消されます。
ブロックエクスプローラーを通じた取り消し
BSCScanを例にとります:
- bscscan.com にアクセスします。
- ウォレットを接続するか、あなたのウォレットアドレスを入力します。
- Token Approvals のページに入ります。
- 取り消したい承認を見つけ、「Revoke」をクリックします。
- 取引を確認し、Gas代を支払います。
承認取り消しのGas代
承認の取り消し自体も1つのオンチェーントランザクションであり、Gas代を支払う必要があります。BSC上で1つの承認を取り消すにはおよそ0.1ドル未満ですが、イーサリアム上では数ドルかかる場合があります。取り消す必要のある承認が多数ある場合、費用は積み重なります。高リスクの承認(大口の承認、無名なDAppの承認)を優先して取り消し、低リスクのものはGas代が安い時に処理することをお勧めします。
どの承認を優先して取り消すべきか
高優先度:直ちに取り消す
- 知らないコントラクトアドレス:あるコントラクトに承認を与えた覚えがない場合、またはコントラクトアドレスが疑わしい場合は、直ちに取り消してください。
- すでに逃亡(ラグプル)またはハッキングされたプロジェクト:あなたが以前承認を与えたプロジェクトでセキュリティ問題が発覚したり、すでに運営を停止していたりする場合は、直ちに取り消してください。
- 小規模プロジェクトへの無制限の承認:あまり有名ではない小規模なプロジェクトに無制限の承認を与えた場合、リスクが高いため取り消すことをお勧めします。
- 長期間使用していないDAppの承認:3ヶ月以上使用していないDAppの承認は取り消してください。
中優先度:タイミングを見て取り消す
- 主流DAppの無制限の承認:UniswapやPancakeSwapなどのトップクラスのプロジェクトは比較的安全ですが、頻繁に使用しない場合は無制限の承認を取り消すことをお勧めします。
- 使用を停止した有名なプロジェクト:例えば、以前は使っていたが今は使っていない有名なDeFiプロトコルなど。
低優先度:保持してよい
- あなたが頻繁に使用しているDApp:もし毎日PancakeSwapで取引しているなら、承認を保持しておくことで、毎回再承認する際のGas代を節約できます。
- 正確な金額の承認:承認金額が非常に小さい(例えば100 USDT)場合、万が一問題が発生しても損失は限定的です。
予防的なセキュリティ対策
承認時に正確な金額を選択する
DAppに承認を与える際、多くのウォレットでは承認金額をカスタマイズできます。何も考えずに無制限の承認の確認ボタンを押すのではなく、今回使用する必要がある正確な金額を手動で入力してください。次回も再承認が必要になりますが、安全性は大幅に向上します。
専用のやり取り(インタラクション)ウォレットを使用する
もし頻繁に様々なDAppを使用するのであれば、DAppとのやり取り専用のウォレットアドレスを1つ作成し、そこには少額の資金だけを入れておくことをお勧めします。大口の資産は、外部への承認を一切行わない別の「金庫」アドレスに保管します。そうすれば、やり取り用ウォレットの承認が悪用されても、損失は限られます。
セキュリティニュースにタイムリーに注目する
暗号資産のセキュリティインシデントは頻繁に発生します。信頼できるセキュリティニュースソース(SlowMist、PeckShieldなど)をフォローし、あなたが承認したプロジェクトでセキュリティ問題が発生した場合は、直ちに承認を取り消してください。
定期的なクリーンアップの習慣をつける
2週間に1回から1ヶ月に1回、承認の見直し(オーディット)を行うことをお勧めします。定期健診と同じように、不要な承認を定期的にクリーンアップすることで、長期的なリスクを効果的に下げることができます。スマホのカレンダーに定期的なリマインダーを設定しておくと良いでしょう。
承認に関するよくある詐欺の手口
悪意のある承認フィッシング
詐欺師は一見正常に見えるDAppを作成し、ウォレットを接続してトークンを承認するように誘導します。あなたが承認した途端、彼らは即座にコントラクトを通じてあなたのトークンをすべて送金してしまいます。防ぐ方法:出所不明のDAppを使用しないこと、疑わしいリンクをクリックしないこと。
偽のエアドロップ詐欺
あなたのウォレットに「エアドロップ」と称する見知らぬトークンが届くことがあります。あなたがそのトークンを売ろうとすると、偽のDEXに誘導され、あなたの保有する主要トークンの承認を求められます。一度承認すると、資産が盗まれます。防ぐ方法:ウォレットに突然現れた見知らぬトークンは無視してください。
承認のアップグレード詐欺
一部の悪意のあるコントラクトは、あなたが承認を与えた後にコントラクトのロジック(プログラム)をアップグレードし、元々正常だった機能をコインを盗む機能に変えてしまいます。この種の攻撃は高度であり、一般ユーザーが識別するのは困難です。防ぐ方法:監査済みの有名なプロジェクトとのみやり取りし、未検証のコントラクトの使用を避けてください。
まとめ
DAppの承認管理はWeb3ウォレットのセキュリティにおける重要な一環であり、その核心は「定期的なクリーンアップ」という言葉に尽きます。DAppを使用し終わるたびに承認を確認し、もう使わないものはきっぱりと取り消すことを忘れないでください。承認する際は、無制限の承認ではなく、可能な限り正確な金額を使用してください。この習慣を保つことで、あなたのWeb3ウォレットは安全な環境で長期的に稼働することができます。覚えておいてください:ブロックチェーンの世界では、チェーン上の損失はほぼ元に戻せないため、安全が常に第一です。