長久以來,我們談到鏈遊,都是基於 ETH 這樣的智能合約平台。原因也顯而易見,要麼走資產上鏈的 GameFi 路線,要麼走狀態上鏈的全鏈上遊戲路線。不管哪種路線,使用智能合約都是最簡單的實現方式。然而銘文的出現,讓非智能合約平台 BTC 生態結合索引器產生了另外一種不同的技術實現方式。本文將對 BTC 生態的遊戲,元宇宙和自主世界方面的探索做一個技術總結,來看看銘文和鏈遊是如何做結合的。
全鏈遊戲的另一種實現#
對於一個典型的資產上鏈的 GameFi 遊戲來說,不管是發行 NFT 還是 FT 代幣,智能合約平台仍然是最好的選擇,不折騰。那么去年大火的全鏈上遊戲可以放到 BTC 鏈嗎?這句話開始聽起來比較奇怪:全鏈上遊戲的定義就是把遊戲邏輯和資產都寫入到鏈上(邏輯寫入智能合約虛擬機而資產使用智能合約發幣),你既然智能合約功能都沒有,那怎麼做呢?
剛開始看到 Ordz Game (@OrdzGames) 說自己是基於 BTC 的 fully on-chain game 的時候,我也是感覺好奇的。之前的文章我們提到過,銘文是可以把任何文件都上傳到 BTC 的隔離見證空間,大小上限是 4M。結果 domo 把 “一段發幣的 JSON 格式代碼” 上傳上去,早就了 BRC20 幾十億美金的市場。那如果把一段遊戲代碼上傳到鏈上呢?Ordz 正是這麼做的。
對於網頁版小遊戲來說,玩家訪問遊戲網頁的時候會把代碼下載到瀏覽器本地文件,然後在瀏覽器直接運行整個遊戲,因此 “銘文版全鏈上遊戲” 只需要提供一個能下載遊戲代碼的網上存儲空間即可,BTC 的隔離見證空間正是提供了這樣一個 DA 層。其原理如下:
-
開發:小遊戲通常使用 HTML、CSS 和 JavaScript(JS)進行開發。HTML 負責頁面的結構,CSS 處理樣式和佈局,而 JavaScript 則是負責遊戲邏輯、動畫和用戶交互的核心。
-
托管:開發完成的遊戲代碼和資源文件(如圖片、音頻等)會被上傳到 BTC 隔離見證空間。這樣,用戶通過瀏覽器訪問特定的 URL 就可以加載遊戲。雖然遊戲的邏輯和運行完全在客戶端(即用戶的瀏覽器)完成,但遊戲的文件還是需要從鏈上下載到客戶端的。
-
加載:當用戶訪問遊戲的網頁時,瀏覽器會下載 HTML、CSS 和 JavaScript 文件。這些文件包含了遊戲的全部或大部分代碼。
-
運行:下載完成後,瀏覽器會解析 HTML 和 CSS,構建頁面的結構和樣式。同時,JavaScript 代碼會在瀏覽器的 JavaScript 引擎中執行。
-
交互:用戶與遊戲的交互(如點擊、拖動等操作)會通過 JavaScript 處理,遊戲根據這些交互更新遊戲狀態和畫面。因為這些過程都在用戶的設備上完成,所以響應速度快,能提供流暢的遊戲體驗。
綜上所述,Ordz 雖然確實是把遊戲代碼都上傳到了鏈上,但是嚴格來說,是不符合 “fully on-chain game” 的定義的,畢竟遊戲的所有邏輯都放到鏈下執行了。但是作為 GameFi 類型的銘文小遊戲有它獨特的一面,也發行了自己的銘文 BRC20 代幣作為 utility token(ORDG)。
作為元宇宙地圖的 Bitmap#
Bitmap (@bitmapdev) 號稱比特幣生態第一個元宇宙項目,由推特用戶 @blockamoto 于 2023 年 6 月 13 日在推特提出,並在隨後被部分媒體關注和宣傳。Bitmap 建立在序數理論(Ordinals theory)和位圖理論(Bitmap theory)基礎之上。序數理論就是把每一個 sat 分配一個序號,而位圖理論也很簡單,把比特幣每十分鐘生成的一個區塊根據數據結構這些參數看成一副地圖數據定義了一些數據格式。兩者結合的意思是,每一個區塊當成一個地圖 NFT,然後把這個 NFT 利用 ordinal 綁定到某一個 sat 上面。
Bitmap 理論本身只規定了兩個基本規則:
1,每一個區塊定義為 “地區”(District),用區塊高度表示。
2,區塊裡面的每一個交易定義為 “地塊”(Parcel),按照順序從 0 開始計數。
那麼所謂的 “銘刻” 就是把地區和地塊的序號按照格式上傳到隔離見證空間,綁定 sat。舉例來說,區塊高度 31209 的區塊,需要把(31209.bitmap)這段文字綁定到 sat 上即可宣示所有權。31209 區塊裡面的第 5 個交易,需要把(5.31209.bitmap)這段文字綁定到 sat 即可。但目前僅允許 “district” 的所有者才能銘刻 “parcel” 的所有權。
其他的子規則,包括 input/output 代表的含義,區塊交易數量代表的含義等等,可以由不同的項目單獨定義,這才有了 2D 版地圖,3D 版地圖,VR 版地圖。。。
知名協議 BRC420 最開始是製作了頭像與 bitmap NFT 交互協議(使用了遞歸銘文技術並且有圖幣轉換方面的探索),形成了 bitmap.game 這個產品,是 bitmap 生態最為出名的開發團隊。隨後該團隊製作了遞歸銘文頭像生成平台(rcsv.io)和 BTC 二層網絡 Merlin Chain,並且把公司名字也改成了 Bitmap Tech。所以這裡要注意,Bitmap Tech 和 Bitmap 協議是完全兩回事。
在創世發行階段,Bitmap 可 Mint 的總量就是比特幣區塊高度。 Bitmap 標準發布時候,已經有 70 多萬的歷史區塊,對於歷史區塊,用戶只要支付礦工費即可自由選擇進行銘刻。在創始人發布 2 個月內有 70 多萬的歷史區塊被註冊完畢。
Bitmap 總量和比特幣當前區塊掛鉤,比特幣大概十分鐘產出一塊。所以在總量理論上是無限的。比特幣每次產生一個新區塊的時候,就會多出一個可註冊的 bitmap(根據規則,只有區塊挖出後的再發起的銘刻登記才是有效),遵循先到先得原則,允許任何人銘刻 區塊號.bitmap 的純文本 ordinals 銘文的方式來搶注這個區塊的所有權。所以每天會有 144 個新區塊被開採並可供登記。目前主流 NFT 交易所也會實時更新 BITMAP 總量。
從總量來說,bitmap NFT 不具有稀缺性,所以目前的炒作都是圍繞著一些特殊地圖。比如,
1, 特殊號碼,類似於 888.bitmap
2, 根據官方可視化數據生成了特殊圖案的地圖,類似於 cryptopunk 這種
3,包含重要歷史實際的區塊,比如創世區塊,披薩交易區塊等等。
在基礎設施方面,更多的探索來源於根據區塊數據的前端渲染。如下圖的幾個:
總結來說,bitmap 其實是一個資產標記協議,通過 Ordinal 協議和 bitmap 協議把無主資產 “比特幣區塊” 映射成 NFT,以此激活區塊的資產屬性並產生流通和收藏價值。
比特幣生態的 LOOT#
如果說 bitmap 是從地塊方面切入元宇宙,那 rootverse (@ordinals_root) 和 BRC1024 (brc1024_pro) 就是試著從人物和裝備方面切入元宇宙,玩法類似於 LOOT。
以太坊的 LOOT 我們都較為熟悉了,就是一組隨機組合的文字版的 NFT,這一組文字描述定義了一種裝備的屬性,由此奠定了一個元宇宙的基礎規則,其他人可以在這些文字 NFT 的基礎上進行可組合性的衍生,比如 2D 圖片呈現,3D 圖片呈現,故事呈現等等。
BRC1024 整體類似,就是規定了一些參數來定義元宇宙的組件(Component),如下圖所示,表示 ROOT 這個元宇宙有一個組件叫 “charactor”,它的子組件叫 “warrior”,這個子組件最大數量是 20000 個,elements 是這個子組件的幾個屬性,有的屬性甚至是有多個選項,比如 “skin color” 屬性有白色和銅色兩種。
ROOT (官方名字 Rootverse)是項目方使用 BRC1024 建立的第一個元宇宙,其中規定了 21 種部落(就是種族和相應的子種族),每個子種族有不同的數量,玩家可以免費鑄造,合計 21 萬枚人物 NFT。如下圖:
總結來說,BRC20 是把 “發行 FT 代幣的代碼” 銘刻到隔離見證空間實現 FT 代碼發行的話,那 BRC1024 就是把 “發行元宇宙組件的代碼” 銘刻到隔離見證空間實現元宇宙組件的發行,而 ROOT 就是把 “人物種族” 這個組件進行了銘刻。這就是銘文可組合性的體現。
鏈上遊戲的通用狀態機#
我們有了元宇宙的地圖,人物和裝備,那就能做出一個完整的基於 BTC 鏈的鏈遊嗎?如果是只做資產(包括 NFT 資產和 FT 資產)上鏈的 GameFi 路線,目前的基礎設施足夠了,但是對於更加 crypto native 的鏈上遊戲(自主世界)來說,還不夠。
以太坊生態的 Dojo 首先提出了 “可驗證化鏈上遊戲”(Provable Onchain Game)的概念。Dojo 是一個鏈上遊戲開發框架。它是一個由社區構建的、可驗證化的遊戲引擎及工具鏈,用於構建鏈上遊戲和自治世界。Dojo 允許在沒有大型共識方案的情況下驗證遊戲狀態和計算。用 Cairo、Noir 等語言編寫或運行 RISC-Zero 的遊戲,可以在類似瀏覽器的獨立 zkVM 上獨立運行,可驗證的輸出確保了真實的執行。換句話說,就是鏈下使用高效的 VM 進行計算,鏈上部分僅做數據驗證來保證結果的真實有效,從而實現 “去信任化” 和 “去中心化”。
Redux Protocol (@AutonomousRedux) 參考了 Dojo 可驗證化鏈上遊戲的概念,借用 Ordinal 理論,實現了在 BTC 生態的鏈上遊戲開發框架。雖然說 BTC 鏈出塊時間長達 10 分鐘,且無智能合約功能,那麼要實現 BTC 生態的鏈上遊戲,就只能通過鏈下計算鏈上驗證的模式。
有意思的地方在於,Redux 擴展了 “銘文” 的使用場景。眾所周知,之前的銘文基本用於發幣,要麼是 Ordinal NFT 代幣,要麼 BRC20 這樣的 FT 代幣。Redux 把默克爾樹和銘文結合起來,提出了狀態銘文(stateful inscription)的概念。其實就是把遊戲裡面的人物和裝備屬性,以默克爾樹的方式進行數據建模並儲存,並保證數據的不可篡改性。只要有一個地方發生了改變,根哈希就會變化。
具體做法是把狀態銘文分為兩部分,一部分是 “不可變狀態”,比如武器的健康值,護甲值,攻擊值等等。這部分以銘文的方式記錄在 BTC 區塊鏈上。另一部分是 “可變狀態”,比如之前提到的健康值,護甲值和攻擊值的具體數據,這些數據會隨著遊戲的進行而改變。這些數據由鏈下的索引器進行計算和處理。而 “銘刻” 本身,其實存儲的是一個指針,這個指針指向該銘文的可變狀態集。
開發者負責構建世界的基礎框架及其狀態銘文。這包括定義哪些狀態是不可變的(靜態的)以及哪些狀態是可變的(動態的),同時建立用戶與狀態銘文互動的邏輯。Redux 協議提供了一個運行環境,允許開發者自定義玩家與狀態銘文的互動方式。玩家則通過與狀態銘文的互動來體驗遊戲。
從技術路線上來說,它有點像 Dojo 或者 Paima。Dojo 是採用 ZKP 的形式來製作可驗證化的鏈上遊戲,Paima 是採用 NFT 狀態壓縮的方式來製作可驗證化的鏈上遊戲,而 Redux 是採用狀態銘文(利用默克爾樹)的方式來製作可驗證化的鏈上遊戲,另一個區別是 Dojo 把 Starknet 當做 DA 層,Paima 把自己的主權 rollup 當做 DA 層,而 Redux 使用 BTC 生態的 DA 層。
綜上所述,我們發現以上幾個項目分別是在遊戲的不同層面利用 Ordinal 協議做探索:Ordz 是把網頁遊戲的代碼銘刻上鏈,Bitmap 是把 BTC 區塊當做隨機數據源映射成地圖 NFT,ROOT 是把人物角色和裝備以代碼的方式銘刻上鏈,而 Redux 是把狀態機的可驗證化數據銘刻上鏈。如果非要和以太坊生態的項目做類比的話,Ordz 類比 TreasureDAO,Bitmap 類比 SandBox 和 DecentraLand, ROOT 類比 LOOT,Redux 類比 Dojo 和 Argus。
參考資料
https://www.panewslab.com/zh/articledetails/leqfrx2o.html
https://rcsv.gitbook.io/brc-420/
https://www.panewslab.com/zh/articledetails/22531q6583yt.html