長久以來,我們談到鏈遊,都是基於ETH這樣的智慧合約平台。原因也顯而易見,要麼走資產上鍊的GameFi路線,要麼走狀態上鍊的全鏈上游戲路線。不管哪種路線,使用智能合約都是最簡單的實作方式。然而銘文的出現,讓非智能合約平台BTC生態結合索引器產生了另一種不同的技術實現方式。本文將對BTC生態的遊戲,元宇宙和自主世界方面的探索做一個技術總結,來看看銘文和鏈遊是如何做結合的。
全鏈遊戲的另一種實現
對於一個典型的資產上鍊的GameFi遊戲來說,不管是發行NFT還是FT代幣,智慧合約平台仍然是最好的選擇,不折騰。那麼去年大火的全鏈上游戲可以放到BTC嗎?這句話開始聽起來比較奇怪:全鏈上游戲的定義就是把遊戲邏輯和資產都寫入到鏈上(邏輯寫入智能合約虛擬機而資產使用智能合約發幣),你既然智能合約功能都沒有,那怎麼做呢?
剛開始看到Ordz Game (@OrdzGames) 說自己是基於BTC的fully on-chain game的時候,我也是感覺好奇的。之前的文章我們提到過,銘文是可以把任何檔案都上傳到BTC的隔離見證空間,大小上限是4M。結果domo把「一段發幣的JSON格式程式碼」上傳上去,早就了BRC20幾十億美金的市場。那如果把一段遊戲程式碼上傳到鏈上呢? Ordz 正是這麼做的。
對於網頁版小遊戲來說,玩家訪問遊戲網頁的時候會把代碼下載到瀏覽器本地文件,然後在瀏覽器直接運行整個遊戲,因此“銘文版全鏈上游戲”只需要提供一個能下載遊戲代碼的網路儲存空間即可,BTC的隔離見證空間正是提供了這樣一個DA層。其原理如下:
1. 開發:小遊戲通常使用HTML、CSS和JavaScript(JS)進行開發。 HTML負責頁面的結構,CSS處理樣式和佈局,而JavaScript則是負責遊戲邏輯、動畫和使用者互動的核心。
2. 託管:開發完成的遊戲程式碼和資源檔案(如圖片、音訊等)會被上傳到BTC隔離見證空間。這樣,用戶透過瀏覽器存取特定的URL就可以載入遊戲。雖然遊戲的邏輯和運行完全在客戶端(即使用者的瀏覽器)完成,但遊戲的檔案還是需要從鏈上下載到客戶端的。
3. 載入:當使用者造訪遊戲的網頁時,瀏覽器會下載HTML、CSS和JavaScript檔案。這些文件包含了遊戲的全部或大部分程式碼。
4. 執行:下載完成後,瀏覽器會解析HTML和CSS,建構頁面的結構和樣式。同時,JavaScript程式碼會在瀏覽器的JavaScript引擎中執行。
5. 互動:使用者與遊戲的互動(如點擊、拖曳等操作)會透過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://gitbook.bitmap.land/
https://rcsv.gitbook.io/brc-420/
https://www.panewslab.com/zh/articledetails/22531q6583yt.html
https://www.brc1024.io/
https://mirror.xyz/0x62172Aaeb774F67F33769902CaD20356AC5859C2/ouEZuxR38yqRZcYjvUeVvV7iAFzBy_81fsJjy1QLcJc