上週五,JoyID 錢包正式發布了首個基於UTXO 訂單簿交易模式的Spore DOB Marketplace ,並已開放首個DOB 資產—— Unicorn Box 的交易。
DOB (Digital Object,數位物)是透過CKB 區塊鏈上的數位物創造協議Spore 發行的加密資產。 Spore 協議不完全是許多人所熟悉的NFT 協議,因為Spore 協議產生的DOB 不僅不可篡改,完全儲存於鏈上,而且還在內容和價值之間建立了內在聯繫。具體來說,產生DOB 需要獲取CKB 代幣作為“原材料”,鑄造CKB 的數量決定了該DOB 在鏈上儲存空間的大小,而銷毀DOB 則可以取回佔用的CKB。這種機制確保持有Spore DOB 等同於佔用CKB ,從而減少了生態內CKB 的流通量,這將對CKB 的二級市場產生積極影響—— 隨著更多CKB 被佔用,它們的價值便有望增加。這為Spore DOB 的創造者、持有者,和CKB 生態系統整體建立了一種健康的共生關係。
今天這篇文章,我們將詳細介紹CKB 區塊鏈上的數位物創造協議Spore 及其眾多創新之處。
Spore 協議的起源
根據團隊介紹,Spore 協議構思於一年之前,在很大程度上是得到了Ordinals 的靈感。由於比特幣不支援智能合約,所以Ordinals 有很多事情做不了,從技術層面看Ordinals 就是一項非常簡單的協議,但很多人卻對它感興趣,而且有很多人在使用它。於是,Spore 團隊站在CKB 的角度去想如何擴展Ordinals 協議,後面就有了Spore 協議。
Spore 團隊認為,如果比特幣支援智能合約,那麼Ordinals 應該會變成Spore 的樣子。換句話說,如果把CKB 看成比特幣的一個升級版,那Spore 就是Ordinals 的升級版。
Spore 協議的特點
1. 支援多種內容類型,提供更多創作空間
有別於以太坊生態的許多小圖片NFT,Spore 協議不僅限於靜態圖像或離線鏈接,還支援視訊、音訊、文字等多種內容類型,給了創作者更多的創造空間。
2. 內容全在鏈上,讓使用者真正掌握所有權
基於以太坊ERC-721 協議的NFT,例如CryptoPunks,它的智能合約裡只存放了imageHash,而圖片則存放在中心化的larvalabs.com 網站的伺服器中,如果伺服器掛了,這些圖片也就沒有了;再例如無聊猿(BAYC),它的智能合約裡存放了一個IPFS 位址,所以那些無聊猿的圖片其實是託管在IPFS 中的。也就是說,大家所熟知的絕大部份以太坊NFT,其內容都存放在鏈外,鏈上只儲存了一個連結。相較之下,透過Spore 協議鑄造的DOB,其內容資料完全儲存在CKB 區塊鏈上(Cell 中)。
如果從技術的角度來看,以太坊ERC-721 協議的NFT,其實際擁有者是智能合約,智能合約指定哪些地址擁有哪幾個NFT,給這些地址操作權限;而通過Spore 協議鑄造的DOB,本質上是一個Cell(UTXO 的改進版),是隨身可攜帶的,完全由用戶掌握和控制,因為Cell 只能用戶自己拿私鑰解鎖,智能合約並不能操控這些Cell。這也是為什麼以太坊NFT 的智慧合約出了問題,所有的NFT 都可能被rug;而在CKB 區塊鏈或UTXO 模型的區塊鏈上,只有用戶的私鑰洩漏了才可能導致資產損失。這個差異其實是帳戶模型和UTXO 模型的差異所帶來的。
3. 每個DOB 都有CKB 作為價值支撐
在CKB 區塊鏈上儲存任何類型的東西,都需要佔用CKB,一個CKB 代幣等於鏈上一個位元組(Byte)的空間。所以,如果你要製作一枚200 個位元組的Spore DOB,就需要去買200 CKB 來實現鏈上空間的佔用。
這一點很有意思,因為區塊鏈本來是一個無限的虛擬空間,現在製造了一種有限的資源,而Spore 協議把這一點進一步放大。每一枚CKB 都耗費了礦工大量的電力資源和算力,我們使用CKB 去鑄造Spore DOB,就好比使用從礦石中提煉出來的黃金去打造飾品,由於原材料黃金本身就有價值,所以這件飾品無論其工藝水平如何,都是有價值的。 Spore DOB 的底層價值來自其佔用的CKB,而CKB 的價值則來自整個區塊鏈網路。
黃金飾品的價值天然地要高於原料黃金的價值,所以Spore DOB 的價值也會天然地會高於其佔用的CKB 的價值。如果我們不喜歡這件黃金飾品了,我們可以銷毀飾品從而拿回原材料黃金,同樣地,如果你不想要這枚DOB 了,你可以銷毀它並取回佔用的CKB。
這種機制確保持有Spore DOB 等同於佔用CKB ,從而減少了生態內CKB 的流通量,這將對CKB 的二級市場產生積極影響—— 隨著更多的Spore DOB 被創造出來、被持有,就會有更多的CKB 被佔用,CKB 流通量進一步減少,流通量的減少會帶動其價格上漲,從而推動使用了CKB 作為「原材料」的Spore DOB 價值的上升,DOB 升值帶來的財富效應又會吸引更多的人去鑄造、去持有DOB,最終讓CKB 實現正向飛輪。
4. 免交易手續費,帶來更好的使用者體驗和隱私保護
透過Spore 協議鑄造的DOB,在鑄造時預設會多存入1 CKB,這樣未來每次交易DOB 時就不需要再額外支付gas fee(礦工費)了。因為在網路不擁擠的情況下,1 CKB 可以支付7000 多次鏈上轉帳所需的礦工費。
免交易手續費,可以帶來更好的使用者體驗,也意味著更容易出圈。試想一下,你如果想贈送一枚CryptoPunks 給圈外的朋友,他需要先學會如何註冊以太坊錢包,學會自己保存助記詞和私鑰,然後才能給你錢包地址,收到CryptoPunks 後,如果他想轉讓給其他人,還要去市場上買ETH 並提到錢包才能轉出CryptoPunks,在轉賬的過程中他還需要學習什麼是gas fee,如何設置gas fee。如果是Spore DOB,你可以直接讓這位圈外的朋友在手機瀏覽器中開啟joy.id,按照指引按2 次指紋,在幾秒鐘內創建好一個JoyID 錢包,收到Spore DOB 後,如果他想轉讓給其他人,並不需要購買CKB 作為礦工費,甚至他都不需要了解礦工費是什麼意思,直接輸入對方地址、按2 次指紋即可轉出,非常方便。
免交易手續費,還可以帶來更好的隱私保護。 UTXO 模型預設注重隱私性,UTXO 鏈的錢包每次使用時會自動換地址;相較之下,帳戶模型的區塊鏈,其錢包(如MetaMask)不會主動給你換地址。
區塊鏈的數據是公開的,所有的人都能看到,如果你一直用同一個地址,所有操作都跟一個地址關聯,那麼所有人都可以分析你的行為。 Vitalik 曾經寫過一篇文章,說要在以太坊上實現隱身地址(Stealth Address)。當用戶A 給用戶B 轉帳時,區塊鏈臨時產生一個一次性的隱身地址,用戶A 把資產轉到這個隱身地址,用戶B 可以操作這個地址上的資產,這個地址只有交易雙方知道它屬於誰,其他人透過鏈上資料無法得知該地址的真實擁有者。雖然隱身地址可以在以太坊上實現,但UTXO 區塊鏈早就有類似的功能了,所以隱身地址並不是以太坊的一個創新點。
另外,以太坊隱身地址的方案並不完美。試想一下,用戶A 把一個NFT 發送到了用戶B 的隱身地址1,用戶C 把一個NFT 發送到了用戶B 的隱身地址2,如果用戶B 想把這2 個NFT 送給他的朋友,而這2 個隱身地址上是沒有ETH 支付gas fee 的,所以他只能自己往這2 個隱身地址轉入ETH,但這樣做就暴露了自己。或者他也可以透過各種複雜的協議,讓別人來代付gas fee,但這樣就會變得很複雜。所以,以太坊隱身地址的方案並不完美。
這件事情在CKB 上可以做得完美。 CKB 的某些錢包(例如Neuron)會自動建立多個位址,每次使用時都會自動換地址,用戶A 如果擁有100 個Spore DOB,每個DOB 可以單獨存放在不同的位址上,轉帳時,因為Spore DOB 自備手續費,所以用戶A 可以非常方便地把這100 個DOB 轉給其他人。
5. 合約不可升級,確保DOB 維持不變
基於以太坊ERC-721 協議的NFT,其合約往往是可升級的,方便合約出bug 或想要加入新功能時,可以透過多簽或其他方式來升級合約。
相較之下,已經在CKB 主網部署的Spore 協議,其合約是不可升級的。如果這個合約有bug,合約開發者也沒辦法,有bug 就是有bug,那就是它的瑕疵,那就是它這個版本的一部分。如果我們把已部署的Spore 協定稱為v1.0 版本,如果我們想加入更多的功能,我們就只能部署另外一個新的合約,而不是升級Spore v1.0。這意味著未來會有很多不同版本的Spore DOB,有的是透過Spore v1.0 鑄造的,有的是透過v2.0 鑄造的......用v1.0 鑄造的DOB,並不會某一天突然就升級成v2.0 的DOB 或新加入一些你不喜歡的功能或是把你喜歡的設計去掉。
透過這樣的設計,Spore DOB 就變成了CKB 這個數位世界裡面永存的東西,其內容數據全部在鏈上,只要CKB 這條鏈一直在運行,這個DOB 就一直存在。另外,由於Spore 合約不可升級,你不用擔心你持有的DOB 會發生變化,它如果是透過Spore v1.0 的合約鑄造出來的DOB,就永遠都是v1.0 的版本,不會改變。現實世界中,透過一種工藝打造出來的飾品,並不會因為某一天有了新的鑄造工藝,那些之前鑄造的飾品就會變成新工藝鑄造出來的樣子,所以現實世界中才會有古董。因此,我們可以認為Spore DOB 就是現實世界的模擬。
6. 程式碼重用,無畏刪除,大大方便了開發者
在以太坊上發行NFT,需要去重新部署NFT 合約,因為以太坊的智慧合約包含了邏輯和狀態,兩者不可分開。邏輯相當於規則,規定了NFT 可以怎麼交易轉讓,可以有哪些功能;而狀態記錄了哪些位址擁有哪幾個NFT。
CKB 上的Spore DOB,邏輯和狀態是分離的,這意味著發行NFT 的時候不需要重新部署Spore 協議,直接引用這個協議標準即可。具體來說,Cell 是可引用的儲存單元,CKB 則類似於一個程式碼和資料共享庫,供運行在上面的智能合約使用,所以在CKB 上重複使用程式碼很容易。這既節省了時間,不需要開發者一次又一次地部署相同的程式碼,也節省了鏈上的空間,降低了部署成本。
程式碼重用並不需要擔心有人修改儲存在依賴Cell 中的程式碼,因為Cell 是不可變的,也就是說,沒有人有辦法修改它。即便這個Cell 的所有者直接將其從CKB 中刪除,也沒有人會因此受到損失。任何保存程式碼副本的人(例如那些運行全節點或複雜的輕客戶端)都可以在鏈上再次部署相同的程式碼,程式碼哈希的引用仍然有效,我們只需使用新的依賴Cell 來建構交易即可。
7. 支援Cluster,方便索引歸類
Spore 協定也提出了Cluster 的概念,即把多個DOB 歸整合一個目錄,直接,提高效率。
8.支援合約插件,擁有更好的可擴充性
Spore 協定有很好的可擴充性,它能夠支援其他開發者為這個合約寫的插件。在呼叫Spore 合約時,script 參數中可以指定使用哪幾個Spore 合約的插件,然後透過這些插件賦能DOB,讓DOB 實現更多的功能。
當然,如果Spore 協定及其外掛程式都無法實現開發者想要的功能,那就需要開發者重新寫一個DOB 鑄造協定並進行部署了。 CKB 是一條非常靈活的區塊鏈,可以實現各種各樣的協議和標準。
9.可在不同的UTXO 鏈之間自由流動
根據目前的計劃,比特幣一層資產發行協議RGB++將在三月底上線,屆時發行在CKB 區塊鏈上的DOB 可以透過RGB++ Leap 至比特幣主網,成為比特幣鏈上的數位物。
除了比特幣,透過同構綁定技術和Leap 操作,發行在CKB 上的DOB 未來也可以變成其他UTXO 鏈上的數位物。
Spore 協議的更多玩法
上文提到的Cluster 概念,可以幫助Spore 協定實現更多的玩法。舉個例子,一款吉祥物DOB,可以針對它設計眼鏡、耳環、項鍊等首飾DOB,這些首飾DOB 和吉祥物DOB 組成一個Cluster 去交易,去參加評比。換句話說,Spore DOB 就像樂高積木一樣,我們可以使用不同的樂高積木組成不同的拼圖,而這可以充分調動持有者的創造力和想像。
除此之外,我們還可以在Spore DOB 的儲存內容上做創新。試想一下,如果我們要發行一款頭像類的DOB,除了直接在鏈上存儲圖片這種常規操作之外,我們也可以創新性地只在鏈上存放頭像特徵的關鍵字,比如短髮、黑眼睛、高鼻樑、大嘴巴、白皮膚、男性,然後使用某個鏈上或鏈外的decoder 來進行解碼。這個decoder 相當於畫師,根據這些關鍵字畫出頭像來。
這裡有意思的地方在於,寫入鏈上的關鍵字是不變的,但這個decoder 是可以變的或可以進化的。因為同樣的關鍵字,使用不同的AI 大模型畫出來的頭像肯定不一樣,使用同一個AI 大模型的不同版本畫出來的頭像也不一樣。這意味著這款DOB 擁有變化的能力,也擁有進化的能力,非常有趣。
Spore 是一個非常靈活且具有良好可擴展的數位物創造協議,相信透過大家的各種頭腦風暴,我們還可以實現更多的創新性玩法。
寫在最後
CKB 首席架構師Jan Xie 曾說:「當初在設計CKB 的時候,其實是想建構一個數位的世界或說宇宙。世界或宇宙,由時間和空間兩個維度構成,而PoW 本質上就是一個去中心化的時鐘(具體的論述可查閱Gregory Trubetskoy 的文章),是一種可以在數字裡面創造出時間的技術。UTXO 或者說CKB 的Cell,是鏈上的空間,它裡面是存放數據的。把PoW和Cell 結合起來,我們可以得到一個去中心化的宇宙。在這個宇宙裡面,我們所做的所有的事情,其實都是去映射我們的現實世界。 ”
在CKB 區塊鏈建構的這個「真實的虛擬世界」 中,Spore DOB 是一個鏈上數位物,它非常像現實世界中的物品:它的製作需要使用原材料CKB,不想要時可以銷毀並取回CKB;它有一個版本,可以像古董一樣做到亙古不變,也可以創新地擁有變化或進化的能力。而底層的Spore 協議,其靈活性和可擴展性為DOB 提供了更多的可能性。
參考資料:
- CKB,版本控制與區塊鏈演進
- X Space: 如何在CKB 上做NFT 項目,如何使用Spore NFT 協定?
https://x.com/seeu_brc20/status/1758461341336265141?s=20
- PoW 本質上是一個去中心化的時鐘
https://www.btcstudy.org/2021/10/16/explaining-proof-of-work-as-a-decentralized-clock-echo-version/