Etherscan を使ってみよう③

The Mergeは問題なく完了しETHWのフォーク後も特に大きなトラブルは聞きませんね。とりあえず一安心。今日は Set Approval For all について見ていきます。これはご自身のウォレットの中身を守るという意味でも重要な意味を持つトランザクションなのでしっかりと理解しておくと良いでしょう。

Set Approval For allとは?

ご自身のウォレットの中のToken(NFTや仮想通貨)を第三者が自由に触る許可するということです。現実世界では、知らない人にご自身の財布の中を見られるだけでも嫌ですよね。Set Approval For allはContract ID毎に相手に自由に利用する許可を与えること、例えば、小銭、お札、クレカなどのカテゴリ毎に、どうぞ私のクレカは自由に使ってくださいと第三者に委任する行為です。こう考えると怖いですよね!

Set Approval For allのトランザクションを探そう

以下のようにMethod の列がSetApprovalforと出ているTransactionです。

Overview

凡その見方はEtherscan を使ってみよう②で説明しているのでもし初めて見る方は先にそちらを参照してみてください。このトランザクションはOpenSeaでANIM_JPというNFTを販売する為にトークンを扱う許可を出した際のトランザクションです。
ここではFrom:とTo:について説明します。

From:Fromはトークンの所有者となります。
To: Toはどのトークンを利用することを許可したかが表示されます。
 ※誰に許可したかではないので注意
0x8f2cef1cbff23d7d657ddbae39650bb860e87132というアドレスのトークンをFromのウォレットアドレスの方が第三者に利用することを許可したということです。
では、だれに許可したのでしょう?

Logs

Logsのタブに切り替えてみましょう。

Nameのところにイベントの内容が示されています。
”ApprovalForAll (index_topic_1 address owner, index_topic_2 address operator, bool approved) View Source”  

”誰のトークンを誰が扱う許可”についてのイベントなのかの詳細が表示されます。今回は私のウォレットの中のANIM_JPのNFTのすべてをOpenSeaが取り扱う許可を出しています。

①Address: 利用を許可されたトークンのコントラクトアドレスが表示されます。ここではANIM_JPのNFTのコントラクトアドレスです。

②Name: どのウォレットアドレスからどのウォレットアドレスへ利用許可が出されたかを示しています。

 ApprovalForAll=Addressで示したTokenのすべての利用許可

 index_topic_1 address owner=③Topic内の1のアドレスが現在のTokenのオーナーであることを示しています。オペレーターに許可を与えるトークンの持ち主ですね。

 index_topic_2 address operator=③Topic内の2のアドレスが許可を受け取るアドレスとなります。(オペレーター)

 bool approved = このイベントの承認の可否を示す値。trueであればトークンを扱うことが承認された、 falseであればトークを扱うことが否認されたという意味です。


③Topics
 このイベントの関係者のアカウントアドレスです
 Nameのindex_topicの後に来る番号はここの番号と連動しており、番号以下のアドレスを指定しています。

おまけ

ではどのタイミングでこの許可出してるの?って疑問に思われた方もいらしゃると思います。
以下はOpenSeaでNFTをListingする(売り出す)時の画像です。メタマスクからポップアップが出ており、データの欄に”ApprovalForAll”の文字が見えます。
このようにメタマスク内のトークンを第三者に扱う許可を出す場合はポップアップが表示されます。Free Mintサイトなどにつなぐ場合は安心できるサイトなのか十分に確認してから承認しましょう。

まとめ

ApprovalForAllは見てきた通りContract ID毎にすべてを扱う許可を出してしまうので悪意のある相手に許可を出してしまうと同じコントラクトアドレスのNFTをすべて抜き取られてしまう可能性があることを覚えておきましょう。
メタマスクからポップアップが出た際はどのような処理がされる可能性があるのか確認する癖をつけるとより理解が進み安全に取引ができると思います。FreeMintするのに自分のNFTを扱う許可を要求されるようなことがあるっておかしくない?という風に気付けるかもしれません。

この記事が気に入ったらサポートをしてみませんか?