作者:jolestar,來(lái)源:作者推特@jolestar
銘文從技術(shù)上來(lái)看,簡(jiǎn)單粗暴,技術(shù)人第一次看了應(yīng)該都是那個(gè)問(wèn)號(hào)表情,這什么玩意?
不過(guò)經(jīng)過(guò)這些天在智能合約中解析銘文的經(jīng)歷,總結(jié)了一下,它其實(shí)可以理解成一種半同質(zhì)化資產(chǎn)(SFT)。
本來(lái) Ordinals Inscription 可以理解成一種 NFT 的表達(dá),有一個(gè)唯一 ID,包含了 content_type 以及 content,可以嵌入任何數(shù)據(jù)類型。而 BRC20 協(xié)議把 JSON 嵌入到 content 中,定義了 FT。FT 在 NFT 中,其實(shí)就是一種典型的 SFT 的表達(dá)方式,大家買賣銘文也習(xí)慣用“張”來(lái)作為單位。
而 SFT 有什么使用場(chǎng)景呢?這個(gè)其實(shí)上一次 DeFi 時(shí)候大家都有過(guò)深入的研究。比如用來(lái)表達(dá)游戲道具,中間的 FT 的 value 可以表達(dá)稀缺度,還比如用來(lái)表達(dá)債券,優(yōu)惠券,各種票據(jù)等。但上個(gè)周期它的特性并沒(méi)有充分發(fā)揮出來(lái),也沒(méi)有很多 SFT 類型的資產(chǎn)被創(chuàng)造出來(lái)。而現(xiàn)在銘文的火爆,讓這種類型的資產(chǎn)被充分創(chuàng)造出來(lái)了,如何利用它們呢?
當(dāng)前銘文的擴(kuò)展性困境
如果要發(fā)揮出銘文作為 SFT 的優(yōu)勢(shì),必須給它創(chuàng)造出使用場(chǎng)景,就必須擴(kuò)展銘文協(xié)議。已經(jīng)有一些團(tuán)隊(duì)嘗試通過(guò)擴(kuò)充銘文協(xié)議,比如 BRC20 中增加更多的 op 指令來(lái)實(shí)現(xiàn)。但一個(gè)銘文協(xié)議一旦被市場(chǎng)廣泛接受,必然有多家索引器的實(shí)現(xiàn),要擴(kuò)展協(xié)議必須要多個(gè)索引器在鏈下達(dá)成共識(shí),實(shí)現(xiàn)共識(shí)升級(jí),這個(gè)升級(jí)的難度不低于 L1 的共識(shí)升級(jí),顯然很難滿足擴(kuò)展性的需求。
而針對(duì)這種擴(kuò)展性要求,業(yè)界其實(shí)已經(jīng)摸索出了一套成熟的方案,那就是智能合約。區(qū)塊鏈的智能合約虛擬機(jī)模式,是整個(gè)軟件工程界摸索出來(lái)的最具有擴(kuò)展性的模式。所以現(xiàn)在的方案有兩種:1. 在索引器中引入智能合約。2. 通過(guò)智能合約來(lái)表達(dá)銘文。
索引器中引入智能合約
索引器中引入智能合約,可以叫做智能索引器,或者模塊化區(qū)塊鏈中的執(zhí)行層。銘文的模式可以把它理解成 DA first 的 sovereign Rollup,它把 L1 作為 DA,也沒(méi)有引入 排序器(Sequencer),直接通過(guò) L1 的區(qū)塊來(lái)進(jìn)行交易排序,而索引器也自然可以理解成執(zhí)行層。這種模式我在文章《銘文是個(gè) Bug 還是 Feature?》中有過(guò)闡述。 而 Rooch 也在這個(gè)方向進(jìn)行探索,具體方案參看 《Bitcoin 的 Layer2 應(yīng)該怎么做?》。
我們正在構(gòu)建一個(gè)這種場(chǎng)景的示例游戲,叫做 Bitcoin Plants。由于 Rooch 中有全量的 Bitcoin 狀態(tài),智能合約中可以讀取到 Ordinals 的 Inscription,用戶可以在游戲中把某個(gè) Inscription 作為種子,種出一顆植物,這個(gè)植物需要用戶定期澆水灌溉,然后它可以結(jié)出果實(shí)。而這個(gè)植物是綁定到 Inscription 上的,如果用戶把 Bitcoin 上的 Inscription 轉(zhuǎn)讓,這個(gè)植物也會(huì)被轉(zhuǎn)讓。這個(gè)簡(jiǎn)單的例子展示了如何通過(guò)執(zhí)行層的智能合約來(lái)給 L1 的銘文創(chuàng)造使用場(chǎng)景。詳情參看 github issue https://github.com/rooch-network/rooch/issues/1214 。
另外,也看到 Ethscriptions 在構(gòu)建 facet 虛擬機(jī),也是類似的路線,看來(lái)業(yè)界朋友也都看到了這個(gè)方向。
通過(guò)智能合約來(lái)表達(dá)銘文
如果說(shuō) Bitcoin 上的是因?yàn)闆](méi)有智能合約,所以開發(fā)者琢磨出了銘刻 JSON 的方法。而其他智能合約鏈上為啥還依然是寫 JSON 呢?最不能理解的是 Rollup L2 上寫 JSON,那個(gè) JSON 最終還是會(huì) Rollup 到 L1,那為啥去 L2 寫呢?L2 不應(yīng)該自然變成 L1 銘文的索引器嗎?自己還需要個(gè)銘文索引器?但即便是這樣,也擋不住用戶玩銘文的熱情,很多 L2 都被玩掛了。所以思來(lái)想去,我總結(jié)了銘文的幾個(gè)啟示:
1. 它是一種半同質(zhì)化資產(chǎn),它的流動(dòng)性并不如 FT,但這在市場(chǎng)起步階段是優(yōu)勢(shì)。
2. 它發(fā)行資產(chǎn)的門檻比各鏈上的 FT 都要低,認(rèn)知成本也低。各鏈上發(fā)行資產(chǎn)一般都需要部署個(gè)智能合約,識(shí)別也主要是通過(guò)合約地址,而這對(duì)新手來(lái)說(shuō)比較困難。而銘文這波把這個(gè)門檻基本降到了最低。
3. 它的公平發(fā)行模式,Bitcoin 上可以理解成通過(guò) Gas 租賃礦工礦機(jī)的 PoW 發(fā)行模式。
那既然這樣,我們?yōu)槭裁床挥弥悄芎霞s來(lái)實(shí)現(xiàn)一個(gè)銘文協(xié)議,并且兼具以上特性呢?于是這周我嘗試用 Move 實(shí)現(xiàn)了一個(gè) Movescriptions 協(xié)議。
首先,它是一種通過(guò) Move 表達(dá)的半同質(zhì)化資產(chǎn)協(xié)議。Move 基于數(shù)據(jù)結(jié)構(gòu)的資產(chǎn)表達(dá)方式,非常適合表達(dá)這種協(xié)議。
1. 通過(guò) tick 這個(gè)全局唯一的名字來(lái)表達(dá)類型,借鑒 BRC20,符合 KISS 原則,簡(jiǎn)單直觀。
2. value 可以用來(lái)表達(dá) FT 的余額,或者 NFT 里面的關(guān)鍵值。
3. Metadata 可以附加任意類型的數(shù)據(jù)。
其次,它支持通過(guò) PoW 來(lái)分發(fā)資產(chǎn)。部署者可以通過(guò)指定 difficulty 來(lái)設(shè)置一個(gè)難度,保證資產(chǎn)的分發(fā)更公平,更分散。因?yàn)槠渌湹?Gas 太低,很難實(shí)現(xiàn)通過(guò)燒 Gas 來(lái)防女巫攻擊。
而這樣通過(guò)智能合約實(shí)現(xiàn)的銘文,我稱之為智能銘文,銘文終于要進(jìn)化到需要智能合約的時(shí)候了。 這樣的銘刻出來(lái)的銘文自然就是智能合約的狀態(tài),也不依賴索引器,很容易和各種應(yīng)用場(chǎng)景進(jìn)行組合,比如 FOCG。對(duì)這個(gè)試驗(yàn)感興趣的朋友可以關(guān)注 @movescription ,以及 github https://github.com/movescriptions/movescriptions 。當(dāng)前 Rooch 版本的合約已經(jīng)初步完成,PoW 分發(fā)也已經(jīng)實(shí)現(xiàn),其他 Move 鏈的版本正在進(jìn)行中。
銘文的對(duì)開發(fā)者的啟示
銘文始發(fā)于 Bitcoin 的上的隨機(jī)嘗試,如今席卷各公鏈,它雖然簡(jiǎn)單粗暴,但極具生命力。它的未來(lái)還不明朗,看待它的分歧也很大,但這也是市場(chǎng)有趣的地方,機(jī)會(huì)總是在產(chǎn)生分歧的地方。那讓我們就給它再添加一些隨機(jī)性吧,開發(fā)者們可以行動(dòng)起來(lái),與其讓用戶銘刻一堆不知道怎么用的 JSON,不如試試看能不能把它和智能合約結(jié)合起來(lái)。如果結(jié)合成功,它可能是 FOGC 以及 AW 的啟動(dòng)的點(diǎn)火石,這個(gè)我們可以下篇再聊。