メタマスク(MetaMask)のトークン承認(token approval)とは何ですか?

この記事は、メタマスク公式サポートの記事を翻訳したものです。正確な情報を知りたい場合は、必ず原文のこちらをご確認下さい。

What is a token approval?
https://metamask.zendesk.com/hc/en-us/articles/6174898326683-What-is-a-token-approval-?utm_source=pocket_mylist

web3では、単純ではないトランザクションの種類に遭遇します。これらのトランザクションは、トランザクションを確認する時点でMetaMaskで識別可能です。

課題は、これらの画面に表示される情報の多くは、人間が読めるように設計されていないことです - 私たちが口座や契約のアドレスとして認識する長い16進数は、その典型例です - または、せいぜい解読するのが難しいです。

トークンの承認は、あなたが遭遇するトランザクションの種類の中で最も一般的なものであり、解明すべき重要な領域です。Web3では、特にMetaMaskのような自己完結型のウォレットでは、あなたがしっかりとコントロールし、あなたが行うすべてのことに最終的な責任を負います。そのため、トークンの承認を確認する際には、自分が何にサインアップしているのかを正確に把握することが非常に重要です。

トークン承認とは何ですか?


要約:dappがあなたのウォレットから特定のタイプのトークンにアクセスし、移動することを許可することです。

分散型取引所(DEX)や一般的なDeFiを頻繁に利用していると、MetaMaskにこのようなプロンプトが表示されることがよくあります。ほとんどのプラットフォームは、何らかの理由であなたがトークンを預けたり転送したりすることに依存しており、そうするためには通常、そのdapp自体を使用することになります。しかし、「Transfer」「Deposit」「Move」などのボタンをクリックしても、ウォレットの所有者であるあなたの許可がない限り、そのdappは何もしてくれません。

これがトークン承認が必要な理由です。トークン承認によって、dappはあなたに代わってあなたのトークンにアクセスできるようになります。

トークンの承認はどのように行われますか?


MetaMaskに表示されるトークン承認のプロンプトは、次のようなものです。

これを分解してみましょう。どうなっているかに注目してください。

・dapp名とWeb URLが一番上に表示されます。

これにより、対話する予定のdappが、実際に承認を要求しているものであることを確認することができます。

・アクセスを要求しているスマートコントラクトのアドレスが表示されます。

もし100%確信が持てないdapp/コントラクトとやりとりしている場合、このアドレスを持ってEtherscanなどのブロックエクスプローラで調べ、おかしな動きがないか、あるいは詐欺の可能性があるとしてフラグがついていないかどうかを確認することができます。

・パーミッションを編集することができます。

この文脈では、'permission'は、dappがそのトークン(この場合はMATIC)にどれだけアクセスできるかを指します。これは実際にアカウントにあるトークンの量に制限されるわけではなく、これを大幅に超えることもしばしばあることに注意してください。トークン承認の編集については、カスタム支出制限の設定に関する記事を参照してください。

・あなたはガス代を支払わなければならない。

承認が安全であるための唯一の方法は、ウォレットの所有者であるあなたからのものであると誰もが100%確信することです。ありがたいことに、私たちは偶然にも、あなたの許可を歴史的事実として記録することができる分散型の不変台帳(すなわちブロックチェーン)を使用しています。オンチェーンで何らかの取引を処理するためには、ネットワークを運用するためのコストであるガスを支払う必要があります。

トークン承認の意味

もしあなたがあるdappに対して1,000USDTへのアクセスを許可した場合、そのdappはあなたが要求すればいつでもアクセスすることができ、あなたが再び同様のトークン承認トランザクションに署名する必要はありません。これは、dappが1,000トークンにアクセスするまで適用され、その時点であなたは別のトランザクションに署名する必要があります。

しかし、舞台裏では何が起こっているのでしょうか?トークンへのアクセスを承認すると、多くの場合、dappがERC-20規格で定義されている関数の1つであるtransferFrom関数を呼び出すことに同意したことになります。この関数は、あなたのウォレットから彼らのウォレットに、指定された量のトークンを転送することを可能にします。その量は、対応する承認関数によって決定されます。その関数は、推測ですが、あなたがトークン承認に署名するときに入力するものです。

このプロセスは、MetaMaskで承認確認が表示されたときに見ることができます。'View full transaction details'までスクロールしてクリックすると、'Approve' 関数がリストアップされます。

'Granted to'フィールドは、承認を求めている契約アドレスをコピーして、ブロックエクスプローラーでその正当性を確認する別の機会を与えてくれます。

EIP-3009:許可関数とガス料金の最小化

あなたが遭遇するすべてのトークンが、ERC-20トークンに適用される上で説明したような方法で動作するわけではありません。この approve + transferFrom という仕組みは、EIP-3009 モデルを実装しているトークンには関係なく、安定コイン USDC が最も顕著な例と言えるでしょう。

EIP-3009では、approvetransactionではなく、permitransactionにサインをします。これらは、承認と転送を1つのトランザクションに束ねます。つまり、承認のために支払うガスは事実上ゼロで、トークンを転送するためのガスだけを支払うということです。

承認についてもっと知りたいですか?このテーマについての詳細な情報は、このブログ記事をご覧ください。

https://consensys.net/blog/metamask/the-seal-of-approval-know-what-youre-consenting-to-with-permissions-and-approvals-in-metamask/

トークン承認の取り消し

自分の資産を管理し、どのDappsがそれにアクセスできるかを知っておくことは、決して悪いことではありません。既存のトークン承認を取り消すにはいくつかの方法があります。詳細はこちらの記事をご覧ください。

https://metamask.zendesk.com/hc/en-us/articles/4446106184731

無制限のトークン承認: 安全を確保する方法


Uniswapが1.15の59乗個のトークンへのアクセスを要求している上のスクリーンショットを見ればわかるように、トークン承認リクエストは天文学的な数のトークンへのアクセスを要求しており、実質的に無制限と言えます。

多くの正当なDappsは、Dappでトークンを使用するたびに再承認する必要性とそれに伴う取引コストを最小化するためにこのような方法をとっています。例えば、DEXを考えてみてください。トークンのスワップをたくさん行う場合、毎回クリックやガス代がかかるのは困ります。

しかし、基本的に無制限の量のトークンを要求することは、多くの悪意のある悪質なサイトが疑うことを知らないWeb3ユーザーから盗む方法でもあります。これは、あなたが秘密のリカバリーフレーズをオフラインのみに保ち、それを決して共有しないなど、私たちが推奨するセキュリティのヒントをすべて順守している場合、ユーザーとして特に意気消沈することができます:あなたのすべての努力にもかかわらず、あなたはとにかく悪用されました。

悪意ある者にすべてのトークンへのアクセスを許可していないことを確認するために、以下の主要な原則に従うことをお勧めします(私たちのブログポストから拝借しました)。

  • 承認'をクリックする前に、アプリが実際に何を要求しているかを常に確認します。MetaMaskでは、dappがアクセスできる量を調整することもできます。たとえあなたがトークンの10%しかアクセスできず、そのアプリが詐欺だと判明したとしても、無制限にアクセスするよりはかなり良い結果だと思います。

  • DYOR. dappとのやりとりの前にデューデリジェンスを行う習慣をつけるのに最適な時期は6ヶ月前、2番目に最適な時期は今日です。スペルミス、低品質の画像やロゴ、その他の景品に気をつけましょう。

  • もし何かが本当であるにはあまりにも良いように見える場合、それはおそらくあなたの想像通りであることを覚えておいてください。もしあなたが498,563%のAPYを提示されているなら、おそらくそれは薄氷の上、非常にハイリスクでしょう。

トークン承認と、特に無制限承認に関する詳しい情報は、こちらをご覧ください。

・偽の「マイニング」詐欺:新たな装いをしたおなじみの敵https://consensys.net/blog/metamask/fake-mining-scams-a-familiar-foe-in-a-new-disguise/

・MetaMaskのパーミッションと承認で何を承諾しているのかを知ろうhttps://consensys.net/blog/metamask/the-seal-of-approval-know-what-youre-consenting-to-with-permissions-and-approvals-in-metamask/

・スマートコントラクトの許可・トークンの承認を取り消す方法https://metamask.zendesk.com/hc/en-us/articles/4446106184731-How-to-revoke-smart-contract-allowances-token-approvals

・トークン承認/承認のカスタマイズ方法とカスタム消費限度額https://metamask.zendesk.com/hc/en-us/articles/6055177143579-How-to-customize-token-approvals-allowances-with-custom-spend-limit

いいなと思ったら応援しよう!