owned this note changed 3 years ago
Published Linked with GitHub

Yolo cat 文章 濃縮

區塊鏈核心始終不變,從以前的Fomo3D到如今的NFT。不管是去年2021年的Adidas mint超長時間,又或者周杰倫 nft闢謠,到如今的yolo cat / murmur cat,echox白名單階段透過合約把NFT買完,公售沒東西可賣。

今天就帶大家從三個方向,聊聊跨入NFT市場的陳零九YOLO Cat事件。

  • YOLO Cat 事情經過
  • 從合約分析YOLO Cat
  • YOLO Cat 事件影響

YOLO Cat事發經過

2022.1.9 當天藝人陳零九本來預計將在下午1330公開發售的,「 YOLO Cat Club」的系列 NFT,卻在1329分時全數鑄造完,幣圈社群頓時炸鍋。

對此陳零九及其技術合作方團隊 FOMO Dog Club 有在當天晚上的八點鐘,一同在 IG 直播說明整個事件的始末,以及主要的補償措施

https://www.instagram.com/tv/CYgnUQVBV2c/?utm_source=ig_web_copy_link

首先,關於為什麼在發售時間前就可以進行買賣,項目工程師的說明:

之所以會在開賣時間前就鑄造完畢,是因為他原本就是準備在接近拍賣時間(13:30)時釋出合約,但剛好這次以太坊出塊時間較快,所以才會導致在開買時間(13:30)前,就於官網釋出合約連結。
至於退還 gas fee 的補償措施,項目方將全數退還「4,394 筆」沒有鑄造成功的交易,一共 70,060 美元的 gas fee,此外還將抽出三位用戶,免費空投 YOLO Cat 作為補償。

此事件發酵後區塊鏈科學家社群 AlphaShark 的創辦人也有在,Medium 上發文解釋這次事件的原因 https://medium.com/@b1995/yolo-cat-復盤-1-956565334642

我們可能沒有去搶,又或者沒有搶到熱門的NFT,但不管我們的選擇是什麼,我們可以從中學習到什麼呢?

合約即條文,鏈上公開資訊會告訴我們答案

向Vitalik Buterin致敬

我們所有的疑惑都可以從合約去挖掘出答案

就讓我們帶大家透過合約的基礎來解答!

下面我們會分享如何找到NFT的合約,包含合約上架時間,觀看鑄造的機制。
有關機器人搶NFT的原理則不深入探討,簡單來說主要機器人所做的事情分為兩個,分別是暴力查詢提前找到合約以及產生多個智能合約代替人頭,突破每人鑄造數量的限制。

  • 如何找到合約
  • 如何知道合約上架時間

如何找到合約?

首先我們要先到 opensea 上找到 Yolo Cat 的項目
https://opensea.io/collection/yolo-cat-club09

  1. 點擊其中一個NFT
  2. 找到左側 Detail,其中有一個 Contract Address,點擊他
  3. 會看到在 Etherscan 上的 Contract

如何知道合約上架時間?

到 Contract Creator: 中 txn 的網址,會有此筆交易的詳細內容
可以看到 timestamp 是 `Jan-09-2022 04:37:34 AM +UTC)``

從這邊可以得知這個合約是在公開發售約一個小時前上架的,
而這裡的確會有人可以事先取得合約地址進行偷跑的動作,
不過這份合約當中其實有做一個狀態判斷,而從公開發售時間點的 block 13969455中,我們可以清楚地看到。

在 Etherscan 上 搜尋 13969455,可以看到這個 block 的詳細資訊,可以找到這筆交易 filp Sale Active (這邊應該是拼錯flip)。

點擊 129 transcations https://etherscan.io/txs?block=13969455&ps=100&p=1
從這裡我們可以發現,這個動作的意思才是真正開賣,只要在這個動作前的鑄造行為都會失敗,可以從合約的 transactions 觀察

直接看倒數第二頁的交易記錄,可以看到在 filp Sale Active 前都是 fail 的

從這些數據來看如果想只是單純地偷跑,在13:58其實是會失敗的

此NFT事件 從技術面去看兩大方面

  1. 第一隻鑄造出來的 NFT 的 ID
  2. 智能合約當中的鑄造方法是否有特殊寫法

首先 1 我們可以看 filp Sale Active 完的第一筆交易,他的 id 是 10,而下一筆是11,從這個規律推斷他前面還有九隻,剛好跟白名單的數量相符。

接下來是第二點,也是此事件發生的重點

從合約中我們可以以找到鑄造方法,詳細去合約看發現在 auctionMintYoloCat 確實是有寫到時間的判斷

把這兩段做比對,可以看到 auctionMintYoloCat 有判斷執行的時間一定要超過auctionStartTime,否則就會拒絕執行

第一個方法,的確有判斷狀態,如果有人偷跑是會挖失敗

但類似的方法 mintYoloCats 卻少了這個判斷
所以才有出塊時間不一致的問題。這裡的寫法的確需要好好檢視
同時也證明上線前的測試還有程式碼 review 非常重要!!!

因為很重要,所以貼三次
require(block.timestamp >= auctionStartTime, 'Auction not start');
require(block.timestamp >= auctionStartTime, 'Auction not start');
require(block.timestamp >= auctionStartTime, 'Auction not start');

一個可以走長遠的好項目,需同時具備社群與技術能力

此事件中項目方該值得深思的地方『公平』

在整起YOLO Cat凸顯了一件事,那就是對於一般人來說,創造了一個高門檻的標準,單純喜歡想要支持此項目的人如果不會程式,搶不到那就只能到opensea去購買,換句話就是取得門檻就變高了。

這就像是知名歌手的演唱會門票,假設今天公告在12:00開賣,但是11:59就搶購一空,有人先用程式搶完了,那麼不會程式,但是想聽演唱會的人只能透過黃牛去買。

項目的未來 取決於 社群的認同
信任所產生的認同 來自於 平日互動間的累積
一次不公平事件很可能造就社會大眾的不信任

針對此一事件被影響者的共勉

身處在區塊鏈圈這個去中心化的世界,多懂一點,就是一種保護自己的方式。
獨立思考,鑒別爆炸的資訊量,哪些對自己有益,哪些對自己有害,永遠是不會錯的

不隨之起舞,不一頭熱,因為永遠都有下一個賺錢的機會
我們能做的,就是在那個時間點到來時,把自己準備好

Select a repo