【NFT】不要なコントラクトをrevokeしてみた
はじめましてのヒトは、はじめまして。
いつもの皆様、こんにちわ。
大葉さんです。
前回のお話
OpenSea新コントラクト移行に合わせてNFT盗難が起きており、現在、原因追及のお祭り騒ぎ状態です。万が一、E-mail経由で操作しちゃった場合は「怪しげなコントラクトをrevokeしましょう」とのことです。しかしながら「そもそもrevokeって何?」「revoke出来るサイトがわからない」「サイトに辿り着いても、どうやったら良いかがわからない」みたいな意見がちらほら聞こえて来たので、情報まとめてみました。お役に立てれば。
なぜこの記事を書いたのか?
下記3つを伝えたかった為です。
・「revoke」操作が必要になる背景
・「revoke」操作推奨のサイト(Ethrescan.io / revoke.cash の2択)
・Etherscan.ioを使った「revoke」操作の説明
DeBankによるrevokeは、NFTトークンに対応していない為、今回の攻撃に対しては無力です。revoke.cashが使い易いのですが、サイトのキャパシティがあまりないので、多少不親切であったとしても、Etherscan.ioの操作を覚えておいた方が良いと思いました。
今回の騒動に限らず、自分で契約したつもりのない怪しげなコントラクトは、定期的にrevokeして行きましょう(ガス代は掛かりますが、、、)反映までに2−3時間かかるケースもあるので、確認は時間を置いてから実施してね。
以上が伝えたい事です。ここからは詳細です。
■「revoke」操作が必要になる背景
「revoke」とは、怪しげなサイトにメタマスクを繋いでしまい、ついうっかり悪質なコントラクトを承認してしまった場合の、契約破棄方法です。Twitterにて、とても分かり易いご説明を頂きましたので、ご紹介します。
合わせて読みたい、トラブルに巻き込まれた際の対応方法。
ご指摘、ご教授して頂き、本当にありがとうございました。
■「revoke」操作推奨のサイト
さて、ここからはHowTo(=どうやって実行するの?)のお話。「revoke」操作が簡単に行える有名なサービスとしては、DeBANKがあります。
しかしながら、DeBankのコントラクト管理は、ERC-20のみが対象です。
NFTに仕込まれたコントラクトの脅威を排除する場合は、以下のサイトを利用する必要があります。
トップページのボタンを切り替えるだけで、NFTコントラクトも表示可能。
とっても素敵なサイトなのですが、キャパシティが少なめなので、トラブル発生時にサイトが落ちてしまうかもしれません。そんな時はどうするか?
みんなの強い味方、Etherscan.ioを利用しましょう!
■Etherscan.ioによるコントラクト確認
ETHブロックチェーン・エクスプローラーのイーサスキャン(Ethrescan)には、コントラクトの確認、および、revoke機能も実装されています。操作が少し分かり難いんですケド…
それでは早速、Etherscanを利用して操作してみましょう。revoke操作を行う前段階として、まずは保有するコントラクト契約の一覧を表示してみたいと思います。
まず、以下のサイトをクリック。
https://etherscan.io/tokenapprovalchecker
検索欄にETHアドレスかENSを入力して検索すると、該当アドレスが保有するコントラクト一覧が表示されます。
コントラクトはトークンタイプ別に3つのタブがあります。必ず全て確認しましょう。
ERC-20:
DeFi等で交換されるトークンに関するコントラクトです。
MATIC/WETHなどのスワップに関する契約が含まれます。
ERC-721:(※Ethrescan.io / revoke.cash のみで実装)
NFTアート等で利用されるNFTに関するコントラクトです。
Coval / Foundationで作成されたNFTがこの形式です。
「By Contract」のスイッチをONにすることで、契約一覧が表示されます。
ERC-1155:(※Ethrescan.io / revoke.cash のみで実装)
NFTアート等で利用されるNFTに関するコントラクトです。
OpenSeaで作成されたETHチェーン上のNFTがこの形式です。
ワタクシのWalletでは、契約なしでした。
以上でコントラクト一覧の確認が完了です。ここまでの操作は、自分以外のアドレス/ENSについても調査可能です。
■Etherscan.ioによる「revoke」操作
それでは、改めて「revoke」操作を試してみましょう。今回はERC-20を例にオペレーション紹介しますが、ERC-721・ERC-1155についても同様です。
ここをクリックします。
メタマスクをConnectします。
左上のアイコンがグリーンになります。
接続したメタマスクが、現在表示されているコントラクトのオーナーと一致する場合のみ「Revoke」ボタンがクリック可能になります。
Revokeの確認画面が表示されます。オペレーションを進める場合は「Revoke」をクリックしてください。
※このタイミングでRevokeの為のGAS代を請求されます。
「Revoke」処理が進むと、ポップアップに「View your transaction」ボタンが表示されるので、こちらで進捗を確認してください。通常10分程度で承認されます。
ERC-20のコントラクト(Matic Token)が1件、削除されました。
最後に[Reset]をクリックして、Etherscanとメタマスクの接続を切断してください。お疲れ様でした。
本日はここまで。
でわでわでは!
次のお話
この記事が気に入ったらサポートをしてみませんか?