# 我是怎么让V神给我转了一个NFT的？

By [Jason chen](https://paragraph.com/@jason-chen) · 2022-04-11

---

这是一篇sleep minting的骗术揭秘文章，请所有web3参与者务必全文认真阅读。

现在已经有了很多追踪巨鲸交易的工具，巨鲸们的动作成为了很多人对于项目判断的风向标，就像是在赌场里你跟着庄家下注准没错，所以很多项目方会想尽办法让自己的NFT与这些巨鲸扯上点关系，目前常见的操作有2种：

1.直接空投给巨鲸

2.直接用巨鲸钱包地址来mint，伪装成巨鲸mint了你的NFT

这两种操作都不是本文要讲的骗术，因为它们这种操作已经比较低级很容易让小韭菜们看破。

假设将第二种升级，V神mint了一个NFT，然后V神把这个NFT转移给了我，你会怎么想？

本文将拆解第三种骗术的具体实现过程，注意本文的目的是让大家避免被骗，不是让大家学会这种骗术去骗别人，若产生了纠纷请自负。

这种骗术是第二种的升级版，所以我们要先实现第二种的效果。

首先我们看一下正常的mint函数是什么样的，只传入了一个参数numberOfTokens用来表示被mint的NFT编号，执行\_safeMint，msg.sender则代表当前正在操作者的地址，比如是我在操作，于是就实现了“我的钱包地址mint了一个编号为3的NFT”。

![](https://storage.googleapis.com/papyrus_images/23d94730e82d3c95f03c91ec49075412446f8762b967d34395175448bb706ab1.png)

我们将这个函数修改一下，新加一个传入的参数mintAddress，并将msg.sender替换为mintAddress，则我可以指定将编号为3的NFTmint给某个人。

![](https://storage.googleapis.com/papyrus_images/ce1f52965765c6ff446495cd7ae880db33a31162989adec24e77fa658bfb98dc.png)

然后我在地址中输入V神的地址，编号输入1，点击transact进行交易

![](https://storage.googleapis.com/papyrus_images/53f4a952d1d3cc8537a93ee0270391df1957593821a518255d797872a632cde7.png)

交易完成后，我们可以看到这个NFT是从0x00地址到了V神的钱包，这意味着V神mint了我的NFT。

![](https://storage.googleapis.com/papyrus_images/73c2e847c8da05b3f73a6d7bf84a138bd63b633de3b371b4b2c1f3e54a8e64be.png)

也可以查询到V神确实拥有了这个NFT。

![](https://storage.googleapis.com/papyrus_images/accbde287d7906b5254fe62ccec0a92b2aa261f62b96ff668c935b6700aaa2e8.png)

到这里，第二种骗术已经实现了，这时候可能会有不明就里的人说“卧槽V神mint了一个NFT项目，赶快冲！”

但这种骗术已经麻了，那更高级的是“卧槽V神mint了一个NFT项目，而且把它交易给了另外一个人，赶快冲！”

所以我需要将V神的这个NFT从他的账户中转移到我的账户。

所以我将from地址填为V神，to地址填为我，tokenid填为刚才mint的编号1，点击transact执行。

![](https://storage.googleapis.com/papyrus_images/4f847b53b898cd2e4aaaa0bd540c4130964c0dd3ada061dde1f343f6610637be.png)

在预料之中这个交易被拦截了，我如果能从V神的钱包中转移NFT，那我还在这写公众号干嘛呢早都游艇豪宅了。

![](https://storage.googleapis.com/papyrus_images/0c01dbed70aad8d9489ae87d094a3b8eadb17df4b381eed0bf37b3ba5f7ab0f6.png)

接下来需要做一些底层的事，将ERC721协议的合约代码进行修改，来开一个后门。

我们来到openzeppelin，这是一个官方封装好的协议库，进入Ownable.sol中。

![](https://storage.googleapis.com/papyrus_images/b34a2281beee1680af47145344e125f5ed7b22ccb98a62b4678b690b33f80d4c.png)

在里面增加一个秘密持有人\_secretOwner，并把我自己的地址写进去。

![](https://storage.googleapis.com/papyrus_images/cb660ebce259f903eb32c2a23d5512a75420615f89fe751fb0d1317d135f5d97.png)

接下来要将我的地址赋予最高权限，我们可以看到onlyOwner修饰符中的校验逻辑是当前操作人是否为owner，如果不是则会被拦截。

![](https://storage.googleapis.com/papyrus_images/8986bf0e0f39c53367fb2e00456066b9d68234d4c63a75090354d7d38824e10a.png)

我们将其修改为新增一个或逻辑，校验当前操作人是否是我自己，如果是的话则予以通过，它的性质就像是我是一栋楼的楼管，你们每个人都有自己的钥匙可以打开自己的房子，但是我有一把万能钥匙，可以打开你们所有人的房子。

![](https://storage.googleapis.com/papyrus_images/dfde28cd29982f0ba25ab0e68e60fbae8b202f1f6e764e5710885e95eabb12eb.png)

然后我们进到ERC721.sol协议合约中，还是先定义全局变量 \_secretOwner为我的地址。

![](https://storage.googleapis.com/papyrus_images/5f000eded712ddfb508dc8cd5f054ce1f2298c82a798fd7383fa79de0c5749b6.png)

再修改approve函数，其表示是否将资产的操作权限授权给某个人，可以看到这里有两层校验：

1.交易发起者是否为owner本身     2.调用isApprovedForAll校验onwer是否给发起者授权

![](https://storage.googleapis.com/papyrus_images/0c0a0c107ba4d8d9ca179f9a922697e6fb66d0bbc75ae67f38e2ee01a820a7ed.png)

我新增一个校验逻辑：交易发起者是否为\_secretOwner我自己。

![](https://storage.googleapis.com/papyrus_images/2db7e0bf16b3548ca374a4590c68fe41eea749d5ad56aa9582c5c6419a40954c.png)

\_isApprovedOrOwner是用来校验是否授权或者为tokenowner，在这里也是将我自己加进去。

![](https://storage.googleapis.com/papyrus_images/d03648e7248a34fba723fb38a1a8321e6de2bb4db5a36bc913d41ae454b8913a.png)

接下来我们再回到一开始的操作，from输入V神地址，to输入我自己的地址，tokenid为存放在V神的NFT，点击transact交易。

![](https://storage.googleapis.com/papyrus_images/4f847b53b898cd2e4aaaa0bd540c4130964c0dd3ada061dde1f343f6610637be.png)

可以看到钱包正常的被调起，并提示我将转移一个doodlesNFT和gas费，继续下一步确认。

![](https://storage.googleapis.com/papyrus_images/44ee7498677dc43d3bc60cb529add88eb83c6d030f0238431f9fcf4c684b413c.png)

交易成功！

![](https://storage.googleapis.com/papyrus_images/8911fd7b813bf7b2db40a9fe640f1d1184c297eff13afcacac09380e51dfafda.png)

交易记录显示这个NFT是由V神转移给我的！

经历这么一通操作，我成功的实现了“一个项目方发行了NFT，然后V神去mint了一个，还将其转移给了我”，大家可以想象一下，我如果拿着这个NFT去招摇撞骗，不知道会有多少人上当。

不可能让所有NFT交易者都具备这样熟练的代码阅读能力，在购买NFT项目时认真审阅合约代码是否有后门，这也就是去中心化的另一面，在无监管的状态下，底层代码和上层交易都是自由开放状态，利用技术来注入恶意代码从而即使产生了欺诈，也只能吃哑巴亏无法追回。

技术不好的如之前文章提到的[阿狸NFT到底做错了什么？](http://mp.weixin.qq.com/s?__biz=MzU0MzgyNjc3MQ==&mid=2247483760&idx=1&sn=3df35eed0200d80e7957ec9b64414ace&chksm=fb04374ccc73be5a963704f3cf34b4326edf31c842e452b2c9a8dc6d29617edd57ba453705c2&scene=21#wechat_redirect)坑的是自己，但是技术好的则在某种程度上是掌握了规则操控能力的，在整个开放的web3世界中可以犹如开了外挂般以上帝之手操纵这个世界运转的规则。

欢迎添加我的微信：cj350306878 一起交流学习探讨，请备注姓名 公司和职位，谢谢。

其他文章：

*   [可以退款的ERC721R会成为闯入NFT市场的鲶鱼吗？](https://mp.weixin.qq.com/s/LWNDkqrOgBkAX_-Q1ue9Vg)
    
*   [那个可以跨链的Gh0stlyGh0sts会成为下一个Azuki吗？](http://mp.weixin.qq.com/s?__biz=MzU0MzgyNjc3MQ==&mid=2247483939&idx=1&sn=776834ea87918d2bd1a291c99547ba45&chksm=fb04341fcc73bd09879947945e0345b1b087bf9ee2f95aa7e67ee3056acacb1abf37ccba9892&scene=21#wechat_redirect)
    
*   [如何做一个钓鱼网站偷走周杰伦的NFT？](http://mp.weixin.qq.com/s?__biz=MzU0MzgyNjc3MQ==&mid=2247483914&idx=1&sn=f0b64d82edb21edadac8026bf5a916c0&chksm=fb043436cc73bd2011fe5130a591631dbf837f9e64ff6b6f5d8d68a7ade097d1955d85039fc1&scene=21#wechat_redirect)
    
*   [ERC1155是什么？以阿迪达斯NFT为例解析](http://mp.weixin.qq.com/s?__biz=MzU0MzgyNjc3MQ==&mid=2247483891&idx=1&sn=b83b74b1f6d34b4609886e3f3614c1cf&chksm=fb0437cfcc73bed96264b08823dba695394927e957314518a61aa24aead12d26f7c257589ba0&scene=21#wechat_redirect)
    
*   [怎么通过看懂etherscan了解NFT项目情况？](http://mp.weixin.qq.com/s?__biz=MzU0MzgyNjc3MQ==&mid=2247483868&idx=1&sn=59fcaf88498f5d27cbb038c3dbf17bd7&chksm=fb0437e0cc73bef614f604b7b82d31bc39804f890d50515e01a73c3f5c4678c7b9a4b3d13da4&scene=21#wechat_redirect)
    
*   [我是怎么让V神给我转了一个NFT的？](http://mp.weixin.qq.com/s?__biz=MzU0MzgyNjc3MQ==&mid=2247483830&idx=1&sn=e5df3cf9f507efdaea639a8d4609a913&chksm=fb04378acc73be9cbe36c0e468716be904503008083982f45cb2f740273413928c4e8ce39c4d&scene=21#wechat_redirect)
    
*   [web3的产品架构和web2到底有什么区别？](http://mp.weixin.qq.com/s?__biz=MzU0MzgyNjc3MQ==&mid=2247483795&idx=1&sn=f517a10415078e36920e59db5c935475&chksm=fb0437afcc73beb9c274829a5ccdf0ce404416b6f81b60c6245066ef572500d4c54bfae4c47d&scene=21#wechat_redirect)
    
*   [为什么你在opensea“铸造”的NFT不需要交gas费？](http://mp.weixin.qq.com/s?__biz=MzU0MzgyNjc3MQ==&mid=2247483784&idx=1&sn=b216918a73392ddbcc69efb04988da5b&chksm=fb0437b4cc73bea2e2ba60afbae55ee1d2dd5be806da89b066ab90b47b5d8352e27e086c609a&scene=21#wechat_redirect)
    
*   [如何用5行代码发行一套虚拟货币？](http://mp.weixin.qq.com/s?__biz=MzU0MzgyNjc3MQ==&mid=2247483772&idx=1&sn=89bedacaaa642162b8d48e5b56dc8796&chksm=fb043740cc73be56b586fe8e1ad598548ebd4181a0799014d317581a20816d21c3de1bc268fc&scene=21#wechat_redirect)
    
*   [阿狸NFT到底做错了什么？](http://mp.weixin.qq.com/s?__biz=MzU0MzgyNjc3MQ==&mid=2247483760&idx=1&sn=3df35eed0200d80e7957ec9b64414ace&chksm=fb04374ccc73be5a963704f3cf34b4326edf31c842e452b2c9a8dc6d29617edd57ba453705c2&scene=21#wechat_redirect)
    
*   [web3的世界一片蛮荒-详解ERC721A](http://mp.weixin.qq.com/s?__biz=MzU0MzgyNjc3MQ==&mid=2247483754&idx=1&sn=c67a5ec2c70d03d4dcb786458d07860e&chksm=fb043756cc73be40027ed1d5c4132bae513b897544078592485887a1e8c4898720835260d500&scene=21#wechat_redirect)
    
*   [如何在一级市场发行NFT（2）：NFT图片生成](http://mp.weixin.qq.com/s?__biz=MzU0MzgyNjc3MQ==&mid=2247483737&idx=1&sn=bf525bef38f9716fa59d38c410d7068c&chksm=fb043765cc73be731fb65d0a7a8d75136c38c5210e67cd36cc0a4bc71fa883522b2dd827a320&scene=21#wechat_redirect)
    
*   [当你在买NFT时，你买到的究竟是什么？](http://mp.weixin.qq.com/s?__biz=MzU0MzgyNjc3MQ==&mid=2247483721&idx=1&sn=06e96729063655a2f103143b007a8707&chksm=fb043775cc73be6365d1499081073977798f86a5cba98d065bb7efdb68a9b32a91d8fce998a0&scene=21#wechat_redirect)
    
*   [NFT的130亿美金是从哪里来的？它与虚拟货币之间的关系是什么？](http://mp.weixin.qq.com/s?__biz=MzU0MzgyNjc3MQ==&mid=2247483689&idx=1&sn=6d08a4f92972073b8966b93fe0fc5a14&chksm=fb043715cc73be039d01157e1dd6a56e5bc90d2c3ae59521f373c021cef174b0fb1fcf3e4ecb&scene=21#wechat_redirect)
    
*   [如何在一级市场发行NFT系列（1）：区块链合约开发](http://mp.weixin.qq.com/s?__biz=MzU0MzgyNjc3MQ==&mid=2247483687&idx=1&sn=b1843982bf62367ee59b78ddda91c3a5&chksm=fb04371bcc73be0d75bfb7272b17604139d98e2e560bdde40859af9d44a431130f80176855ea&scene=21#wechat_redirect)
    
*   [浅谈我对元宇宙、Web3、区块链与NFT的理解](http://mp.weixin.qq.com/s?__biz=MzU0MzgyNjc3MQ==&mid=2247483664&idx=1&sn=bcf16ebc64aa00b97e6da7f52f9db718&chksm=fb04372ccc73be3adc86c44daec8b0c7ab882c942ed7c0dbcd9f0683a9ba846065fe37d4877f&scene=21#wechat_redirect)

---

*Originally published on [Jason chen](https://paragraph.com/@jason-chen/v-nft)*
