随着日本开放NFT业务平台,韩国三大娱乐公司之一的JYP公司将目光转向NFT市场,NFT越来越受普通人的关注。试想日本动漫,韩流涌入到NFT市场,其爆发力和潜力该有多大?但是NFT和任何其他DeFi 一样,都是由易受攻击的智能合约组成,因此NFT的安全现在也备受关注。本片从以往的NFT出现的一些事故来阐述NFT智能合约的故事。

NFT一个不太突出的方面是,它们是建立在智能合约之上的,而智能合约可以被利用、被破坏和被黑客攻击。与任何具有不完美智能合约的典型DeFi项目类似,NFT智能合约也可能存在导致不利结果的漏洞。随着我们讨论历史和一些导致资金损失的不幸事故,我们将回顾人们在过去几年里利用NFT合约所做的事情。

CryptoPunks

CryptoPunks可以说是迄今为止最受欢迎的NFT项目,在2017年推出后,其智能合约中出现了一个有影响的漏洞。当所有1万名Punks被卖出并进入二级市场后,发现了一个可能发生销售但未收到实际付款的错误。

代码中的问题归结为一行——它没有经过足够的测试。@0xfoobar后来在Twitter上发布了一个帖子,详细解释了这个bug。

CryptoPunks的创建者LarvaLabs最终以一份新的、更新的合约重新启动了该项目。V1朋克是最初合约的一部分,直到CryptoPunks V1的 ERC-721封装被发布,这也被称为“经典朋克”。

Meebits

在推出CryptoPunks多年后,LarvaLabs又推出了一个名为Meebits的后续项目。所有Meebits都带有随机特征。然而,在其启动时,一些用户想出了如何欺骗系统和重新滚动特征,以获得他们想要的特征。

如何?Meebits项目在智能合约中包含一个存档文件,显示每个Meebit代币ID的特征。用户可以启动Meebit的铸造,如果他们通过比较特征文件发现代币并不罕见,就可以取消它。一位用户充分利用了这一点,并在Twitter和Discord上公开记录了他的成功。这个用户是“0xNietzsche”。

0xNietzsche发起了300多笔交易来测试这一漏洞。如果没有足够稀有的特征,他们发起铸造的每个 Meebit 都会被取消。经过 300 多次交易,他们终于能够偶然发现一个罕见的 Meebit。#16647。

“0xNietzsche”声称,他们每小时花了2万美元的gas费,等着铸造他们稀有的Meebit,但他们仍然利用合约这样做。他们能够以200 ETH的价格出售新制作的Meebit,当时价值约75万美元。

LarvaLabs很快就听到风声,暂时停止了Meebit的铸造,并发布声明:“我们已经暂停了Meebit合约中的社区铸造和交易。合约是安全的,所有Meebits都是安全的,交易也很顺利。”他们是正确的,Meebits仍然是完全随机分配的——除非你投入大量的时间和gas费用,否则就不能利用合约,而那时,铸造几乎已经完成了。

尽管如此,Meebits是一个很好的例子,说明了如何利用智能合约,让一个或多个用户在创建NFT时获得竞争优势。

MoonCatRescue

MoonCatRescue于2017年推出,一开始他们的合约就有一个相当大的缺陷。

MoonCats官方常见问题解答页面提出了一个问题:您是否为此获得报酬?

回复:

“不。我们打算从创世猫的销售中收集以太坊。然而,我们在QA过程中所做的修正却导致这些资金被永久封存。但这没关系。”

当MoonCat被收养时,transferCat(catId, catOwners[catId], msg.sender, offer.price),资金被发送到 ```require(catOwners[catId] != 0x0。在测试中仔细检查它的话,其实是可以解决这个问题的。虽然这不是智能合约的主要缺陷,但在他们意识到这个错误之前,他们仍然失去了相当数量的ETH。

智能合约的整体漏洞

2018年3月,五位计算机科学家合作撰写了一篇题为《大规模发现贪婪、挥霍和自杀的合约》的论文,他们对此进行了研究:

贪婪合约,无限期锁定资金挥霍合约,将资金随意地泄露给任意用户自杀合约,可以被任何人杀死

他们在以太坊网络上签订了近100万个(970,898)智能合约。他们发现,其中34200个智能合约容易受到黑客/利用,这意味着在2018年,大约每20个智能合约中就有1个面临风险。他们深入分析了3759份合约,以具体验证它们的代码中存在漏洞,发现3686份合约中的漏洞都在平均10秒内被发现。这太疯狂了!他们最多可以从合约中提出4905以太币——略高于860万美元。该报告还补充说,“此外,区块链目前有6239以太坊(约560万美元)被锁定在死后的合约中,其中313以太坊在“死”后被送到了死合约中。”有很多加密货币卡在失效的合约里。在进行这项研究时,DeFi和其他智能合约占链上活动的比例要低得多。Glassnode于2021年5月6日发布的一份最新报告发现,22.8%的流通ETH被锁定在智能合约中。

现在仍然是每20个智能合约中就有1个容易受到攻击的情况吗?项目是否变得更安全了?或者,随着智能合约对缺乏知识的人来说变得更容易发布,情况可能变得更糟了?即使我们保持1 / 20的比率,这将意味着大约1%的ETH供应处于脆弱的智能合约中。

这里的要点是,在开始一个项目之前要做调查。尽量不要FOMO。确保你想要投资的项目花时间开发智能合约,确保这个项目不是凭空产生的。许多复制粘贴的代码存在于那里,这总是一个危险信号。

Source:https://blog.mycrypto.com/nft-smart-contract-bugs-exploits/