POS 與 MEV-Boost 的轉變,從根本上重塑了交易生命週期的模式,更精細的環節讓各參與者們產生極致博弈
作者:十四君
封面:Photo by Milad Fakurian on Unsplash
前言
斷更許久,終於復耕,我十四君又回來了。
在過去半年裡筆者從 ETH 生態完全轉入 BTC 生態,從應用層轉入鏈底層,看 btc、merlin、babylon、xion 等 L2 公鏈底層,研究 Ordinals、brc20、atomical、Runealpha、Runes 等銘文符文協定源碼。
有些許沉澱,那就繼續始終輸出吧,筆者將從技術視角給你帶來獨特見解與市場價值。
1、Runes(符文)是什麼?
過去一年,web3 最大的敘事莫過於銘文生態的爆發,最初的起點便是 Ordinals,是一種為 btc 上每個聰給予唯一性序號的技術,可拓展閱讀:解讀比特幣 Oridinals 協定與 BRC20 標準 原理創新與局限
其核心創始人 casey,在去年 9 月就提交了基礎版的 Runes 代碼,但是一直遲遲沒有發佈主網上線,因此在 9 月的銘文熱潮中,runeAlpha 等專案便提前 fork 了該代碼,單獨發行了 RunesAlpha 等協議,雖然有一定抄襲的說法,但是短短數月數億的總市值增長也讓人看到 Runes 協定的無窮潛力。
那麼由 Ordinals 協定的創始人 casey 所設計的,官方正版的 Runes 協定也將在 2024.4.20 號左右正式官宣上線。 且直接上線 btc 主網,因此各路專案方想要發行 Runes 資產,各路錢包、NFT/FT 交易市場想要支援 Runes 都將面臨區塊鏈行業最難的挑戰之一,如何在沒有測試網的情況直接衝刺主網!
而官方的 Twitter 發言更是高度自信~順帶學個新單詞:Seppuku
本文,將會系統的梳理符文專案的底層字段變遷,讓大家從根本上理解 Runes 與 Brc20、Arc20 等 FT 協定的差異點,對比優缺理性決策參與。
2、比特幣上是如何記錄額外資訊的?
比特幣上有兩種主流的鏈下數據附著在鏈上的方案,銘刻與蝕刻
2.1、蝕刻基礎原理
Runes 使用的是蝕刻技術,是一種簡單直觀記錄資訊到鏈上的方式:即寫入 bitc 中 UTXO(未花費交易)的 op-return 字段內,從功能在 Bitcoin Core 用戶端 0.9 版中開始啟用的(14 年),OP-RETURN 會創造了一種明確的可驗證不可消費型輸出,讓數據存在區塊鏈上,類似於 utxo 的輸出,但並不可被消費。
在 btc 的區塊鏈瀏覽器中可以輕鬆看到,該筆交易就附著了一個 op-return 的資訊,比如下圖:
可以看到,這裡的輸出 #3,其實是遊離的,雖然他佔據的一個該筆 utxo 的 output 的輸出位置,但是他是一個閉環的圓矩形,這就說明他是不能被再次轉移消費的,所以他就像是一個交易的備註區一樣,就留在了比特幣的存儲空間上,通過交易哈希區索引找到他。
細心的你可能會發現, 為什麼 OP_RETURN 的後面有一個 RUNE_TEST 這就是將具體內容解碼后的結果,點開明細按鈕后,就可以找到 52554e455f54455354 這樣的編碼串,其實一串十六進位編碼數據,解碼后就可以得到 RUNE_TEST,同理,明細里還有其他的編碼,最終解碼後會成為一串字元串,大概是 json 的格式,從而體現出 Runes 資產的部署、鑄造、發行等等寓意。
2.2、銘刻基礎原理
其實 Ordinals/brc20 等協定中,要嵌入元數據到鏈上,都是寫到交易的見證數據(witness data, witness field)中,這一銘刻銘文過程通過隔離見證(Segregated Witness, SegWit)和 “向 Taproot 支付”(Pay-to-Taproot, P2TR)的方式實現,其中包含了提交(commit)和揭露(reveal)兩個階段也就是最終 2 筆交易來完成。
其實 P2TR 是比特幣的一種交易輸出類型,它是在 2021 年進行的 Taproot 升級中引入的,它使得不同的交易條件可以更加「隱私」地存儲在區塊鏈中,之所以提升隱私是因為只有在揭示的時候,才能看到具體完整內容。 具體來說生成 p2tr 位址使用的是腳本 hash,在花費時提供真正腳本(包含銘文數據),所以為了上傳銘文數據,需要先生成一個支付到此腳本生成的 p2tr 位址的 utxo(commit 交易),然後花費這個 utxo 時,需要在見證腳本中提供真正腳本,也就把銘文數據上傳到了鏈上(reveal 交易)。
其實 Ordinals 協定非常好理解,就是在完成這個銘刻過程(commit、reveal)兩筆交易都上鏈后,ordinals 協定則定義規定此銘文綁定到了第一個輸入的第一個 sat 上。 所以,綁定的過程就是銘刻,綁定到結果就是銘文。
2.3、對比兩者數據上鏈方案
蝕刻:
優點:邏輯簡單直觀明確,交易成本低,可以不佔用全節點記憶體池。
缺點:限制於 80 位元組長度,需要高度壓縮數據編碼。
銘刻:
優點:幾乎不限制大小,有一定隱私保護能力,有多種玩法(時間鎖、工作量證明)等
缺點:交易需要 2 次上鏈,導致最終成本較高,commit 存續時間長,對全節點記憶體池壓力較大。
3、Runes 底層設計解讀
Runes 協定最初的代碼是 casey 發佈在 Ordinals 0.11. 版本上,而最新的 Ordinals 已經演進到 0.18 版本,巨大的版本變化,也讓我們有機會步入一個頂級協定的設計過程中,就像十四君曾經解讀的 ERC721/ERC3525/ERC3475 等標準,拓展閱讀:
我們不妨也步入 Runes 的起點和終點兩個版本的欄位變化,來解讀 Runes 的價值依規。
3.1、Runes 0.11 版本解讀
最初的 Runes 整體的欄位分成 3 個部分,edicts(資產轉移資訊),etching(資產部署資訊),burn(銷毀)。
{
"edicts": // 资产转移信息
[
{
"id": "1000c82970852",
"amount": 1000, // 转移数量
"output": 0 // 绑定到第几个输出
}
],
"etching": { // 资产部署信息
"divisibility": 1, //最小分割单位
"limit": 1000, //每一次 mint 的量
"rune": "COOK", //全称
"symbol": "C", //缩写
"term": 150 //多少个块内可以 mint
},
"burn": false // 销毁信息
}
具體來說,當一筆交易的 op_Return 里,資訊解碼之後能夠呈現 edicts 的資訊,且格式正確,那麼鏈下的解析器,就會計算出該使用者的資產發生了轉移,其中的 output 就是轉移的目標地。
同理 etching 的內容也是直接呈現了部署資產的主要資訊,我們可以和 ERC721 對比,最大的差別在於 limit 和 term 限制了 mint 的數量和可 mint 的區間。 而這點也就是銘文、符文專案與乙太坊智慧合約發行資產的根本性差別,由於鏈上缺乏智慧合約的驗證,這就少了實時驗證的能力,如果某個專案方發行鏈上的資產還自己運行一套新的銘文協定來定製化自己的白名單 Mint、代幣經濟學釋放速率,版稅繳納等等功能,都將會缺乏共識,就沒有人來參與這個專案了,所以銘文協定(brc20、atomical、 Runes)等都是統一定義了資產發行的方式,也統一了用戶參與 mint 的方式,以公平發射的理念,完全開放用戶參與,進一步杜絕了專案方過度干預資產市場認知的情況。
即使是專案方才通過掃貨累計資產來控制市場,也需要付出巨大的 gas 代價,這個過程里可被使用者感知到並且自由選擇。
那最初版本的 Runes 協議設計,其實已經挺完善了,因此演變出的 runealpha,哪怕是山寨的也佔據不少的市場規模,累計 82W 的交易筆數,僅手續費就消耗掉 312 個 BTC。
用戶可以輕易的使用 rune 字段本身的設計實現資產的複合、拆分,甚至一旦 Runes 資產與 Ordinals、atomical 等資產跨協議複合了,也可以藉助 op_Return 多樣的語言表達性,從而實現拆分。
那最新的 Runes 協定在 0.18 中實現了什麼,又是怎樣的考慮從而要有這樣的欄位呢?
3.2、Runes 0.18 版本解讀
要看懂 Runes 0.18 十分艱難,因為缺乏測試網,基本都只能從 casey 的原始程式碼裡看邏輯,最終梳理出來欄位分 4 個方面:
pub struct Runestone {
pub edicts: Vec,
pub etching: Option,
pub mint: Option,
pub pointer: Option,
}
pub struct Edict {
pub id: RuneId,
pub amount: u128,
pub output: u32,
}
首先 edicts 還是定義資產轉移方向方面的定義,與 runeAlpha 基本一致,差別的是多了一個 pointer 的參數,這是用來修改資產默認轉移方向的,原本的默認轉移是第 0 位,有了這個參數後,可以設置為 1 或者其他,設計理念是為了適配多種 Runes 資產同時轉出的時候,降低 op_Return 編碼量的作用,最終可以降低使用者的交易成本。
其次,新增了 Mint 字段,由於他的 mint 放在了和 edicts 等同級別的物件里,這也就意味著一筆交易只能 mint 一個資產,這與之前 RunesAlpha 的時候不同,那時候刻意的設計可以實現一筆交易 mint 大量新資產,這樣一來平衡了技術打資產和普通使用者打資產的起跑線,大家都要靠爭 gas 來獲取了。
部署資產的方式巨變
最後比較重要的改變是 etching 也就是部署資產的細節設計,完全欄位內容如下:
pub struct Etching { // 资产部署信息
pub divisibility: Option, //最小分割单位
pub premine: Option, // 提前挖掘区块数
pub rune: Option, // runes 资产名字
pub spacers: Option, // runes 资产名字的点符号分隔符
pub symbol: Option, // 缩写
pub terms: Option, // 铸造规则的系列字段
pub turbo: bool, // 涡轮,该资产是否参与后续测试性版本变化
}
pub struct Terms { // 铸造规则的系列字段
pub amount: Option, // 单次 mint 的数量限制
pub cap: Option, // 总共的 mint 次数限制
pub height: (Option, Option), // 可以被 mint 的块高
pub offset: (Option, Option), // 偏移量,结束 mint 的终点
}
基本看暈了吧,確實是非常複雜的部署新資產方式,讓我們詳細道來~
首先較大的改動點是為了降低 op_Return 編碼量的設計,畢竟 op_Return 限制 80 位元組的長度每一個編碼空間都要珍惜。 因此 casey 做了資產 id 的變化,從單純的區塊高度+交易序號生成的唯一 id 值變化為字串形式的區塊高度+冒號+交易序號,由於比特幣主網也才 80 多 w 的區塊高度,所以最終的 id 編碼節約了一半,可別小瞧,在批量 Mint,批量轉移場景就成倍的降低成本了。
其次是保障參與者公平性的 terms 字段,現在部署資產開始 Mint 不再是 runealpha 那樣,依據部署資產協定的交易上鏈的區塊高度開始,而是發行方指定的 height 和 offset 作為起終點。 這樣一來,使用者即使不時時刻刻盯著記憶體池,從而挖掘最新可以被 mint 的機會,也不用太擔心誤入釣魚山寨專案中。 畢竟專案方就可以提前先部署好資產,然後在進行一系列的運營宣發活動,最終讓用戶參與,除了區間高度作為參與時間的衡量外還有 cap,作為總 mint 次數,進一步控制了資產發行的規模,不再是無極限 mint,而是限定發行,先到先得。
作為資產發行協議,那麼如何控制發行方的規模和權益便是一大挑戰,對於銘文而言,最重要的就是資產名字,那麼 Runes 裡名字就是稀缺資源,有一個伴隨減半週期的 Runes 名字長度釋放規則,一開始只能部署較長的名字,時間越久才越能部署少字元數的名字。
可以想像,每當一個名字長度釋放週期,那麼就會持續的掀起類似域名那樣的搶注潮流,那如何避免專案方被搶注呢?
這便引入了 Runes 這次部署的最重大變化,部署的流程,不再只是一筆 op_Return 的交易,而是一次銘刻,前文有提及,銘刻技術通過 commit 和 reveal 可以進行一定的隱私保護,那麼新版的 premine 就是承擔了這個作用,要求 commit 和 reveal 兩筆交易有一定的間隔,然後被揭示出來的時候市場才知道發行方要使用的名字,這時候,即使其他駭客要想製作釣魚資產,即使是高手在記憶體池已經看到了該名字,要仿冒,也過不去這個提前量的限制,今兒保護發行方對名字的掌控力。
在 18 版本最後還新增了 turbo 欄位,這暫時還沒有明確的公開作用,寓意為參與後面的其他協定層變更。
4、如何評價 Runes 新版協定
通過上文對底層字段的解讀,十四君也不禁感慨,casey 對資產發行的玩法真是見解獨到,短短 2 個月的時間,設計並實現如此貼合市場需求痛點的協議內容。
這是一個看價格來衡量價值的市場,銘文協定一開始作為完全差異化智能合約的模式,打開了很多的想像空間,真正的公平 mint 也讓大量使用者真正進入 btc 的圈子,又進一步引發 btcL2d 熱潮。 但是銘文協定一開始的粗放,導致劣質資產橫飛,滿大街的盜版和 rug 讓銘文生態蒙塵。 符文的出現,更高程度定製化的發行管理將會讓市場變得有序。
並且 Runes 協定是嵌入在 Ordinals 協定本身當中,藉助 Ordinals 本身的用戶基礎,讓 Runes 協定的發行從一開始就站在巨人的肩膀上。 作為 FT 協定的定位彌補了原先 Ordinals 只作為 NFT 缺乏市場運作玩法的窘境。
最後,採用 op_Return 的方式記錄鏈上數據,幾乎可以讓 Runes 資產擁有任何機構和復現帳本的能力,其中心化程度進一步降低也就可以讓 Runes 資產具備了與 btc 相等的一定安全性能。
Runes 協定有什麼缺點呢?確實有
首先是市場時機問題,雖然 casey 選定在 btc 減半期同步上線,但是高度緊張的開發時間,甚至在昨天還在變更協議的內容, 這也讓市場上能第一時間接入 Runes 協定的機構越來越少,這樣一來協議生態也就需要更多的時間來發酵。
其次是規則複雜性,對於發行管理的規則已經很複雜,但是名字的變化讓發行方一開始可選的是較長的名字選擇,結合特殊的點符號,讓 Runes 協定的名字最大長度甚至變成:
B•C•G•D•E•N•L•Q•R•Q•W•D•S•L•R•U•G•S•N•L•B•T•M•F•I•J•A•V
幾乎 55 位的長度,這樣變相放大了使用者被釣魚的風險,並且移動端外掛程式端等介面也很難完整展示出來。
最後是未來相容性問題,同樣市場火熱的 atomical 協議,現在佈局已經走向 AVM 階段,讓銘文擺脫單純的代幣炒作階段,進一步走向 btc L2 或者 BVM 的敘事中,這點不得不說 casey 稍有落後,也局限了符文專案只作為發行層面的玩法。
本文內容參考資料:
- runes 協定編解碼分析:https://github.com/okx/js-wallet-sdk
- ruens 協定官方源碼:https://github.com/ordinals/ord
免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。