【安全対策】メタマスク Revoke(リボーク)の概要と方法
airutosena
仮想通貨のウォレットを利用する上で、意識したいのが「リボーク」の活用です。
リボークを活用するとトランザクション を発生させ、承認した内容を取り消すことが可能になります。
詐欺やウォレットへの攻撃から仮想通貨を守るために必須のアクションとなっているため、MetaMask(メタマスク)などを利用している方は必ずチェックしておきたいトピックです。
この記事では、ウォレットのリボークについて、以下のポイントから解説しています。
- この記事のポイント
- リボークは承認した内容を取り消すこと
- 悪意のある攻撃からウォレットの安全性を高めるために必要
- EtherScanなどから可能
- 利用にはガス代がかかる
- リボークは定期的にしておきたい
目次
仮想通貨を守るウォレットとリボーク(revoke)の概要
DeFiやウォレットの利用に伴って、意識したいのが「リボーク(revoke)」の活用です。
リボークとは、「取り消し・撤回」といった意味を持つ言葉になっています。
ウォレットにおけるリボークについても、同様にスマートコントラクトやトークン承認の取り消しや撤回を意味します。
DeFiなどを利用する場合、各プロダクトとウォレットを接続するのみでは利用することはできません。
多くのケースで、コントラクトなどに対する「承認(Approval/ Approve)」がセットで必要になることが多いです。
そして、この承認を取り消すのがリボークにあたります。
DeFiなどの利用に伴って、各DeFiのプロダクトが資金にアクセスできる承認を行うのが一般的で、悪意のあるプロダクトなどに対して承認を行うと、ウォレット内の仮想通貨は紛失などの大きなリスクにさらされます。
MetaMaskの公式Twitterでもリボークの解説が発信されており、リスクの高い・身に覚えのないコントラクトに対する承認(Approve)をリボークすることを推奨しています。
Hey all, we have a VERY important PSA to help keep your assets safe
⚠️ Disconnecting MetaMask from a dapp does NOT ensure your tokens are always safe! ⚠️
When ppl say , they mean at smart contract level. Disconnecting from dapps doesn’t include contracts.
— MetaMask (@MetaMask) March 4, 2022
上記のようにさまざまなリスクを回避するために、承認を取り消すリボークの存在が重要です。
ウォレット内にある仮想通貨を守るためには、必須の存在となっているため、DeFiなどに興味がある方なら必ず押さえておきたいアクションになっていると言えるでしょう。
・MetaMask(メタマスク)の使い方まとめ!入出金・トークン追加も超簡単
・MetaMask(メタマスク)モバイル・スマホの使い方を解説!
ウォレットのリボーク(Revoke)のやり方
リボークのやり方・手順は、ツールごとにいくつか種類があります。
これから、リボークの手順について以下の3つの観点から解説していきます。
・EtherScanなどでリボークする手順
・REVOKEでリボークする手順
・その他のツールの紹介
リボークのやり方を押さえて、ウォレット内の資産を守れるようにしていきましょう。
※リボークはオンチェーンで行うため、ガス代がかかります。
EtherScanなどでリボークする手順
リボークを行う代表的な手順の1つが「EtherScan・BscScan・Polygonscan」といった各チェーンごとに存在するエクスプローラーを利用するものです。
今回は一例として「EtherScan」を用いて、リボークする手順を解説していきます。
- EtherScanにアクセス
- 画面上部のタブメニュー内にある「More」から、「Token Approvals」を選択
- 「Connect to Web3」を選択
- 利用しているウォレットを選択し接続を完了させる
- リボークしたいトランザクションの「Revoke」を選択し、さらに表示される詳細を確認して再度「Revoke」を選択
- ウォレット側で承認を求められたら、内容を確認してから「承認」を選択(※ガス代が高すぎないか確認をしてからトランザクションを承認しましょう)
- 「View your transaction」を選択
- トランザクションの詳細で「Success(成功)」と表示されていれば完了
似たような手順で、他のチェーンのエクスプローラーでもリボークすることができます。
ちなみに、EtherScanでアドレスを入力すると、ウォレットの情報を元に「$ ○○○ at risk」と表示されます。
これは、現在承認しているトークンの総額を表しているため、自身のウォレットを見返す意味でも「どの程度の金額を一定のリスクにさらさしているのか?(承認しているのか)」という点の参考にしてもよいでしょう。
REVOKEでリボークする手順
次に、「REVOKE」というリボークするためのサイトで実行する方法をご紹介していきます。
- REVOKEへアクセス
- 「ウォレットを接続する」を選択
- 利用しているウォレットを選択
- 接続後、出てきた内容からリボークしたい項目の「Revoke」を選択
- ウォレット側で承認を求められたら、内容を確認してから「承認」を選択(※ガス代が高すぎないか確認をしてからトランザクションを承認しましょう)
上記の手順を完了して、リボークしたい項目が消えたらリボーク完了です。
その他のツール
前述したEtherScanやREVOKE以外にも、リボークを行うツールはいくつも存在しています。
例えば、MetaMaskのサポートでは、以下のようなツールが紹介されています。
・Unrekt
・approved.zone
・Cointool
・beefy.finance
・EverRevoke
ツールごとに微妙にUIや使用感が異なってくるので、自身にあったリボーク方法を見つけていきましょう。
なぜ重要?承認のリスクとリボークの関係
リボークの概要や実際のやり方について解説しました。
次に、なぜリボークが必要なのか?どのような場面でリボークは活用できるのか?といった点が気になる方も少なくないはずです。
そのため、これからウォレットにおける承認やリボークの詳細をもう少し解説していきます。
・DeFiを利用する際に承認が必要になる背景
・無制限の承認内容
・サイトとの切断とリボークの違い
リボークを通して、ウォレットを安全に使うために押さえておきたいDeFiを利用するときのウォレットの動きなどについて押さえていきましょう。
DeFiなどの利用に承認が必要な背景
DeFiなどを利用する際には、各プロダクトとウォレットを接続し、ウォレット内の仮想通貨(トークン)を用いて取引やステーキングを行うことになります。
そして、上記のようなアクションは、基本的にスマートコントラクトのコントラクト(契約)を通して実行されます。
こういったプロセスの前段階でウォレットの利用者は、コントラクトがトークンにアクセスするのを承認・拒否したり、承認内容の一部を制御することができます。
DeFiなどで多用される承認が、一定量の特定のトークンに対する「トークン承認(Token Approval)」です。
上記の承認を行うことで、DeFiの各プロダクトがウォレット内のトークンにアクセスして、取引したり転送したりする許可を与えられます。
DeFiについては以下の記事で解説しているので、気になる方はぜひチェックしてみてください。
DeFiとは?ジャンル別に徹底解説 | 代表プロジェクトも紹介
多くのケースで多額の承認を要求される
前述したとおり、DeFiなどがウォレットのトークンにアクセスするには、トークン承認が必要です。
しかし、この承認はオンチェーンで行われ、ブロックチェーン上に承認したという記録が残ります。
これは同時に、ガス代がかかってくるということでもあります。
DeFiで取引を実行するたびに承認を行っていては、利便性に欠けますし、ガス代のコストも膨らみます。
そのため、承認を行う際には、実質的に無制限のトークン承認を行うのが一般的です。
例えば、Compound(レンディングのDeFi)に対して、承認を行う際には以下のような内容が要求されます。
「承認された金額」という箇所をチェックしていると、膨大な額の承認を要求されていることがわかります。
DeFiの利用に伴って、利便性やコストの観点から上記のような承認を行うのは一般的です。
しかし、これは悪意のあるプロダクトが、承認したトークンへ無制限にアクセスできることにも繋がります。
例えば、承認したDeFiのプロダクトに脆弱性が発見されると、ウォレットへのリスクは高まると言えるでしょう。
そのため、ウォレット利用して各承認を行う際には慎重に行っていく必要があります。
承認を限定的にすることも可能
前述の通り、多くのケースで無制限の承認が求められます。
しかし、信頼性が芳しくないプロダクトに対して、無制限の承認を行うことに躊躇するケースも多いです。
このようなときに、以下の手順でアクセスを許可するトークンの数量をコントロールすることも可能です。
- 承認の要求画面で「アクセス許可の編集」へ
- 「カスタム使用限度額」で指定したい数量を入力
ただし、上記は「一定量のみの承認を行う」という操作をしているという点は押さえておきましょう。
つまり、10ETHのみを承認した場合、10ETHを利用しきると再度承認を要求されます。
そのため、著しく低い数量を入力すると高頻度で承認が必要になり、その度にガス代が必要になるため注意が必要です。
サイトとの切断とは異なるため注意
リボークと似通ったものに「各サイトとの切断(Disconnect)」が挙げられます。
上記の操作は、ウォレットと各サイト・プロダクトとの接続を切断するものです。
具体的には、各サイトと接続した際の許可が削除されます。
一例として、Uniswapと接続した際に求められる許可をチェックしていきましょう。
上記の画像を参考にすると、Uniswapとの接続に際してアドレス・残高などへのアクセスが可能になります。
各サイトとの切断は、上記のような許可を削除する操作にあたります。
一方で、リボークはウォレットが承認しているコントラクトを取り消すものであり、両者には大きな違いがあることを押さえていきましょう。
サイトとウォレットを切断したとしても、コントラクトの承認は継続しています。
つまり、サイトとウォレットの切断を行ったとしても、リボークしたことにはならないため注意が必要です。
どういった基準でリボークしていくべき?
前述したような背景から、リボークを活用することで、ウォレットの安全性を大きく高めていくことが可能です。
定期的に、承認している内容をチェックし、疑わしいものが無いか否かをチェックしておきましょう。
特に、以下のようなものに該当するプロダクトへ何らかの承認をしている場合には、注意したほうが良いでしょう。
・接続したプロダクトのURLがおかしい
・知名度の低いプロダクト
・運営開始から間もないプロダクト
・コミュニティが存在しない、活発ではないプロダクト
上記の項目は、そもそも承認する前段階で、チェックしておくのがおすすめです。
利用するプロダクト・サイトの安全性をチェックしておくことで、詐欺のようなリスクを避けられのはもちろん、承認+リボークのコスト・手間を省くこともできます。
また、今後上記以外の注意項目がでてくる可能性もありますので、ウォレットの危機管理に関しては常に勉強が必要です。
DeFiのリスクなどについては以下の記事でも解説しているので、利用している方はぜひチェックしてみてください。
ウォレットのリボークについてまとめ
この記事では、ウォレットのリボークについて解説しました。
リボークに限らず、仮想通貨周りのトピックは利用者が全面的に制御・監視できる代わりに、自らリスクを管理していく必要があります。
リボークなどを活用しながら、自身のウォレットの安全性を高めていきましょう。
■参考資料