• 【超完整懶人包】認識比特幣!原理與應用全面解析|動區新手村
  • Account
  • Account
  • BlockTempo Beginner – 動區新手村
  • Change Password
  • Forgot Password?
  • Home 3
  • Login
  • Login
  • Logout
  • Members
  • Password Reset
  • Register
  • Register
  • Reset Password
  • User
  • 不只加密貨幣,談談那些你不知道的區塊鏈應用|動區新手村
  • 動區動趨 BlockTempo – 最有影響力的區塊鏈新聞媒體 (比特幣, 加密貨幣)
  • 所有文章
  • 最完整的「區塊鏈入門懶人包」|動區新手村
  • 服務條款 (Terms of Use)
  • 關於 BlockTempo
  • 隱私政策政策頁面 / Privacy Policy
動區動趨-最具影響力的區塊鏈新聞媒體
  • 所有文章
  • 搶先看
  • 🔥動區專題
  • 🔥Tempo 30 Award
  • 加密貨幣市場
    • 市場分析
    • 交易所
    • 投資分析
    • 創投
    • RootData
  • 區塊鏈商業應用
    • 金融市場
    • 銀行
    • 錢包
    • 支付
    • defi
    • 區塊鏈平台
    • 挖礦
    • 供應鏈
    • 遊戲
    • dApps
  • 技術
    • 比特幣
    • 以太坊
    • 分散式帳本技術
    • 其他幣別
    • 數據報告
      • 私人機構報告
      • 評級報告
  • 法規
    • 央行
    • 管制
    • 犯罪
    • 稅務
  • 區塊鏈新手教學
  • 人物專訪
    • 獨立觀點
  • 懶人包
    • 比特幣概念入門
    • 從零開始認識區塊鏈
    • 區塊鏈應用
  • 登入
No Result
View All Result
  • 所有文章
  • 搶先看
  • 🔥動區專題
  • 🔥Tempo 30 Award
  • 加密貨幣市場
    • 市場分析
    • 交易所
    • 投資分析
    • 創投
    • RootData
  • 區塊鏈商業應用
    • 金融市場
    • 銀行
    • 錢包
    • 支付
    • defi
    • 區塊鏈平台
    • 挖礦
    • 供應鏈
    • 遊戲
    • dApps
  • 技術
    • 比特幣
    • 以太坊
    • 分散式帳本技術
    • 其他幣別
    • 數據報告
      • 私人機構報告
      • 評級報告
  • 法規
    • 央行
    • 管制
    • 犯罪
    • 稅務
  • 區塊鏈新手教學
  • 人物專訪
    • 獨立觀點
  • 懶人包
    • 比特幣概念入門
    • 從零開始認識區塊鏈
    • 區塊鏈應用
  • 登入
No Result
View All Result
動區動趨-最具影響力的區塊鏈新聞媒體
No Result
View All Result
Home 區塊鏈商業應用 nft

嘟嘟房NFT事件懶人包 | 白名單鑄造失敗合約問題在哪?究竟是誰出包?

Advac L. by Advac L.
2022-03-12
in nft, 區塊鏈商業應用, 台灣, 專欄作者
A A
嘟嘟房NFT事件懶人包 | 白名單鑄造失敗合約問題在哪?究竟是誰出包?

Source : iParking

948
SHARES
分享至Facebook分享至Twitter

嘟嘟房 NFT 這次出包問題的核心, isWhitelisted 的 function。而真正儲存在區塊鏈的變數是 whitelistedAddresses,他是一個 Array 裡面塞滿了所有的白名單。在智能合約裡面用 for loop 去一個一個檢查資料,如果當 array 資料少的時候沒什麼太大問題,但如果白名單增長了,那問題可就大了! 本文由 FulyAI 創辦人 Rex Chen 撰稿。
(前情提要:嘟嘟房 NFT 白名單出包?網爆料「花上百美元手續費還失敗」,官方回應:Gas Limit 設太低)

」

嘟嘟房 3/11 早上 10:00 開放白名單可以去 mint,但是幾乎所有人有白名單的全部都 mint 失敗!!

這是嘟嘟房的智能合約地址
https://etherscan.io/address/0xae122962331c2b02f837b2aa501d3c5d903ed28a#code

根據合約可以看得出來他的 preSaleMint,有做檢查判斷是否 isWhitelisted

這是這次出包問題的核心, isWhitelisted 的 function

而真正儲存在區塊鏈的變數是 whitelistedAddresses,他是一個 Array 裡面塞滿了所有的白名單

在智能合約裡面用 for loop 去一個一個檢查資料,如果當 array 資料少的時候沒什麼太大問題,但如果白名單增長了,那問題可就大了。

根據合約 transaction 可以看出所有的白名單有 898 筆,寫入這些白名單資料花費了 0.689 以太的手續費,真是爆多啊

https://etherscan.io/tx/0x8c259c8b199826c9820c72c608fa61e52b687877e416073f9daa97138bfb2301

如果你運氣很好的你白名單在前面的順位,恭喜你可以用很低的 gas fee 去 mint 到,如果你在後面的話你就衰小了。

這些是剛開始所有的失敗交易紀錄,其實不知道為什麼有些人要偷跑先 mint,都有白名單了 XD,但他這個項目比上次偷跑賣光的 Yolocat 09哥合約好一點,他有設定 preSaleStart <= block.timestamp,所以基本上是不可能可以偷跑去 mint。

延伸閱讀:幣圈奇聞!「開賣前 1分鐘,完售」,陳零九YOLO Cat NFT入帳數千萬,地板價漲至9ETH

由於他有設定 preSaleStart <= block.timestamp

這時間換算台灣時間就是早上十點

這是第一筆真的交易失敗的交易紀錄,他是在白名單裡面的 258 號,算是比較中間的,這時候的 Gas Limit 是設定 420,000,因為 Gas Limit 設定太少,所以他 out of gas。

這是第一筆成功 mint 到的人,他在白名單裡面編號是第4號 XD,運氣超好,所以他只有花了 16.93 美元的手續費就 mint 到了,以太坊最近很冷清,這時候的 Base gas fee 才 32 Gwei,這樣子的手續費是正常的。

我們來看後來項目方手動調整到 Gas Limit 2 百萬,還是有人失敗,因為他在白名單裡面編號是 869 號,真是有夠衰小,花了 144.99 美元的手續費,還是 out of gas。

所以問題是什麼呢?

Gas Limit 設定太小是第一點,但正常自己用 metamask 都可以進階去手動調整,應該不是什麼太大問題
真正的問題在用 for loop 去爬 array,造成越後面順位的人手續費就越高,會是等比級數的成長,很恐怖,前面的人就很 lucky。

那這樣的問題該怎麼解決呢?

比較簡單的做法就是不要用 array 去存,用一個 mapping 去存這個地址是這個地址是白名單

然後判斷的時候直接判斷,就不用一個 for loop 去跑

但缺點是設定白名單一樣成本很高,但至少不會造成用戶去 mint 的時候成本很高!

所以現在主流做法都是用 merkle tree 的方式來實作白名單,好處是修改名單方便,也不用這麼高的手續費,小弟最近也剛研究完而已 XD,有任何寫錯的地方都歡迎技術交流。

📍相關報導📍

陳零九IG直面YOLO Cat NFT爭議:將補償所有人共7萬鎂Gas Fee、抽3隻貓

江振誠 NFT 爆合約漏洞「超額鑄造」!EchoX呼籲退還、勿在二級市場購買惹議


讓動區 Telegram 新聞頻道再次強大!!立即加入獲得第一手區塊鏈、加密貨幣新聞報導。

LINE 與 Messenger 不定期為大家服務

加入好友

加入好友

Tags: NFT嘟嘟房智能合約白名單


關於我們

動區動趨

為您帶來最即時最全面
區塊鏈世界脈動剖析
之動感新聞站

訂閱我們的最新消息

動區精選-為您整理一週間的國際動態

戰略夥伴

Foresight Ventures Foresight News

主題分類

  • 關於 BlockTempo

動區動趨 BlockTempo © All Rights Reserved.

No Result
View All Result
  • 所有文章
  • 搶先看
  • 市場脈動
  • 商業應用
  • 區塊鏈新手教學
  • 區塊鏈技術
  • 數據洞察
  • 政府法規
  • RootData
  • 登入

動區動趨 BlockTempo © All Rights Reserved.