Revoke(リボーク)とは何かやり方や重要さを詳しく紹介
Revoke(リボーク)とは
スキャム(詐欺)によるNFT盗難被害が多数報告されています。せっかく自身で購入した大切なNFTがスキャムによって盗まれてしまうことは誰にとっても避けたい出来事であることは間違いありません。
スキャム対策、盗難対策については様々な注意事項、対策がありますので、ぜひそれらをご参照ください。本サイトでも「NFTの詐欺被害に遭わないために/遭ったらどうすべきか?」という記事で盗難対策について解説をしました。ぜひご覧ください。
その上で今回は、Revoke(リボーク)の方法について解説します。
Revokeは「取り消し」を意味する言葉です。スマートコントラクトにおける「Revoke」とは「不正なコントラクトを許可してしまい、あなたのウォレットの中にあるNFTをスキャマー(詐欺師)が触れる状態にある時にその許可を取り消す」ことを意味します。
接続/署名/許可の違いを知ろう
基本的にMetamaskなどのウォレットを使用しスマートコントラクトを操作する方法は「接続」「署名」と、「Approve(承認・確認・許可)」に分けられます。
※Approveとは承認、確認、許可の意味です。本稿では暗号通貨ウォレットのMetamaskで行う承認作業(承認や確認ボタンをクリックすること)をApproveと呼びます。
このうち、接続は「自分がそのサイトの情報を見るため」に行い、署名は「自分で自分のウォレットの中身を操作するために」行う、と考えてよいでしょう。(サイトにより多少の差はあります)
ですから接続/署名には大きなリスクはありません。
※もちろん、大きなリスクがないといっても、そもそも怪しげなサイトには接続しない/署名しないほうが無難です。
Approveには細心の注意を
接続/署名には大きなリスクはありません。しかし許可/承認を意味する「Approve」には細心の注意が必要です。
なぜならこれはサイト側があなたのウォレットの中身について何かしらの操作を行うことを「許可」する、という意味だからです。
多くの通常のサイト(例えばOpenseaなど)の場合、その「操作」は通常の操作に限られています。例えば、Openseaが「ある人があなたのNFTを◯ETHで買いたいと言っています。その◯ETHをあなたに送るので、その代わりにそのNFTをその人に送っても良いですか?」といった手続きです。通常のサイトでこういったトランザクション(取引)を「Approve」することは基本的に問題がありません。
しかし中には詐欺サイトなどではスキャマーが「あなたのウォレットのNFTをすべてこちらが無料でもらっていきます。許可しますか?」といった手続きを求めてくる場合があります。
ほとんどが英語であったりプログラミング言語で書かれているので多くの方は「よくわからないから許可しておこう」と許可してしまい、NFTが盗まれてしまう、これが「不正なトランザクション(取引)をApproveさせる」という手法の詐欺です。
Approveの取り消しが「Revoke」
この不正なトランザクションをApproveしてしまった場合には、このトランザクションへの許可を取り消すこと、つまり、Revokeする必要があります。
先述したように、ウォレットの操作において、接続/署名をしているだけでは、悪意あるサイト、スキャマーはあなたのウォレットの中身に触れることは出来ません。
しかし「あなたのウォレットの中身を無料ですべて持っていってもいいですか?」というトランザクションを万が一、Approveしてしまうと、スキャマーは常にあなたのNFTに触ること、そしてそれを持ちさることが可能になってしまいます。
もしも、意図せぬかたちでこのようなApproveをしてしまったら、Revokeが必要になります。
Revokeがなぜ重要なのか?
なぜRevokeが重要なのでしょうか?それは、一度許可したトランザクションはRevokeをしない限り残り続ける、からです。
悪意あるトランザクションに対する「許可」を取り消さない限り、仮にサイトへのウォレット接続を切っても、サイトを閉じても、パソコンの電源を落としても、悪意あるサイトはあなたのNFTを自由にする、場合によっては勝手に持っていく権利を持ち続けます。
図にするとこうなります。
(引用元:pokena.eth | ぽけなさんのツイート)
あなたのNFTがすべて取られてしまい、ウォレットが空っぽになった後でもこの権限は残り続けます。
つまりその状態で、例えばあなたが新しいNFTを購入してこのウォレットに入れたとしたら、それもまたスキャマーは盗むことができしていまいます。つまり、権限が取り消されていない限り(Revokeしていない限り)、スキャマーは常にあなたのウォレットの中のNFTを盗み続けられる、ということになるのです。
Revokeする方法
Revokeをする方法は決して難しくありません。もっとも一般的なものは「Revoke.cash」というWebサービスを利用する方法です。
Revoke.cashを使用したRevoke
具体的にRevoke.cashでのRevokeを画面と共に解説します。
1.Revoke.cashにアクセスをしてください。
URLは「https://revoke.cash/」です。必ずURLを確認するようにしてください。特にスキャムにあった直後、焦ってRevokeをしようとしているとGoogleでRevokeとだけ調べてアクセスする方がいます。そういう場合にニセサイトがGoogle広告で出てきてしまい、そこにアクセスし更に被害が大きくなったという事例もあります。URLは必ず確認してください。
2.ウォレットを接続します。
右上のConnect Walletボタンからウォレットを接続してください。そうするといま自分の保有しているNFTをどこに許可しているかが一覧で確認できます。
例えばこれは、CryptoNinjaPartnersを2022年5月24日にOpenseaへの操作を許可した、ということを意味しています。
※Openseaは一度、コントラクトが更新されているため、OpenSea(Old)とOpenSeaが混在しています。どちらもOpenSeaなので問題ない「許可」であると思って問題ありません。
3.不審なコントラクトをRevokeする。
すべてを見ていくと概ねはOpenSeaやLoosrareといった「マーケットプレイスの名前」である事が多いです。ただしその中に、「よくわからないコントラクト」があることがあります。それはほとんどの場合、独自マーケットプレイスであったり、ステーキングサイトであることがいいのですが、不審なコントラクトであれば右側の「Revoke」ボタンを押して取り消しておくことが無難です。
Revokeボタンを押すとウォレットが起動し確認を求められます。
Revokeには少額ですがガス代が発生します。ガス代を支払いこれを確認することでRevokeが完了です。
この一連の作業がRevokeです。
仮にスキャムにあわなかったとしても、定期的にこのサイトで自身のApprove状況を確認し、不審なものがあればRevokeをしておくことがスキャム予防に繋がります。
リボークまとめ
- ApproveしたトランザクションはRevokeをしない限りずっと有効で有り続ける。
- つまり「NFTを盗む」トランザクションをApproveしてしまうと、ずっと盗まれ続ける。
- そのためにはトランザクションの取り消し、つまりRevokeが必要。
- 最も簡単な方法はRevoke.cashというサイトで行うこと。
参照元:NFT Media