作为 NFT 收集者,您应该关心链上出处。NFT 最真实的出处是它最初是直接从创建者的钱包或创建者拥有的智能合约中铸造出来的。然而,通过一些聪明的智能合约幻想,有人可以使用一种称为Sleep Minting的技术来操纵 NFT 出处。
睡眠铸币是指诈骗者将 NFT 直接铸币到著名创作者的钱包,并获得许可从创作者的钱包中收回或拉回 NFT。这创造了以下外观:(1)创建者真实地为自己铸造了 NFT;然后 (2) 将该 NFT 发送给骗子。基于“链上”出处,诈骗者可以声称他们拥有由著名创作者铸造的 NFT,并以更高的价值出售。
这在技术上是如何工作的?首先,必须了解智能合约如何存储 NFT 出处和所有权。任何人都可以查询 NFT 智能合约,以确定 NFT 的当前所有者正在使用ERC-721 标准中的 ownerOf(tokenId) 函数。你甚至可以通过改变eth_call RPC 方法参数来查询特定区块号的 NFT 所有者。但是,查看所有权更改的最简单方法是查看 ERC-721传输事件日志。
我的 a16z Crypto 同事 Daren Matsuoka 写了一篇关于事件日志及其工作方式的精彩Twitter 帖子。传输事件日志是由智能合约发送到外部世界的消息,其中包含有关 NFT 传输的详细信息(NFT从谁传输,NFT向谁传输,以及传输的TOKEN ID)。传输事件日志提供了一种检查 NFT 出处的有效方法。
Sleep Minting 的欺骗性在于您可以在事件日志中发出任何数据。有人会期望,如果您发送交易以转移 NFT,那么您的地址应该在事件日志中作为“发件人”字段。但是,当骗子从著名创作者那里收回睡眠铸造的 NFT 时,情况并非如此。骗子可以人为地将著名创作者的地址放在转移事件的“发件人”字段中。
更详细地说,以下是 Sleep Minting 的工作原理:
- 诈骗者会将 NFT 铸造到著名创作者的钱包中,但保留从创作者钱包中收回或拉出 NFT 的权限。
- 骗子会发出一笔交易,从著名的创作者那里收回 NFT。即使诈骗者正在发送此交易(而不是创建者),他们也可以人为地将创建者的地址放置在传输事件的“发件人”字段中。从表面上看,这位著名的创作者似乎将 NFT 合法地转移给了诈骗者。
- 诈骗者现在持有的 NFT 似乎是真实创建的,并且以前由著名的创作者拥有,他们可以以更高的价格出售该 NFT。
我还建议阅读这篇关于真正的 Sleep Minting 攻击的精彩演练。
感谢Forta,我构建了一个代理来帮助检测潜在的 NFT Sleep Minting。Forta 创建了一个用于实时 web3 威胁检测的网络!开发人员可以构建 Forta 代理(或威胁检测机器人)来提醒区块链上的任何可疑活动。您可以在这里看到我的代理的实时监视器!
代理检查发送交易以转移 NFT 的地址是否与转移事件日志中发出的“发件人”地址不同。如果它们不同,则有问题的 NFT 可能是睡眠铸造的。
订阅 NFT 睡眠铸币警报可能有助于防止您收集欺诈性 NFT。如果您在 Forta Explorer 代理页面上看到涉及特定 NFT 合约地址的代理警报,您可能需要在从该合约购买 NFT 之前三思而后行。
https://a16z.com/2022/03/09/sleep-minting-nfts/