海外のNFTフリーミントでハッキングにあわないためのセキュリティマニュアル
今、海外のNFTは無料でミントできるFreeMintが主流です。FreeMintはガス代のみで手に入れることが出来、うまくいけば1ETH以上の利益を出すことが可能になっています。
ですが、このNFTフリーミントは詐欺が多いです。運営のよくないコントラクトを踏んでしまうことにより、自分のウォレットのNFTが盗まれてしまうことがあります。
なので、今回、海外NFTを狙う人向けに安全にミントする方法とコントラを読む上でのポイントをお伝えします。
この情報は、上級者向けであり、NFTの仕様をある程度理解している人向けであり全く初心者向けではありません。
逆にここら辺の内容が分からない方は、国内の有名なNFTプロジェクトのNFTを購入しましょう。
常に、メインではないサブウォレットを利用する
これは何度も警告されていることですが、必要最小限のETHのみを入れて、かつ重要な資産が入っていないウォレットを利用してください。ひとつ間違えたコントラクトに署名するだけで、あなたの大事なCloneXやCNPなどが盗まれていきます。大事な資産や大事なNFTは、ハードウェアウォレットに保管することが鉄則です。
可能な限りWeb経由ではなく直コンを利用する
無料のミントをサイト上で宣伝しておき、それをmintのコントラクトではなく、転送許可のsign requestに変えて、NFTを盗むのはよくある方法です。これはスキャムサイトでよく行われる手口であり、最も素早くNFTを盗む方法です。この転送許可を踏んでしまうとあっという間にNFTが盗まれてしまいます。直コンを利用することで、こうした被害を未然に防ぐことが出来ます。
ただし、これを利用するためには基本的なNFTコントラクトの知識と、etherscanの利用方法を学ぶことが必要です。
スマートコントラクトの基本を理解しよう
それでは、スマコンの読み方を理解していきましょう。教材はGoblinTownを利用します。これはしばらく前には無料でMintでき、いまや3ETH以上の価値を持っています。
https://etherscan.io/address/0xbce3781ae7ca1a5e050bd9c4c77369867ebc307e#code
まず、ほとんど全てのNFTプロジェクトには、OpenZeppelinからの継承もしくはERC721Aからの継承があります。そのため、実際のミント関数とは関係のないコードがたくさんあるため、まずはミントする関数はどれかを見分けることが重要です。
プロジェクトによっては、このERC721Aファイルなどのコードと実際のミントコードのファイルが分かれている場合があり、その場合は読みやすいです。
例)We are all going to die
https://etherscan.io/address/0x659a4bdaaacc62d2bd9cb18225d9c89b5b697a5a#code
GoblinTownのように、一つのファイルにすべてコードが入っている場合は読むのが難しいですが、だいたい一番下がミント用の関数の含まれたコードです。ファイル検索で「mint」と検索して、該当のコードを探しましょう。
Goblin Townの場合、ミント関数はmakingobblinと呼ばれます。これは、_mint(または_safeMint)を検索することで見つけることが出来ます。また「onlyOwner」修飾子がない関数も探すのも良いです。通常、一般mint 以外のコードは onlyOwnerがついていることが多いです。
そうしてmint関数を見つけた場合、そこに悪意のあるコードがないか探しましょう。通常、mint関数はrequire文による、ミント可能かどうかのチェック、および_mintもしくは_safemint関数、あとはインデックスを追加する関数のみ含まれています。GoblinTownはそのような作りになっていますね。
We are all going to dieも同じですね。mint関数にはインデックスの追加およびrequire文、mintだけしかありません。
これは、NFTコントラクトを読むための基本であり、ハッキングを避けるための絶対確実な方法ではありません。ですが、これをすることで基本的なセキュリティを高めることが可能です。上記の私が言っていないコードが含まれている場合は、外部のユーザーがコントラクトのチェックをすることを待ってください。
Verifiedされていないコントラクトは全力で逃げる
コントラクトを運営がVerifyしていない場合、このようにコントラクトコードがなっており、読むことが出来ません。NFTミントサイトのコードがこのようになっていた場合、9割以上の確率で、あなたの資産を盗もうとしているコードだということを意味します。直コンもできません。
もう一度言います。Verifiedされていないコントラクトは絶対に使用してはいけません。
最後に
これらの内容をすべて実践することは難しいかもしれませんが、最低限海外のフリーミントはサブウォレットを利用して何かあったときの被害を最小限にすることだけは徹底してください。
また、これらの内容は上級者向けであり、充分に理解できない場合は、国内の有名プロジェクトのNFTを買ってください(LAG、CNP、EDOなど)
それでは、よいNFTライフを