免責聲明:金色財經所有資訊僅代表作者個人觀點,不構成任何投資理財建議。 舉報

    瘋狂“出圈”和刷屏之后 Web3.0熱潮下的NFT安全如何保證?

    最近一段時間,Web3.0不斷“刷屏”,NFT瘋狂“出圈”,有人擼空投,有人搞收藏,有人說,NFT的爆炸性增長正在推動Web 3.0的發展。

    Web1.0 到 Web2.0 實現了內容的消費者向內容生產者的轉變,其本質是進行了一次從物理世界向網絡世界的平行時空的大遷徙,當我們暢談 Web3.0 的發展時,不得不進一步提到關于區塊鏈,因為區塊鏈的去中心化、去信任和防篡改的特性很好的對標了 Web3.0 的目標——創造新一代互聯網,讓每個用戶掌握自己的數據、身份和命運。

    Web3.0基于區塊鏈而存在,承諾將隱私和數字身份還給用戶,同時由于NFT等的應用,實現了新的互動水平。但我們更需要的是Web3.0熱潮下NFT的諸多“危險”與“隱患”,最近NFT領域隨處可見的“黑客事件”也證明了我們需要將“安全”放在第一位。

    近期發生了哪些NFT合約安全事件?

    4月21日,NBA的NFT項目合約遭受攻擊,攻擊者利用了簽名未驗證,在合約代碼中,vData memory參數info在傳入函數中未進行驗證導致簽名可復用,攻擊者可以通過使用其他人的簽名來進行Mint,導致項目方被瘋狂“薅羊毛”。

    而在4月23日,NFT項目Akutar驚現低級漏洞,它的AkuAuction合約由于智能合約本身漏洞,導致11539ETH(價值約3400萬美元)被鎖死在合約中。經成都鏈安技術團隊分析,發現Akutar項目的智能合約包含2個漏洞:

    第一個合約漏洞在processRefunds中,設計者根據refundProgress計數器進行循環退款,而如果有攻擊者此時在fallback中進行revert則會導致后面的人都無法進行退款,這個漏洞被人在鏈上證明但沒有進行攻擊利用。

    第二個漏洞在claimProjectFunds中,require語句(refundProgress > = totalBids)的totalBids變量應該是bidIndex,這個漏洞使得該判斷條件永遠失敗,導致無法執行后續的提款操作。最終,導致項目方11539ETH(價值約3400萬美元)被鎖定無法提取。

    可見關注NFT合約風險,變得越來越緊迫。

    NFT合約問題包括哪些?

    根據NFTSCAN數據顯示,目前全球NFT項目已接近七萬個,而且數據還在持續增長中。

    數據來源:NFTSCAN(統計時間:2022.4.25 18:00)

    NFT作為Web3.0的底座,它的安全問題對行業發展同樣重要,為了護航Web3.0的安全生態,成都鏈安通過智能合約形式化驗證工具鏈必驗對上千個NFT項目進行漏洞掃描,發現NFT常見的合約問題還包括以下幾類:

    業務邏輯相關問題:

    此類問題可能直接導致合約的業務邏輯出錯。

    漏洞描述:chapterAuctionMinted的值永遠為初始值,但是在此處使用的判斷條件中,使用了該值進行條件檢查。如果在開發期間使用【鏈必驗】掃描后,開發者可根據掃描結果判斷是否是相關邏輯缺失(可能導致NFT超量發放等業務邏輯安全問題),亦或是冗余代碼。

    漏洞描述:未檢測返回值。在NFT項目中,經常存在有償鑄幣的功能,調用者需要將作為鑄幣手續費的ERC20代幣發送到NFT鑄幣合約中,然后NFT鑄幣合約為其鑄造對應數量的NFT代幣。但是部分ERC20合約存在假充值的問題,即轉賬失敗不拋出異常而是返回false,這樣就會導致一個問題,攻擊者可以利用這點,在未支付手續費的情況下,鑄造任意數量的NFT。開發者應根據VaaS掃描結果的建議,檢查transferFrom操作的返回值或者使用safeTransferFrom函數進行ERC20代幣轉賬。

    代碼規范相關問題

    此類問題可能不會直接造成業務邏輯出錯,但是會影響代碼的可讀性,造成合約調用時有多余的gas消耗等。同時不規范的代碼也容易導致編寫時邏輯混亂,有隱藏的邏輯錯誤的概率更高。

    漏洞描述:此處循環的結束條件為curr>=0,而curr為uint導致curr>=0恒滿足。此處會導致循環無法正常結束。【鏈必驗】在掃描中會對這類結果為定值的條件進行告警,用戶可以通過提示確認此處邏輯,對條件進行刪除或修改。

    漏洞描述:此處event中將string類型的數據標記了indexed,該寫法會導致在事件結果中無法直接獲得對應的string結果。建議用戶參考【鏈必驗】的提示,僅使用indexed修飾固定長度的變量。

    研究發現,大多數的NFT合約都沒有進行過專業的安全審計,這就存在很大的安全隱患,容易導致攻擊事件的發生,造成資產的損失。所以NFT智能合約開發者應具備基本的安全開發意識,了解智能合約開發應注意的安全問題;此外,在合約設計和實現時,注意代碼實現的正確性。我們建議開發完成后,可使用【鏈必驗】對項目進行安全檢測。項目上線前,可選擇安全審計,規避安全風險。

    安全,是區塊鏈技術能夠得以長足發展的重要保證,守護Web3.0的安全也變得愈發重要。今天我們所講的業務邏輯相關問題和代碼規范性相關問題,也是智能合約里面常見的問題類型?,后續我們將繼續推出NFT相關安全文章,請大家持續關注我們

    jinse.com
    好文章,需要你的鼓勵
    jinse.com
    好文章,需要你的鼓勵
    參與評論
    0/140
    提交評論
    文章作者: / 責任編輯: 我要糾錯

    聲明:本文由入駐金色財經的作者撰寫,觀點僅代表作者本人,絕不代表金色財經贊同其觀點或證實其描述。

    提示:投資有風險,入市須謹慎。本資訊不作為投資理財建議。

    金色財經 > 區塊鏈 > 瘋狂“出圈”和刷屏之后 Web3.0熱潮下的NFT安全如何保證?
    • 尋求報道
    • 金色財經中國版App下載
      金色財經APP
      iOS & Android
    • 加入社群
      Telegram
    • 意見反饋
    • 返回頂部
    • 返回底部
    WSOP官网