ERC721R 合約實測!防 Rugpull 的合約竟然可以被用來 Rugpull!?

ABMedia
分享
ERC721R 合約實測!防 Rugpull 的合約竟然可以被用來 Rugpull!?

(本文由 The Z Institute 提供)

前言:

NFT 協議好幾種,ERC721 / ERC721A / ERC 721 psi / ERC 721R 之間的差別究竟是什麼?當協議隨著技術發展不斷迭代,項目的需求亦不斷翻新,身為一個開發者,該如何了解什麼樣的協議適合什麼樣的應用場景?

點燃推特輿論,號稱能夠在有效期限內退回 NFT ,並回收鑄造費用的 ERC 721R 協議背後的邏輯為何?如何實際應用在智能合約撰寫上?鑄造之後真的能夠無限制退款嗎?The Z Institute 區塊鏈線上學院本次就在直播中直接實測這個最新協議,討論並改善協議的漏洞問題。

NFT 協議們的前世今生:

ERC 721:最常見的 NFT 協議,2017 時因項目 Crypto Kitties 首度面世,與過去的共用 ID 的 Token 概念不同,每個 NFT 都有自己獨特的 Token ID。

ERC 1155:一個合約內可以有多個不同的 Token ID,一個 Token ID 可以有多個 NFT。

ERC 721A:由 NFT 項目 Azuki 發布,為了降低批量 mint Gas fee 開發出來的協議,節省智能合約在鏈上寫入資料的工作,用演算法的方式提高同時多筆鑄造的效益。

ERC 721Psi:以 ERC 721A 為基礎,再度針對降低 Gas fee 做優化。

ERC721R 的由來

由 NFT 項目 Crypto Fighter 開發,延伸 ERC721A 的協議做改良,為了防止項目方 Rugpull 設計的 NFT 退款機制,目的在於表現項目方長期營運的誠信。

項目方可以事先在合約中寫定鑑賞天數(退費期限),在這個期間內 NFT 擁有者都可以直接透過合約機制申請全額退款,只需付 Gas fee。

ERC721R 的設計與退款邏輯

  1. 合約初始化的時候,以函示根據現在的時間加上合約內寫定的週期,設定最後退款日期,並開啟退款倒數功能,期間內 NFT 擁有者可以隨時退款。
  2. 如果退款機制啟動,將款項退回到 NFT 擁有者錢包後,NFT 不會被 Burn 掉,而是轉回到合約擁有者(項目方)手上。
  3. 在退款期結束前,鑄造收入會鎖在合約地址內,達到目標日期項目方才能提取鑄造收入,以確保合約內有足夠的款項可以退 NFT 擁有者。
由實作退回中可以看到,款項會退回擁有者錢包,NFT 則會回到項目方手上

(參考 tx:https://rinkeby.etherscan.io/tx/0x9b78e13bfbbaee027a08afa79a31cf8c705539d4e38f603691dbbd56a9f304b4

ERC721R 機制的漏洞

項目方如何利用漏洞 Rugpull:

  1. 項目方先使用自己的合約鑄造(Mint)一張 NFT,此時項目方手上持有一張自己的 NFT
  2. 項目方啟動退款機制,款項從合約地址退回自己的錢包,NFT 也退回項目方的錢包
  3. NFT 回到項目方手中後,項目方「再」執行一次退款機制,NFT 再度回到自己手上,退款與收回 NFT 無限迴圈,直到合約內鎖住的錢被項目方提空,RUGPULL !
示範影片中有 Rugpull 實測,1:04:00

如何填補 ERC 721R 的合約漏洞

在合約內另外寫入規則:一個 Token ID 只能退款一次,解決重複退款問題。

在直播過後,The Z Institute 已向 ERC721R 合約提出修正建議與修正實作代碼:D

(參考網址:https://github.com/exo-digital-labs/ERC721R/pull/9

ERC721R 對 NFT 來說是一個好的機制嗎

部分開發者與社群參與者認為,ERC721R,可以透過去中心化的合約機制,確保項目方有長期運作的誠信,保障一級市場的參與者的權益。

但另一方面,此協議可能導致在退款期結束之前,項目方會面臨沒有開發經費的窘境;或者 NFT 生態規則被破壞,鯨魚大量鑄造並退回不是稀有的 NFT。以及,區塊鏈精神本身並鼓勵退回機制。

本次直播的影片與共筆

網址:https://bit.ly/3vfbzIa

學院介紹:

The Z Institute 旨在成為一所產學合一的 Web 3 元宇宙大學。我們自 2017 年開始提供區塊鏈顧問、企業內訓、專案開發、智能合約審計、國際資源媒合對接等服務。同時開設區塊鏈線上課程和培訓工坊,致力使未來科技廣為傳播且發揚光大,並解決區塊鏈最前線的人才需求。

學院至今已經訓練超過 2,000 名來自各個專業領域學員,從技術教育到職業媒合,成功輔導多位 Web 2 的人才轉職國內外 Web 3 產業。我們堅信人才的培訓是產業的基礎,目標是將台灣的人才推向世界舞台,加速帶動台灣區塊鏈的發展。

目前也現正籌劃新的課程,歡迎填寫課程調查表單,讓你的意見被我們聽到,並收到最新課程資訊與優惠!表單連結:https://forms.gle/hStDkWzitpem1YNA9