深入探討Runes協定的底層設計與運作機制


符文是一種新興的web3技術,最初起源於Ordinals協議,用於為比特幣上的每個聰提供唯一性序號。該技術的核心創始人casey設計了Runes代碼,並計劃於2024年4月正式發布。 Runes協議使用OP_RETURN欄位將資訊記錄到比特幣的區塊鏈上,實現了資產轉移和配置資訊的儲存。與Ordinals協定相比,Runes協定增加了一些新特性,如指標參數和Mint欄位。透過案例分析,展示了Runes協議的設計原則和優勢,以及未來可能面臨的挑戰。整體而言,Runes協議的創新和發展為符文生態注入了新的活力。

作者:十四君

1、符文是什麼?

過去一年,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的區塊鏈瀏覽器中可以輕鬆看到,該筆交易就關注了一個操作返回的信息,例如下圖:

深入解讀Runes協定的底層設計與呼吸機制

可以看到,這裡的輸出#3,其實是遠程的,雖然他關心的是一個該筆utxo的輸出的輸出位置,但是他是一個閉環的圓形形狀,這說明他是不能被再次轉移消費的,所以他就像是一個交易的索引區一樣,就留在了比特幣的儲存空間上,透過交易哈希區索引找到他。

細心的你可能會發現,OP_RETURN的後面有一個RUNE_TEST大概就是具體內容解碼後的結果,點開明細按鈕後,就可以找到52554e455f54455354的編碼串,其實一串十六進位編碼數據,解碼後面就可以RUNE_TEST,同理,明細裡還有其他的編碼,最終解碼後會成為一串字符串,大概是json的格式,從而得到表達出符文資產的配置、鑄造、發行等寓意。

2.2、銘刻基礎原理

其實Ordinals/brc20等協議中,要嵌入元數據到鏈上,都是寫到交易的見證數據(見證數據,見證字段)中,這個銘刻銘文過程通過隔離見證(隔離見證,SegWit)和“向” Taproot支付」(Pay-to-Taproot,P2TR)的方式實現,其中包含了提交(commit)和揭露(reveal)兩個階段以最終2筆交易來完成。

其實P2TR是比特幣的交易輸出類型,它是在2021年進行的Taproot升級中引入的,它使得不同的交易條件可以更「隱私」地儲存在區塊鏈中,之所以提升隱私是因為只有在揭示的時候,才能看到具體完整的內容。具體生成使用腳本hash的p2tr地址,在佔用時提供真正的腳本(包含銘文數據),所以要上傳銘文數據,需要先生生成一個支付到此腳本生成的p2tr地址的utxo(commit交易),然後佔用這個utxo時,需要在見證腳本中提供真正的腳本,也會將銘文資料上傳到鏈上(reveal交易)。

其實Ordinals協議非常好理解,就是在完成這個銘文過程(commit、reveal)兩筆交易都上鍊後,ordinals協議則定義了這個銘文綁定到了第一個輸入的第一個坐上。定的過程就是銘刻,綁定到結果就是銘文。

2.3、對比雙向資料上鍊方案

標註:

優點:邏輯簡單直觀,交易成本低,可以不佔用全部節點記憶體礦池。缺點:限制於80位元組長度,需要高度壓縮資料編碼。

銘刻:

優點:幾乎不限制大小,有一定的隱私保護能力,有多種玩法(時間鎖、工作量證明)等缺點:交易需要2次上鍊,導致最終成本上漲,提交存續時間長,對全節點內存礦池壓力增大。

3.符文初級設計解讀

Runes協議最初的程式碼是casey發佈在Ordinals 0.11.版本上,而最新的Ordinals已經演進到0.18版本,巨大的版本變化,也讓我們有機會接入一個頂級協議的設計過程中,就像十四君曾經閱讀過的ERC721/ERC3525/ERC3475等標準,擴展閱讀:

我們豐田也依符文的起點和終點兩個版本的欄位變化,來解讀符文的價值條款。

3.1、Runes 0.11版本解讀

最初的符文整體的消防救援3個部分,法令( 資產轉移資訊),蝕刻( 資產配置資訊),燒毀(回顧)。

深入解讀Runes協定的底層設計與呼吸機制

具體來說,當計數交易的op_Return裡,訊息解碼之後能夠讀取指令的訊息,且格式正確,那麼鏈下的解析器,就會計算出該用戶的資產發生了轉移,其中的輸出就是轉移的目標地。

同理蝕刻的內容也直接呈現了使用資產的主要訊息,我們可以和ERC721對比,最大的差價限制和期限限制了鑄幣的數量和可鑄幣的區間。而明白銘文、符文項目與以太坊智能合約發行資產的根本性差異,由於鏈上缺乏智能合約的驗證,這就少了實時驗證的能力,如果某個項目方發行鏈上的資產還自己運行一套新的銘文協議來定制自己的白名單Mint、代幣經濟學釋放速率,糾錯等等功能,都將缺乏共識,就沒有人來參與這個項目了,所以銘文協議(brc20、atomical、 Runes)等都是統一定義有了資產發行的方式,也統一了用戶參與鑄幣的方式,以公平發行的理念,完全開放用戶參與,進一步杜絕了項目方過度幹預資產市場認知的情況。

即使是專案方才透過掃貨累計資產來控制市場,也需要龐大的天然氣成本,這個過程裡可以被使用者掌握並自由選擇。

那個最初版本的Runes 協議設計,其實已經相當完善了,由此衍生出的runealpha,出現了山寨的也引發了巨大的市場規模,累計82W 的交易筆數,僅手續費就消耗了312 個BTC。

使用者可以輕易的利用rune欄位本身的設計來實現資產的Compound、分割,甚至一旦Runes資產與Ordinals、atomical等資產跨協議Compound了,也可以藉助op_Return多種語言的表達性,從而實現分割。

最新的符文協定在0.18實現了什麼,又是怎樣的考慮導致了這樣的欄位呢?

3.2、Runes 0.18版本解讀

除了懂Runes 0.18十分困難,因為缺乏測試網,基本上只能從casey的源碼看邏輯,最後整理出來字段分4個面向:

深入解讀Runes協定的底層設計與呼吸機制

首先還是定義資產轉移方向方面的定義,與runeAlpha基本上一致,差值是多了一個指針的參數,這是用來修改資產默認轉移方向的,到底默認轉移是第0位,有了這個參數之後,可以設定為1或其他,設計理念是為了讓多種符文資產同時轉出的時候,降低op_Return編碼量的作用,最終可以降低用戶的交易成本。

其次,增加了Mint 字段,由於他的薄荷放置了和法令相繼級別的對象裡,這意味著追加交易只能鑄造一個資產,這與之前RunesAlpha 的時候不同,需要刻意的設計可以實現追加交易鑄造大量新資產,這樣平衡了技術打資產和一般用戶打資產的起跑線,大家都要靠爭氣來獲取了。

配置資產的方式巨變

最後比較重要的改變是蝕刻部署資產的細節設計,完整欄位內容如下:

深入解讀Runes協定的底層設計與呼吸機制

基本上看暈了吧,確實是非常複雜的配置新資產方式,讓我們詳細道來~

首先增加的佇列點是為了降低op_Return編碼量的設計,畢竟op_Return限制80位元組的長度每一個編碼空間都要讀取。因此casey做了資產id的變化,從簡單的區塊高度+交易序號產生唯一的id值變化為字串形式的區塊高度+冒號+交易序號,由於比特幣主網也才80多w的區區塊高度,所以最終的id編碼節省了一半,可別小瞧,在大規模Mint ,批量增量場景就成倍的降低了成本。

其次是保障參與者公平性的術語字段,現在配置資產開始Mint是runealpha那樣,不再使用配置資產協議的交易上鏈的區塊高度開始,而是發行方指定的高度和偏移量作為終點。由於,使用者即使時刻刻抓內存礦池,從而挖礦最新可以被鑄造的機會,也不用太擔心誤入釣魚山寨項目中。畢竟專案方就可以提前先部署好資產,然後在進行一系列的營運宣發活動,最終讓用戶參與,除了區間高度作為參與時間的外側還有上限,作為總鑄幣次數,進一步控制了資產發行的規模,不再是無極限鑄幣,而是限定發行,先到先得。

作為資產發行協議,那麼如何控制發行方的規模和權益則是一大挑戰,對於銘文而言,最重要的就是資產名稱,那麼符文裡的名稱就是稀缺資源,有一個伴隨減半週期的符文名稱長度釋放規則,一開始只能配置大量的名字,時間越久才越能配置少字數的名字。

可以想像,只要有一個名字長度釋放週期,那麼就會持續的引發類似架構那樣的搶注趨勢,那如何避免專案方被搶注呢?

這就引入了Runes這次部署的最大變化,部署的流程,不再只是停止op_Return的交易,而是一次銘刻,前文有回調,銘刻技術透過commit和reveal可以一定的隱私保護,然後進行一定的隱私保護,然後新版的預挖就是承擔了這個作用,要求提交和透露兩筆交易有一定的間隔,然後被揭示出來的時候市場才知道發行方要的名字,這個時候使用,即使其他黑客賺取釣魚資產,即使是高手在內存礦池中已經看到了該名字,要仿冒,也過不去這個提前量的限制,今兒保護釋放方對名字的掌控力。

在18版本最後還增加了turbo字段,這暫時還沒有明確的公開作用,寓意為涉及後面的其他協定層變更。

4.如何評價Runes新版協議

透過整個高層欄位的解讀,十四君也不禁感嘆,凱西對資產發行的玩法確實如此,短短2個月的時間,設計並實現瞭如此貼合市場需求痛點的協議內容。

這是一個看價格走向低碳價值的市場,銘文協議一開始作為完全多樣化的智能合約的模式,開啟了很多想像空間,真正的公平鑄幣也讓大量用戶真正進入了btc的圈子,也進一步引發了btcL2d的熱潮但銘文協議一開始的粗放,導致劣質資產橫飛,滿大街的盜版和地毯讓銘文生態蒙塵。符文的出現,更高程度客製化的發行管理將使市場變得更加繁榮。

並且Runes協議是嵌入在Ordinals協議本身中的,借助Ordinals本身的用戶基礎,讓Runes協議的釋放從一開始就在巨人的肩膀上。作為FT協議的定位修復了Ordinals只作為NFT缺乏市場兼容的玩法的處境。

最後,採用op_Return的方式記錄鏈上數據,幾乎可以讓Runes資產擁有任何機構和復現存款的能力,其中心化程度進一步降低,從而可以讓Runes資產具備了與btc一定的安全性能。

Runes協議有什麼缺點呢?確實有

首先是市場時機問題,但凱西選擇在btc減半期同步上線,高度緊張的開發時間,甚至在昨天還在更改協議的內容,這也讓市場上能第一時間接入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位元的長度,這樣變相放大了使用者被釣魚的風險,而行動端插件端等介面也很難完整展示出來。

最後是未來的兼容性問題,同樣是市場火熱的Atom協議,現在佈局已經走向AVM階段,讓銘文擺脫簡陋的代幣炒作階段,進一步走向btc L2或者BVM的敘述中,這一點不得不說casey以前有過,也誕生了符文項目,只是作為發行層面的。

本文內容參考資料:

runes協議編解碼分析:https://github.com/okx/js-wallet-sdk

ruens協議官方原始碼:https://github.com/ordinals/ord

資訊來源:0x資訊編譯自網際網路。版權歸作者十四君所有,未經許可,不得轉載

Total
0
Shares
Related Posts