[NFTアーティスト向け]メタマスクのApproveは注意って言われるけど、結局Approveって何なのか
よく「MetaMask(メタマスク)でApproveするときは気をつけろ!」という話を目にします。
これは本当にその通りなのですが、
- そもそもApproveとは何なのか
- そんな簡単に資金を抜かれるのか
などをNFTアーティストの方に簡単に説明する記事がパッと出てこなかったので、年末ですし少し書いてみることにしました。※DeFiをガッツリ触っている方には当たり前の内容になります
こういうのを書くのは初めてなので、お手柔らかにお願いします(予防線)
そもそもApproveとは何なのか
Approveは"承認"という意味です。では、何を"承認"するのかというと、「自分の資産を他の人が移動させる権利」です。これだけでもなんかやばい気がしますが、一応例を出して説明します。
そろそろお正月です。A君はおじいちゃんからお年玉として1ETHをもらいました。このETHはA君のものなので、当然お母さんが勝手に引き出すことはできません。
ある日、A君はお母さんから「もらった1ETH、私にApproveしてちょうだい」と言われました。A君はよく分からないままApproveします。
すると、お母さんはA君の1ETHを移動できる権利を得ます。数日後、A君の1ETHはお母さんのNFT代に消えてしまいました……。
Approveなんて機能はなくて良いんじゃないの?
ここまで読んでくださった方は、Approveの怖さを何となく理解できたかなと思います。しかし、そこである疑問が生まれます。"Approveなんて機能はなくて良いんじゃないの?"です。ここでは、Approveの必要性について書きます。
はじめに1つ説明し忘れたのですが、ApproveはETHのような通貨だけでなく、NFTに対しても存在します。そして、実はこのApproveはOpenSeaにNFTを出品する際、OpenSeaに対して必ず行われています。Approveという機能がある場合とない場合を見てみましょう。
Approve機能がある場合(OpenSeaにApproveしている)
上でも説明した通り、NFTの出品時、OpenSeaに対してNFTのApproveをしています。これによって、OpenSeaはNFTを別の人に移動する権利を得ます。
ある日の深夜、NFTを買いたい人が現れました。アーティストの方は寝ていましたが、OpenSeaはアーティストのNFTを移動する権利を持っているため、すぐに購入者にNFTが送られました。アーティストの方は何もしなくて大丈夫です。
Approve機能がない場合
既にどうなるかお気づきの方が多いと思いますが、Approve機能がない場合も見てみます。Approveはしないので、購入者が現れたところからです。
またまたある日の深夜、NFTを買いたい人が現れました。アーティストの方はもちろん寝ています。そこで、OpenSeaはNFTを代わりに移動させることを試みますが、Approveされていないため移動させることができません。購入者は、アーティスト自身がNFTを送る操作をするまでNFTの入手を待たなくてはなりませんでした……。また、アーティストは毎回購入者にNFTを送らなければいけません。
そんな簡単に資産を抜かれるのか
ここまででApproveという機能の怖さと必要性が伝わっていると嬉しいです。次は、
- 資産を抜くようなサイトを作るのは大変なんじゃないの?
- ボタンをちょっと押しただけならセーフ?
と思っている方に向けて書こうと思いましたが、疲れたので今度にします。結論を書くと、資産を抜くようなサイトを作るのは簡単ですし、3回くらいボタンを押したら資産を抜かれます。
きっと明日書くはず。。
※間違い等あればご指摘いただけると大変嬉しいです