隨著日本開放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/