Spam NFTとその対処法
執筆者 Alchemy
この記事では、スパムNFTとは何か、なぜNFT dappの開発者やユーザーにとって問題となるのか、そしてAlchemy's NFT API endpointsを使ってスパムNFTをフィルタリングする方法について説明します。
スパムNFTとは何か
スパムNFTとは、購入した覚えがなく、欲しくもないのに、ウォレットアドレスに送りつけられたり、エアドロップされたりする、迷惑なNon-fungible tokens(NFT)のことです。
パブリックブロックチェーン上では誰でもウォレットアドレスとの間でトークンを送受信できるため、欲しくないNFTがウォレットに時々現れることがあります。
スパムNFTとエアドロップNFTの違いは何か
スパムNFTとは、エアドロップされたNFTのうち、ユーザーが望んでいないものを指します。
ウォレットにエアドロップされた無料のNFTが、必ずしもスパムとみなされるわけではありません。例えば、コレクターに追加の価値を提供するために、一部のgenerative NFT collectionsではNFTを作成し、コレクターにエアドロップすることがあります。これらのNFTは転売価値が低いことが一般的ですが、コミュニティへの参加を示すものとして、コレクションに残しておくのも面白いものです。
なぜ人はスパムNFTを送るのか
人々が迷惑なスパムNFTを送る理由には、以下のようなものがあります。
- 人気のNFTコレクターの注目を集めるため
- ウォレットの所有者を困らせたり、迷惑がらせたりするため
- フィッシング攻撃を試み、ウォレット所有者からトークンを盗むため
- 新しいNFTプロジェクトを宣伝するため
NFT marketの成長に伴い、スパムNFTは増加する問題となっています。
なぜスパムNFTは問題なのか
スパムNFTが問題視される最大の理由は2つあります。ハッカーによって悪用されることが多いことと、NFTコレクターにとって使い勝手の悪い体験を生むことです。
1. 詐欺師
スパムNFTは、詐欺師が人々に秘密鍵を共有させたり、メッセージに署名させたり、ハッカーのアカウントに資金を送るトランザクションを承認させたりするために利用されることがあります。
詐欺師は、所有者がフィッシングリンクをたどって詐欺サイトにアクセスすることを期待して、ウォレットにNFTをエアドロップすることがあります。その後、詐欺師は何も知らないウォレット所有者に対し、Ethereumウォレットにサインインしてこのトランザクションを承認し、無料のNFTを「受け取る」よう促します。
ウォレットがトランザクションに署名すると、詐欺師はそのウォレットの資金やNFTを抜き取ることができます。
こうしたウェブサイトの一部ではeth_signという安全でない方法が使われており、「あなたのetherを送信する」といった任意のメッセージへの署名を可能にし、アカウントや資産の管理権を奪われる可能性があります。
こうした詐欺サイトは非常に巧妙に作られていることがありますが、不自然な言葉遣いや、うますぎる話といった危険信号がよく見られます。
ウォレットを守る最善の方法は、未知のスマートコントラクトとは決してやり取りしないことです。ウォレットにスパムNFTが入っているのを見つけた場合、最も安全なのはそれを無視するか、バーンアドレスに送ることです。
2. 使い勝手の悪い体験
NFTはアートやユーティリティ、クリエイターと結びついているため、コレクションを見せることは誇らしいことであり、価値の高いNFTと同じウォレットにスパムNFTが混在していると、使い勝手の悪い体験になってしまいます。
NFT analytics toolsやギャラリー、マーケットプレイスを構築する開発者にとっても、スパムNFTは問題です。不正確なデータにつながり、実際よりもプロジェクトが人気があるように見せかけて、何も知らないユーザーを欺く可能性があるためです。
NFT保有者やコレクターに最良の使い勝手を提供するためには、プラットフォームは強力なスパムフィルターとカスタム設定を備えたNFT API を使用する必要があります。
Alchemy's NFT APIはスパムNFTにどう役立つのか
Alchemy's NFT APIは、getNFTsのスパムフィルター、isSpamForContract、およびgetSpamContractsエンドポイントを使ってスパムNFTをフィルタリングできます。
Alchemy APIを利用するNFT開発者は、getNFTsForOwner(別名getNFTs)APIエンドポイントにフィルターを追加することで、スパムと分類されたNFTを除外できます。
isSpamForContract NFT APIエンドポイントは、特定のコントラクトがスパムと分類されているかどうかを確認します。コントラクトアドレスでフィルタリングできるため、特定のNFTの所有者を調べ、それがその所有者にとって唯一保有するNFTかどうかを確認することもできます。
getSpamContracts NFT APIエンドポイントは、選択したチェーン上のすべてのERC 721およびERC 1155スパムコントラクトのリストを返します。
2023年8月時点で、Alchemy NFT APIは60万件以上のスマートコントラクトアドレスをスパムとしてマークしています。
Alchemy's NFT APIでスパムNFTをフィルタリングする方法
私たちのスパム検出機能を活用してアプリのUXを改善する方法は複数あります。
最も一般的な方法は、getNFTsForOwner(別名getNFTs)エンドポイントでSPAM除外フィルターを有効にし、ウォレットから正規のNFTのみを取得することです。
isSpamContractを使うと、特定のトークンがスパムコントラクトに属しているかどうかを判定できます。
getSpamContractsは、スパムコントラクトのリストを保存し、そのコントラクトに対して好きな対応を取れるという、さらなる柔軟性を提供します。
スパムNFTはどのように分類されるのか
スパムの分類基準は幅広く、偽のイベントを発行すること、他の有名なNFTをコピーすること、総供給量について虚偽の情報を伝えることなどが含まれますが、これらに限られません。
スパムを分類する際に私たちが問う主な質問は以下の通りです。
- コントラクトがERC721または1155である場合、実装されているERC標準から逸脱しているか。逸脱している場合、どの程度標準から外れているか
- そのコントラクトは、人気のハニーポットウォレット(例:vitalik.eth)に多数のトークンをミントすることで知られているか
- コントラクトは総供給量やその他の属性について著しい虚偽を述べているか
- メタデータは他のNFTコレクションの模倣か。あるいは空白か
- これらのNFTはマーケットプレイス間でどの程度活発に取引されているか
- ユーザーからこのトークンがスパムとして報告されているか
これらのヒューリスティクスを組み合わせて、NFTがスパムとみなされるかどうかを判断しています。
もしあなたのスマートコントラクトが誤ってスパムとしてマークされていた場合、あるいはスパムフィルターをすり抜けたスパムNFTコントラクトアドレスを見つけた場合は、Discordを通じて私たちのチームまでご報告ください。できる限りお手伝いいたします。
Ethereum上でスパムNFTをバーンする方法
スパムNFTをバーンするには、**"0xdead"アドレス 0x000000000000000000000000000000000000dEaD**のようなバーンアドレスに送ってください。
関連する概要

ブロックチェーンで魔法を生み出す
Alchemyは、最も強力なweb3開発者向けプロダクトとツールを、豊富なリソース、コミュニティ、そして卓越したサポートと組み合わせて提供します。


