撰文:Nickaqiao、Faust,極客web3
自2017 年ERC-20 資產風靡區塊鏈圈以來,Web3 就進入了資產發行的低門檻時代,各路項目方憑藉ID0、IC0 等方式肆意發行自訂代幣或NFT,且大多存在強控盤或資訊不透明問題,RugPull 現象頻傳,各路鐮刀儼然把IC0、ID0 當做割韭菜的絕佳途徑。
時至今日,常規的ID0 和IC0 已經充分暴露出了其在公平性上的缺陷,人們一直都希望有較為公平可靠的資產發行協議,解決新項目TGE 時的諸多問題。雖然一些創意十足的項目單方面提出了自己的「公平的經濟模型」,但往往沒有進行通用化推廣,最後這類經濟模型大多淪為「具體案例」而不是「一套抽像出來的協議」。
那麼,什麼樣的模式是更公平可靠的資產發放方式呢?什麼樣的方案能作為一套通用協議?本文將要展開介紹的Cellula 為解決上述問題提供了全新視角,他們實現了一個模擬POW 的資產分發層,利用虛擬工作量證明(vPOW)將資產分發過程「挖礦化」,以模擬BTC 實現更公平的資產分配範式。
雖然該專案被許多人視為Gamefi,但由於其分發的遊戲內獎勵可以設定為任意類型的Token,Cellula 理論上可以作為一個有POW 效應的資產分發平台,為Web3 資產發行帶來了更廣闊的前景和想像空間,甚至於稱為「一場致敬BTC 挖礦的社會實驗」也不為過。
POW 和vPOW:結果不可預測的彩票抽獎
其實無論是正宗的POW 還是POS,或是今天要講的vPOW,本質都是設定一套輸出結果不可預測/ 難預測的演算法,透過輸出結果來進行「彩票抽獎」。 BTC 礦工們要在本地建構出滿足限制條件的區塊,提交給網路中的全節點通過共識,才能拿到出塊獎勵。至於限制條件,是要讓建構出來的區塊的Hash 滿足特殊要求,例如前綴是6 個0。
由於區塊Hash 的生成結果不可預測/ 難預測,要構造出符合條件的區塊,只能不斷的變更給定演算法的輸入參數,這一過程需要暴力窮舉,對礦工的硬體設備有很高要求。
簡而言之,BTC 挖礦透過SHA-256 哈希演算法的不可預測性/ 難預測性,實現了一套全網礦工在線參與的「彩票抽獎」系統,這種設計以電能為代價,確保了參與形式上的Permissionless。
此外,POW 是一種更公平的資產分配方式,主流的POW 公鏈中項目方控盤的難度比POS 公鏈大很多,而在很多POS 公鍊或IC0、ID0 方案裡,項目方強控盤的案例比比皆是。
例如,Solana 幣價在FTX 和SBF 操縱下,曾在2019~2021 年暴漲近1000 倍,而許多Solana 驗證節點運行者是其早期投資人,它們獲得籌碼的成本近0,這嚴重打破了資產分發上的公平性。雖然POW 當中項目方也有控盤的空間,但程度往往比在POS 中輕得多。
問題在於,POW 的模式往往應用於底層公鏈而非DAPP 的資產發行層,我們能否以一套鏈上可實現的方案,模擬出POW 的效果?如果能,就可以實現一套比IC0、ID0 等強控盤方案更公平可靠的資產分發協議,搭配一些遊戲場景,可以做出一些有意思的Gamefi(當然實際用途不僅限於遊戲,還可以為其他項目提供一套公平的資產分發方案)。
所以關鍵是,如果我們要在鏈上資產發行層模擬出POW 的效果,該怎麼做呢?在本文介紹的Gamefi 計畫Cellula 中,透過引入著名的「康威生命遊戲」演算法,為鏈上虛擬的數位實體(稱為「BitLife」)分配算力。說穿了像是讓一群人在自己的培養皿中繁殖細胞集群,隨著時間推進,誰的培養皿中存活細胞越多,折算後得到的挖礦算力越高,越可能獲得挖礦獎勵。
簡而言之,Cellula 把傳統POW 的雜湊計算,換成了另一種結果不可預測/ 難預測的計算方式,取代了「Proof of Work」中的「Work」形式。在Cellula 的思維下,關鍵在於如何獲得存活細胞數更多的培養皿(BitLife),而推演BitLife 的狀態變化需要耗費計算資源,本質是把BTC 挖礦執行的哈希演算法變為推演康威生命遊戲的特定演算法,這稱為vPOW(Virtual POW)。
以下讓我們對vPOW 的機制設計展開更深入的解析,不得不說,這裡的許多細節非常有趣,可以說Cellula 在做的事情之一,是透過鏈上NFT 交易鏈條來模擬BTC 的礦機產業鏈模型。
vPOW 的核心:康威生命遊戲與BitLife
在對Cellula 的機制設計展開解讀前,讓我們先來看看vPOW 最重要的核心——「康威生命遊戲」,它最早可追溯到馮諾依曼於1950 年提出的「細胞自動機」概念,而後數學家約翰·康威在1970 年正式提出「康威生命遊戲」,用演算法模擬自然生命的演化規律。
假設我們有一個培養皿,將其按照二維座標劃分出一堆小方格,然後我們對培養皿進行「初始設定」,讓一些活細胞佔據部分方格,此後這些細胞的生死狀態將隨時間演化,逐漸呈現形態複雜的細胞群聚(大家可以想像黴菌是怎麼繁殖的)。這本質是一個二維格子遊戲,規則非常簡單:
- 每個細胞有兩種狀態:存活/ 死亡,就像掃雷遊戲一樣,每個細胞和自己周圍八個方格上的細胞會產生互動(如圖,黑色為存活,白色為死亡);
- 假設某細胞存活,但周圍8 格內存活細胞小於2 個(0 或1),則該細胞進入死亡狀態;
- 某細胞存活,且周圍有2 個或3 個存活細胞時,該細胞仍保持存活;
- 當細胞為存活狀態,周圍有超過3 個存活細胞時,此細胞進入死亡狀態(模擬生命數量過多而爭搶資源的場景);
- 當前細胞為死亡狀態,但周圍有3 個存活細胞時,此細胞轉入存活狀態(模擬細胞增殖)
所以很簡單,在二維培養皿中給定細胞狀態的初始模式,然後按照上述規則,細胞狀態會隨時間推移,不斷地演化迭代,產生千變萬化的結果。你甚至能用康威生命遊戲模擬出電腦的效果。
比如說,培養皿中每個細胞的生/ 死,對應著二進制的0/1,你可以把細胞初始狀態視為“輸入參數”,每個細胞的生死(0 或1)代表輸入數據,之後細胞狀態會依照初始模式開始演變,每一輪狀態變化就相當於計算過程中的一步操作,經過一段時間後得到的狀態,可以看作「輸出」。
只要佈置適當的初始模式,康威生命遊戲能在經過若干代演變後,輸出特定結果。由於初始模式千變萬化,可以利用其特性模擬出彩券抽獎的效果。我們可以設定限制條件,每個玩家隨機選擇一批初始模式,經過100 代演化後,輸出結果滿足xx 特徵的培養皿主人有資格獲取獎勵,這樣就和BTC 挖礦的思路比較接近了:
「系統先限定哪一類輸出結果符合要求,參與者向給定演算法輸入隨機的初始值,嘗試得到符合要求的輸出結果」。由於待嘗試的初始輸入參數非常多(幾乎是天量),你必須要付出很大努力才能撞大運中獎,這正是工作量證明的邏輯:礦工必須要付出一定工作量才能獲得獎勵。
在了解Cellula 和康威生命遊戲的基本思想後,我們再看他具體的細節設計。 Cellula 把前面說的「培養皿」分成9*9=81 個方格,每個方格上的細胞有生/ 死兩種狀態( 對應二進位的0 和1),這樣一來,按照排列組合,培養皿中的細胞初始狀態有2^81 種,這個數字等於1 兆的平方(基本上是天文數字)。
然後,玩家要做的是對培養皿的初始模式(輸入參數)進行選擇。 BitLife 充當了培養皿的實體(實際上是個NFT),包含81 個方格,每個方格上放置一個細胞(可能有生/ 死兩種狀態,空置的方格等價於死細胞)。然後,BitLife 中每3*3=9 個相鄰方格構成一個BitCell,每個BitLife 由2~9 個BitCell 拼接而成(如果你構造的Bitlife 不足9 個Bitcell,有些地方就被空置,默認都是死細胞)。
依照排列組合,BitCell(3*3 方格)有2^9 種初始模式,玩家要做的就是隨機挑選不同模式的多個BitCell 組合起來,建構出一個BitLife。簡單來解釋,就是為自己的培養皿隨便找一個初始模式,然後前面講過,不同的初始模式總計有2^81 種,是個天文數字。所以留給參與者的選擇空間非常大,這就跟BTC 挖礦裡用SHA-256 的場景有點像。
BitLife 的細胞狀態會隨著區塊高度的增加而改變。 Cellula 依照不同區塊高度下BitLife 的狀態來分配算力。給定一個區塊高度,包含的存活細胞越多的BitLife 擁有的算力越高,這就相當於創造了一種虛擬礦機。
這裡舉個具體的例子,Cellula 參與者要在鏈下窮舉BitLife 的2^81 種初始模式,預測每種模式演化後的狀態,然後看能否符合獎勵系統的要求。假設現在的區塊高度為800,而係統提出要求:區塊高度為1000 時,存活細胞數最多的BitLife 能獲得最多的獎勵,那麼參與者的目標會很明確:
在區塊高度為800 時,我要取得某個模式的BitLife,模式的BitLife 在區塊高度為1000 時,能比其他BitLife 有更多存活細胞。
這其實就是Cellula 的核心玩法,你的目標就是自己構造/ 從別人手上買到最有可能獲得挖礦獎勵的BitLife,這種模式就相當於允許普通散戶/ 高級散戶自己研發礦機,然後你可以把自己做的礦機賣給別人,可以買別人的礦機來挖礦。如果你要自己造礦機,那就要在鏈下自行推演出不同模式的BitLife 的狀態演化,這會耗費計算資源;如果你要買別人的礦機,其實就是買不同初始模式的Bitlife,你要自行判斷這些BitLife 未來的狀態變化,所以你還是要在鏈下自行計算。這其實是整個Cellula 遊戲設計中非常有趣的一點。
在了解遊戲的核心機制後,我們再來看其他細節:其實BitLife 中的活細胞可以溢出到初始的9*9 格子外,存活的細胞數可以遠大於9*9 個,沒有邊界限制。如圖所示,如果某個BitLife 包含的活躍細胞數量不斷增多,其分配到的挖礦算力也會越來越高,而如果BitLife 的初始模式選擇不當,活細胞數越來越少,算力也會越來越低。
然後,系統會每隔5 分鐘分發一定的挖礦獎勵(遊戲稱為能量點),根據每個BitLife 在網路中的算力份額來分配。
在Cellula 中,玩家合成BitLife 的過程,就是一個「製造」新礦機的過程。我們前面曾提到,BitLife 的實體是一個NFT,BitLife 在鏈上被mint 出來後,要進行「充電」操作才能啟動挖礦,單次充電有效期為1 天、3 天和7 天,需要支付一筆小額手續費,到期後需繼續充電。
這裡要說下,為了鼓勵用戶多去對BitLife 進行充電,Cellula 設定了一個「充電抽獎」功能,你每次發起充電操作時都可能被選中,獲得一些額外獎勵(就是說這個獎勵和挖礦獎勵獨立開)。這塊的設計我們會在後面Analysoor 演算法的部分簡單介紹下。
按照Cellula 官方的規則,目前包含3*3 個Bitcell(也就是包含81 個小方格)的BitLife 鑄造已經停止,玩家們一共鑄造了150 多萬個此類BitLife,未來新用戶可以在二級市場購買BitLife 並進行充電挖礦。按照官方的解釋,限量鑄造是為了維持遊戲生態的穩定,防止科學家無限的鑄造BitLife NFT 導致礦機價值縮水。
而且在未來,Cellula 將引入類似於礦機製造商的角色,這個角色基於許可製,要質押代幣、公示銷售管道、具有一定社區規模和影響力等,這些製造商將負責鑄造和銷售包含4x4個BitCell 的BitLife,也就是包含16*9=144 個小方格。製造商可以鑄造的BitLife 量,將受到其質押代幣量的限制。
在此我們大致上把vPOW 涉及的核心概念通俗解釋了一遍。 vPOW 的本質是基於給定規則的計算模型,參與者可以透過優化策略來參與競爭,透過遊戲化的方式進行資產發行與分配。 Cellula 模擬了BTC 礦機市場的運作形式,取代了工作量證明中的計算任務形式,由於挖礦算力的分配方式可以動態調整,任何模式的BitLife 都未必是全局最優的,今天細胞存活數最多的BitLife,明天就可能被其他BitLife 超越,這會導致複雜的湧現現象和動態的策略。
Analysoor 抽獎演算法與VRGDAs 指數定價曲線
在前面我們主要針對康威生命遊戲及Cellula 的核心機制進行了展開式的解讀,下面我們再來考察下遊戲中包含的其他設計。上面我們提到Cellula 有個充電抽獎環節,這裡用到了名為Analysoor 的隨機數輸出演算法,它把區塊哈希當作隨機數產生器的輸入參數,抽出每個區塊裡參與充電者中的贏家,引進了一種彩券制度。
例如在Analysoor 的設計中,目前BNB Chain 的區塊哈希為6mjv....的一長串字串,裡麵包含4 個數字:6、2、1、6。依照這幾個數字在字串中的排序,第一個數字是6,最後一個數字是6,為偶數,將從前往後計數。提取出來的數字是從0 開始計數的,於是數字6 對應的交易排序是7,就從當前區塊裡把第7 個充電玩家視為中獎者。當然具體的設計可以更靈活,這裡只是舉例。上述隨機性的抽獎演算法可以有效激勵玩家多充電,調動遊戲內生態的活躍度。
此外,在Cellula 的整個交易模型中,有一個問題:某種模式的BitLife 一旦被某個大佬Mint 出來,其採用的BitCell 組合方案會被公開,其他人也可以“跟風”,按照相同的組合方案去mint BitLife,最後很容易引發一堆人跟風的現象,嚴重影響遊戲結果的隨機性。為此,Cellula 引入了可變速率漸進荷蘭拍賣(VRGDAs),這是由Paradigm 開發的定價演算法,會動態調整價格——當鑄造量超預期時抬價,鑄造量不如預期時降價。
假設初始預期是每天鑄造10 個A 類NFT,起始價格為1 個CKB。本來到了第5 天,預期人們共計鑄造50 個A 類NFT,但因為很多人跟風,鑄造量達到70 個,這相當於原計劃到第7 天實現的目標。為了限速,要透過指數定價曲線快速提高鑄造價格,單價漲到4 個CKB 來抑制鑄造行為。
如果到第15 天,只鑄造了120 個(原計劃此時鑄造共150 個),沒有達到預期銷量,這時會下調價格,刺激鑄造量。
在上述場景中,當某類BitLife 在短時間內被大量鑄造時,該類NFT 的鑄造價格會指數級增長,這種劇烈的價格上漲可以有效的防住科學家。
總結:從玩家博弈的視角看待Cellula
在講完了Cellula 的全部核心設計後,我們不妨從玩家的賽局視角來看這腦洞大開的遊戲機制。首先,在vPOW 中有很多參與者,每個參與者的策略都不同,以一級發行市場為例,一個“科學家”可以寫代碼,組合不同的BitCell 去找到算力更高的BitLife,獲取更高的挖礦收益,同時會存在一些MEV 玩家,他們監聽鏈上的鑄造事件,當發現某個NB 的科學家鑄造了某類型的BitLife 時,他們也會跟風大量鑄造。
但由於VRGDAs 指數型定價演算法的存在,單一類型的BitLife 鑄造價格可以指數級增長,這樣可以有效的防住科學家(反女巫),當然也會對BitLife/ 礦機進行定價,如果某類礦機的算力高,它的鑄造/ 生產價格也會很高,後面流通在二級市場的價格會參考生產價,進而傳導到整個供應鏈當中。
類比BTC 礦機的發行過程,科學家發現某類型BitLife 的算力高,就好像礦機公司研發出新的晶片,MEV 玩家跟風鑄造,就好像一級經銷商完成礦機的定價,而後的二級市場交易就類似散戶向經銷商購買設備。
不同的是相比現實世界的礦機研發,科學家發現新的BitLife 的速度會快很多,而且任何人都可以參與到BitLife 的狀態推演中,很大程度上相當於降低了礦機的研發權力, 「人人都有機會成為科學家」,這對大多數人而言是更為友善的,也是現實中礦機生產鏈中不可能出現的。
而對於專案方本身而言,採用POW 式的資產分發方案本身就削弱了他的權力,所以,無論是科學家還是專案方,亦或是普通玩家,都無法單方面控制市場。在礦機鑄造環節以及發行環節,就產生了這三方的博弈,沒有一方能夠完全壟斷市場,這可以形成一種動態的平衡。
整體而言,相較於BTC 礦機產業鏈,Cellula 的方案是更有趣的社會實驗。