sponsored links

科普|NFT鑄造及購買過程技術詳解,科學家是如何搶購NFT的?

科普|NFT鑄造及購買過程技術詳解,科學家是如何搶購NFT的?

免責宣告:本文旨在傳遞更多市場資訊,不構成任何投資建議。文章僅代表作者觀點,不代表火星財經官方立場。

小編:記得關注哦

來源:iamcatcher

原文標題:《NFT 購買過程詳細分析以及科學家如何搶購 NFT》

本文基於自己近期的學習以及和群友討論總結,作為一個記錄,最後是自己對 NFT 行業現狀一點思考,剛接觸區塊鏈和以太坊程式設計難免有錯誤,歡迎大家指正和交流。

NFT 購買過程

科普|NFT鑄造及購買過程技術詳解,科學家是如何搶購NFT的?


簡單來說購買過程就是你的錢包和 NFT 合約進行互動,從你的錢包轉賬 0.176ETH 到合約,呼叫合約 mint 方法後,生成兩個 NFT 代幣,代幣轉移到你的錢包,你獲得這個 NFT。

關於 NFT 合約的內容可以參考以下文章:NFT 及 OpenSea 交易背後的技術分享—Mirror

NFT 購買過程詳解

將你從專案方的官方網站上點選 mint 按鈕,從瀏覽器到乙太網網路端到端互動過程詳細開啟:

科普|NFT鑄造及購買過程技術詳解,科學家是如何搶購NFT的?

NFT 購買過程

1、點選 Mint 按鈕

大家登陸專案網站,Chrome 上連線自己的錢包,然後點選 mint 按鈕。網頁上的 JavaScript 程式碼基於專案的 mint 價格,合約地址等生成 raw transaction 資料,主要包含以下幾個關鍵欄位

科普|NFT鑄造及購買過程技術詳解,科學家是如何搶購NFT的?
科普|NFT鑄造及購買過程技術詳解,科學家是如何搶購NFT的?


2、TX 簽名

網頁程式碼與 Metamask 互動,會彈出視窗讓你確認本次交易。點選確認後,Metamask 會使用你的錢包私鑰進行簽名,以確保這個交易是你本身授權的,後續以太坊網路會進行校驗。

3、傳送 TX 到 node 驗證

交易 TX 被 Metamask 傳送到 Metamask 的以太坊 node(預設配置),node 對 TX 進行校驗,確保交易不被仿冒。

4、廣播 TX 到以太坊網路

交易 TX 被髮送到以太坊網路的相鄰節點,然後再相互廣播到相鄰接點。這時你的交易就可以在 etherscan.io 上檢視到,狀態是 pending 狀態。

5、礦工 node 接收到 TX

礦工 node 會將同步過來的 tx 都放到一個叫 Txpool/Mempool 地方,這個地方是很多事情的關鍵,需要展開來講一下:

科普|NFT鑄造及購買過程技術詳解,科學家是如何搶購NFT的?


Txpool 程式碼流程(借用以太坊原始碼分析之 txpool 的圖)

Txpool 的資料來源主要來自:

本地提交,也就是第三方應用透過呼叫本地以太坊節點的 RPC 服務所提交的交易;

遠端同步,是指透過廣播同步的形式,將其他以太坊節點的交易資料同步至本地節點;

Txpool 中分了 Queue 和 Pending 兩個佇列,首先新收到 TX 會基於規則判斷後先放到 Queue 這個佇列,然後再新增 Pending 佇列等待挖礦加入新增的塊。

主要規則如下:

1)優先處理 Gasprice 高的 TX

2)本地 TX 優先處理,過於遠端同步

3)每個節點會設定最低 Gasprice,低於這個值的遠端 TX 會被丟棄

Pending 中的 TX,被 Miner 模組獲取並驗證,用於挖礦;挖礦成功後寫進區塊並被廣播。Miner 取走交易是複製,Txpool 中的 TX 並不減少。TX 被寫進鏈後才從 Txpool 刪除。

Gas 過低的 TX,會被一直卡在 Txpool 得不到處理,需要可以提高 Gas 讓它被處理。

詳細程式碼分析可以參考死磕以太坊原始碼分析之 txpool

GasWar:發生熱門交易時,大家為了自己的 TX 可以被優先處理,爭相提升 Gas 費的場景

6、礦工出塊 TX 被打包

礦工選取 TX 後開始挖礦,再找到一個區塊的 Solution 後廣播到以太坊網路。

7、出塊被驗證

在其他礦工節點驗證後,該區塊正式上鍊,這事我們 TX 結果可以在 etherscan.io 上檢視到。

8、TX 狀態同步

相關狀態返回本地,可以在 Metamask 上查詢到。

參考文件:

Life Cycle of an Ethereum Transaction

Transaction lifecycle on the Ethereum blockchain

The Influence Factors on Ethereum Transaction Fees

合約是如何被執行的

簡單說我們傳送的交易會被轉換成一個 Message 物件傳入 EVM,而 EVM 則會根據 Message 生成一個 Contract 物件以便後續執行。基於我們轉入的 Data 轉為合約的 input 呼叫 mint 函式。

詳細看 EVM 介紹參考如下文件:

easy-evm

learnblockchain.cn

NFT 預售與公開銷售

預售只是針對特定使用者才能購買,公開銷售就是大家都可以搶購。

這裡主要需要回答兩個技術問題:

1、如何限制特定錢包才能 mint?

2、預售和公開銷售之間是如何狀態切換的?

白名單機制

白名單現在普遍使用默克爾樹來實現,簡單來說將所有白名單錢包地址作為默克爾樹的葉子節點,生成一個 Root hash。在合約中只需要儲存 Root hash 值,在呼叫 mint 函式時網頁的 JS 程式碼基於錢包地址生成 proof(地址的上級父節點 hash),合約就可以校驗該地址是否屬於白名單。

以 C01 的合約為例:

0x6fd053bff10512d743fa36c859e49351a4920df6

科普|NFT鑄造及購買過程技術詳解,科學家是如何搶購NFT的?


在預售和公開銷售時透過 SetRoot 更新 hash(C01 兩次銷售都採用白名單方式,公開銷售採取驗資抽獎的方式)

科普|NFT鑄造及購買過程技術詳解,科學家是如何搶購NFT的?


詳細原理和程式碼參考下面文章:Using Merkle Trees for NFT Whitelists

銷售狀態切換

常用兩種方式:

1)透過在合約判斷時間點,比如 2022-01-01 18:00 UTC 開始公開銷售

2)透過狀態判斷,及在合約設定狀態變數,比如以 XRC 的合約為例,判斷 Status.PublicSale 狀態,這個是呼叫合約中 SetStatus 進行設定。

科普|NFT鑄造及購買過程技術詳解,科學家是如何搶購NFT的?

科學家如何搶夠 NFT

科學家使用程式搶購 NFT,就是使用各種手段使自己的交易 TX 可以先於別人被礦工打包,在售罄前完成 NFT mint。同時科學家都是追求完美的,最完美的結果當然是自己的 TX 出現在第一個滿足公開銷售狀態的區塊裡,也就是搶 Block0。

兩種場景的 Block0 如下圖,同時做到 Block0 還可以避免後續大家搶購發生的 Gaswar,減少搶購成本。但現在越來越卷,Block0 也會發生 Gaswar,比如 XRC 公開銷售不到 200 個,進入 Block0 的科學家 TX 數>200,也有不少因為 Gas 給低了執行靠後沒有搶到。

科普|NFT鑄造及購買過程技術詳解,科學家是如何搶購NFT的?

兩種場景下的 Block0

科學家用的手段總結大概以下三點:

1、資訊獲取時延更低

類似金融量化交易,基金都是期望自己的伺服器和交易所通訊的時延更低。區塊鏈也是類似,比如 CEX 大家都會就近接入中心化交易所的伺服器。NFT mint 和 DeFi 的交易發生在以太坊網路中,大家追求的更快的以太坊 Node 或者接入大礦池的網路,更快監控到 Txpool 的 pending TX,獲取需要的資訊讓程式及時執行。

2、交易走的路徑更短

1)、直接看了上面的 TX 互動過程,科學家的選擇肯定直接透過程式和 NFT 的合約進行互動。

2)、透過在鏈上部署自己的合約,透過私有合約和 NFT 合約互動。雖然私有合約需要外部 TX 觸發,但合約可以批次化購買,特別適合不限制 mint 數量的 NFT。(現在越來越多的 NFT 限制呼叫方是合約)

3、批次提交交易

除了上面提到透過私有合約 mint 之外,如果專案限制了每個地址的 mint 個數,可以透過 Flashbots 打包多個 TX 一起提交。

合約 mint

一個合約搶購的例子,YOKAI 公開發售後。科學家利用私有合約,一共搶購了 mint750 個。詳細見 TX。

YOKAI 合約程式碼,沒有限制一個地址可以 mint 多少個,只限制一次 tx 只能 mint 2 個。所以被科學家包場了。

科普|NFT鑄造及購買過程技術詳解,科學家是如何搶購NFT的?

神器 Flashbots

Flashbots 詳解見偉總這篇精彩介紹和官方文件:Flashbots:如何從沒有 ETH 的錢包取出資產或互動合約—Mirror

使用 Flashbots 的有幾點好處:

1)可以批次打包 TX 一起提交,可以自主控制打包 TX 的先後順序。

2)Flashbots 提交的 TX 不會出現在 Txpool,出現在鏈上之後才會被大家看到。這樣就提供了 TX 的隱秘性,所以很多 DeFi 量化交易平臺宣傳自己接入 Flashbots。(個人認為這只是暫時的,隨著 Flashbots 廣泛使用,Flashbots 提交的 TX 還是會被監控)

3)透過 Flashbots mint 失敗了不會被收 Gas 費

Flashbots 搶購我們以冷兔 XRC 的公售為例:

科普|NFT鑄造及購買過程技術詳解,科學家是如何搶購NFT的?


易老闆發推說公售不會科學家公售,但結果是在 block=14020984 Block0 解決戰鬥,全部科學家包場。

專案方傳送的 setStatus TX 在 14020982 時在 TXpool 被監聽到

科普|NFT鑄造及購買過程技術詳解,科學家是如何搶購NFT的?


然後有科學家把 setStatus TX 和自己的 mint tx 一起用 flashbots 打包了,傳送給礦工。這裡科學家把 setStatus TX 放到了第一,雖然它 Gas 低,將自己的 mint tx 排在後面,最終 tx 在 984 塊入鏈。

Flashbots 打包查詢連結

科普|NFT鑄造及購買過程技術詳解,科學家是如何搶購NFT的?

燒區塊

簡單說就是一直不停的發 tx,發得多 mint 成功的機率就大,撞大運還可能會擠進 Block0。這個方案問題在於會很消耗 Gas 費,屬於有錢任性的玩法。燒區塊一般考慮開始時間,每次 Tx 間隔,傳送次數,gas 費用等,這個一般都是大家根據專案時間,監控 pending tx,鏈上出塊速度等考慮。

冷兔公售搶購時就有大量科學家使用燒區塊的方式搶購成功,可考察這個錢包

如何防科學家

隨著科學家搶購的出現,越來越多的專案開始用各種辦法防科學家搶購,這些方法的本質都是限制科學家直接呼叫合約 mint,讓專案方選定的人才能 mint

1、只通過白名單方式發售

專案發售全部使用白名單機制,這樣專案方透過規則篩選出認為是真正欣賞專案的人。

但有規則就有對策,等級+邀請人數,就出現了聊天機器人和工作室養號賣邀請人頭;創作藝術就出現淘寶找人代畫;現在發展到限時邀請進 Discord;讓大家猜謎做任務等各種玩法。

專案方是絞盡腦汁和刷白名單的工作室鬥智鬥勇,普通 NFT 玩家也被各種規則耍得團團轉。

2、公售採用驗資抽獎方式

如 NFT 公售時,提前驗證錢包需要一定金額的 ETH,然後透過系統抽獎給出中獎名單。但很多專案方為了省事不願意做一個 1:1 的抽獎系統,最後公售名單大幅超售,最後還是大家搶購。

3、在服務端簽名驗證 mint

類似最近火熱的 HAPE 的做法,公開的 NFT 合約限制只能一個私有的閉源的合約才能 mint。閉源合約後項目方後臺伺服器互動,這個方案從技術上來說還是走 web2 中心化思路和 web3 去中心化的理念好像有點衝突。

科普|NFT鑄造及購買過程技術詳解,科學家是如何搶購NFT的?

NFT 未來如何發展

肝過白名單人都覺得現在 NFT 行業很不健康,但 NFT 行業還在早期,有問題就有市場肯定會有人出來解決問題。

NFT 發售需要公開公證透明,個人覺得解決的思路還是可以借鑑現實生活的大家熟悉的兩個場景:

1、新股發售,交易所進行賬戶交易時長、驗資等門檻,然後搖號抽獎發售。

2、京東茅臺搶購,京東平臺進行賬戶認證、搶購公平性保證等

這兩個場景都是透過平臺的權威性來保證公平,但在 web3 應該會有基於區塊鏈合約的新方案來實現類似的功能,就像現在 DeFi 市場的各種交易協議,不久將來可能會出現 NFT 發售協議,提供一種公平公證透明的發售模式。具體怎麼做我還在學習思考中,也歡迎大家指導討論。

未來應該是 NFT 專案方接入一個 NFT 發射平臺,專案方更專注於藝術創作和路線圖的演進,投資者更專注於專案的內容和前景,而發射平臺透過技術解決現在 NFT 發售的各種問題。

分類: 科技
時間: 2022-02-03

相關文章

睡眠 | 我為什麼要早睡早起?

睡眠 | 我為什麼要早睡早起?
之前已經分享了很多關於睡眠的基礎知識,也提到過,我一直執著於要早睡早起,這次就來分享一下我為什麼要早睡早起? 對我來說不早睡早起有什麼壞處? 第一個壞處:無法規律地吃早餐,長期來看影響健康 為什麼我會 ...

晚餐吃得比早餐“好”的人,會有什麼後果?

晚餐吃得比早餐“好”的人,會有什麼後果?
早餐吃好了活力一天,晚餐吃對了安穩睡眠. 然而理想總被現實打敗:當代年輕人習慣了早餐敷衍了事,晚餐大快朵頤,甚至九.十點開啟夜宵模式. 俗話說"早吃好.晚吃少",如果顛倒過來會有什 ...

熱的冷知識|幾點吃早飯好?睡回籠覺好不好?

熱的冷知識|幾點吃早飯好?睡回籠覺好不好?
早上起床後,新的一天就開始了,各種選擇也來了--沒睡好的,考慮要不要等會再補個覺:肚子餓的,思考著早飯應該吃什麼?運動型的人則糾結要不要出門跑個步,還是晚上再去-- 究竟如何選擇才更好?下面的這些小建 ...

幾點吃早餐好?如何吃?

幾點吃早餐好?如何吃?
科普[幾點吃早餐好?如何吃?]很多人都知道吃早餐的重要性,不吃早餐會影響新陳代謝,增加肥胖.糖尿病.認知功能障礙.結石等的發生風險!但是大家起床的時間都不同,有些人起得早,吃得早:還有些人十點多才起床 ...

民間故事:哥哥經歷怪事,回來後講給弟弟聽,弟弟從此不再吃狗肉

民間故事:哥哥經歷怪事,回來後講給弟弟聽,弟弟從此不再吃狗肉
南北朝時期,有一個名叫沃千秋的富家公子,去縣城裡拜訪朋友.在縣城裡逗留了幾天後,他辭別朋友,騎著騾馬啟程回家.走到半路上,他遇見一個十來歲的少年,光著腳丫,縮著膀子,手裡拎著幾包藥,低著頭快速地走著. ...

1950年毛岸英犧牲,2020年彭德懷絕密電報首次公開,電報說了啥?

1950年毛岸英犧牲,2020年彭德懷絕密電報首次公開,電報說了啥?
1950年11月,毛岸英在朝鮮戰場上壯烈的犧牲了,他的去世給毛澤東帶來了重大的打擊,毛澤東在閱讀前線戰報時,眼中含淚,手不斷地在顫抖,但他最終沒選擇哭出來,只是悲痛的說了一句:"誰讓他是毛澤 ...

看到這對母子飯桌上的一幕,才明白為什麼有的男孩註定受歡迎

看到這對母子飯桌上的一幕,才明白為什麼有的男孩註定受歡迎
受歡迎的孩子,往往自信.陽光.有修養,是人群中最耀眼的存在. 這種能力不是天生,而是後天習得.父母給孩子什麼性格,孩子就什麼命. 作者 | 番茄媽 前幾天,我請幾個老同學聚會吃飯. 其中一個老友梅子正 ...

劉邦一生作詩2首,皆為千古絕唱,乾隆4萬首,僅一首入選小學課本

劉邦一生作詩2首,皆為千古絕唱,乾隆4萬首,僅一首入選小學課本
我們現在家長給孩子起名字,時常會看到一個字--"贇",這個字的寓意很好,首先這個孩子是我們的寶貝,其次希望他以後"能文能武",也就是希望他不僅要讀書好還要體格好 ...

葉挺之妻李秀文,因顏值超高被稱校花,18歲時嫁葉挺二人共育9子

葉挺之妻李秀文,因顏值超高被稱校花,18歲時嫁葉挺二人共育9子
你活著,我陪你走南闖北浴血奮戰:你被困,我陪你一路顛沛挨災受難:你被害,我陪你粉身碎骨我們黃泉路見--這是忠貞剛烈的李秀文內心最直觀的想法,也是作為葉挺夫人一生最真實的寫照. 作為一個名副其實的大家閨 ...

看守所的中秋節是怎麼樣過的,會不會很特別

看守所的中秋節是怎麼樣過的,會不會很特別
看守所的中秋節 農曆十四日的晚上,程年沒有值班.躺在鋪板,想起白天的事.昨日凌晨三點被一個惡夢驚醒,看了一眼誰在值班,又閉起眼睛想起那個夢,幸好是夢.隔壁的門又響了,不知道那個倒黴蛋又關進了隔壁201 ...

短文/文章來自網路,如有侵權立馬刪除
"公主,駙馬又去逛青樓了." 這已經是這個月的第七次,我早就習以為常,但這次居然還有後文,"聽說,他看上一個花魁,想要納她為妾." 按照大祈律例,駙馬是不許納妾 ...

因聽寫語課後詞語,我和11歲的兒子大吵,最後崩潰大哭,後悔啊

因聽寫語課後詞語,我和11歲的兒子大吵,最後崩潰大哭,後悔啊
今天是十月二號,兒子早上六點半就醒了,躺在床上玩手機,當然我也醒了,也在玩手,我和兒子說:今天聽寫語文課後詞語,和英語二個單元 的英語單詞,兒子說沒說話 ,還繼續玩手機. 玩了一會後,快到8點了,我就 ...

江浙滬合集|杭州3小時高鐵圈能去哪些城市?

江浙滬合集|杭州3小時高鐵圈能去哪些城市?
讓人捉摸不定的疫情確實很影響節假日的中長線旅行,這部分需求大多都挪給了城市周邊的短途出行.所以我特別整理了杭州高鐵3小時內可以抵達的目的地. 有賴於發達的鐵路交通系統,坐火車不僅能抵達周邊城市,想深入 ...

德行天下 有容乃大——愛怡無限
大家好,我叫點點,一點點長大的點點.聽說我爸原來給我起名叫丟丟,我媽怕我丟了,吵他了一頓.又想給我起個念念,是念唸叨叨還是念念不忘,被我媽媽和奶奶一塊兒否決了.就叫點點! 但是現在也沒叫過,都叫我小寶 ...

林彪剛到東北,面對重兵進攻為什麼想看化學課本?
2013年電影<秀水河子殲滅戰>劇照 1945年8月,黨中央開始決定林彪任山東軍區司令員.鑑於東北地區的戰略地位極其重要,中央給正在赴山東途中的林彪發了一份"萬萬火急" ...

民間故事:男子要睡覺,黑狗兩次將他攔住,床下竟然隱藏著殺機

民間故事:男子要睡覺,黑狗兩次將他攔住,床下竟然隱藏著殺機
民間故事:男子要睡覺,黑狗兩次將他攔住,竟引出了妻子的風流事 古時候有一個獵戶名叫張大山,張大山父母已經過世,也沒有兄弟姐妹. 雖然家中沒有人幫襯,可張大山打獵的手藝高超,常常能捕到比別人多上一倍的獵 ...

小學生作文充滿反轉,原以為媽媽偏心弟弟,實則都是關心

小學生作文充滿反轉,原以為媽媽偏心弟弟,實則都是關心
記得曾經上小學的時候,語文老師經常會讓學生寫作文,寫的最多的就是<我的媽媽>.<我的爸爸>--寫的平平無奇就像是在寫日常流水賬. 但有個小學生寫的作文卻充滿了反轉劇情,大家原以 ...

丹麥人捕殺海豚為什麼是合理的

丹麥人捕殺海豚為什麼是合理的
法羅捕鯨不是一年一度的儀式,也不是以"文化"的名義進行的.法羅捕鯨和其他任何狩獵活動一樣,都是為了食物.由於捕鯨,法羅群島避免了飢餓,直到今天,許多社群仍然依賴捕鯨所得的肉. 網上 ...

為什麼在福建,泉州比廈門好吃?

為什麼在福建,泉州比廈門好吃?
麥芽糖,泉州人的童年記憶. 攝影/歐陽泓略 -風物君語- 半城煙火半城仙,一世繁華一世鮮 泉州美食香又甜,吃了原地蹦上天 當你提起福建,大部分人第一反應肯定是廈門.鼓浪嶼:過了幾秒,他們會想起來:哦, ...

癌症到底怎麼得來的?看完你就清醒了

癌症到底怎麼得來的?看完你就清醒了
不幸得了癌症,很多人第一反應是,"為什麼是我?""癌症為什麼偏偏找上我?" 癌症到底是怎麼來的?!怎麼就找上門了?看完這些你就清醒了! 一."吸&qu ...