Runes協議即將上線,從技術角度解析其原理、分發規則和預估成本

avatar
Trustless Labs
5個月前
本文約2421字,閱讀全文需要約4分鐘
關於Runes 協議你應該知道些什麼?有哪些熱點?

原文作者: Trustless Labs

距離BTC 減半的840000 區塊還有不到3 天時間,這也意味著整個BTC 生態期待已久的Runes 協議即將上線,作為BTC 生態規模最大的公平發射,雖然可能面臨著巨大的競爭內卷壓力,但這是目前加密世界最巨大且公開的alpha 機會。

雖然目前OKX 錢包、Unisat 等平台已經提供了公共的蝕刻平台,但想要在競爭中拿到更多籌碼,運行自己的比特幣全節點與索引,並了解Runes 運行的相關原理,從而針對性地進行優化將帶來一定的優勢。

在本文中,Trustless Labs 將從技術實作、分發規則、預估成本三部分介紹Runes 協定。

Runes 協議是Ordinals 創始人Casey 部署在比特幣網路上發行同質化代幣的資產協議,Runes 的基本面也就是其接棒了Ordinals 協議的正統性,成為了下一個BTC 鏈上資產公平分發的窗口,Ordinals 社群需要藉助Runes 爭取BTC 生態代幣資產的定價權,Casey 甚至喊話Runes 生態上線一個月後不到10 億美金市值就切腹自盡...

可以預計,減半後Runes 協議將帶來十分活躍的鏈上交互,可以關注的熱點將包括但不限於:

  • Casey 在Runes 協議中硬編碼的創世符文;

  • RSIC、Runestone 等NFT 對應的Runes 代幣空投;

  • 社區主導的Runes 代幣的部署和fomo;

原理

Brc 20 的方式被稱為銘刻,即將代幣資料寫入隔離見證的簽章中,並將資料綁定在一個特定的聰上。本質上這是把BTC 當為儲存空間,轉帳完全依賴鏈下的BRC 20 索引帳本,為了確保交易的合法,BRC 20 的轉帳必須先透過銘刻將對應代幣變成可轉移狀態,再透過第二個交易轉移對應銘刻後的UTXO 完成轉帳。

Atomicals 的方式稱為染色,ARC 20 的餘額依靠一筆UTXO 下的聰數量表示,嚴格遵循1 token = 1 sats 的對應關係,因此Arc 20 的轉帳可以完全被BTC 網路當作一般的交易處理,索引較簡單,可使用BTC 原生特性。

Runes 的方式被稱為蝕刻,一筆Runes 的餘額被綁定在一筆UTXO 下,對這筆餘額數量、代幣符號等資訊的數據被記錄在這筆交易的OP-RETURN 下,OP-RETURN可視為這筆交易的備註(最大80 個位元組),其資料包含的json 標註了該BTC 交易下utxo 表示了多少數量的Runes 代幣,識別這些代幣需要Runes 的索引器。

總而言之,Runes 綁定BTC UTXO,或將BTC UTXO 視為Runes 代幣的指針,OP-RETURN 就是指針的賦值語句。

當Runes 代幣進行轉移時,需要將代表了Runes 代幣的UTXO 作為輸入,在OP-RETURN 寫入轉帳的數量,與指定的utxo 作為第一個輸出,設定數量的Runes 代幣將轉移到utxo 1 的目標地址,而剩下的Runes 代幣會自動依序與其他utxo 如utxo 2 綁定。 utxo 1 可以輸出給別人的地址,utxo 2 可以輸出給自己作為找零,這樣就完成了一次Runes 轉帳。同時Runes 也附帶了burn 的功能,可聲明銷毀代幣。

與BRC 20 僅使用BTC UTXO 所附帶的各種好處;該方式與ARC 20 類似,但不同點在於,Runes 的utxo 可以表示任意數量的代幣,而ARC 20 的數量嚴格與綁定UTXO 下包含的sats 數量有關(難以分拆);但同時,ARC 20 也更不依賴索引器,Runes 代幣轉帳的合法性依然需要Ord 索引帳本的記錄。

struct Runestone {
edicts: Vec<Edict>,
etching: Option<Etching>,
mint: Option<RuneId>,
pointer: Option<u 32>,
}
struct Edict {
id: RuneId
amount: u 128,
output: u 32,
}

OP-RETURN 下json 資料的靈活性,允許其一次性操作Runes 代幣的批量轉賬,包括將不同類型Rune 資產如RuneA 與RuneB 在同一個比特幣交易中轉移。

分發規則

在Runes 代幣的初始分發流程下,代幣部署者首先需要先定義其代幣資訊與分發規則。

代幣資訊這包括了最小拆分單位、資產名字、名字的符號分割符、符號等,要注意的是,Runes 資產的名字不限長度,並包括• 這類的分割符,可能會比較複雜,在鑄造新資產的時候一定要注意識別。

struct Etching {
divisibility: Option<u 8>,
premine: Option<u 128>,
rune: Option<Rune>,
spacers: Option<u 32>,
symbol: Option<char>,
terms: Option<Terms>,
}

在分發規則部分,Runes 允許部署者進行預先分配,將代幣分配給自己,因此要注意識別是否為公平發射,此功能可以用於Runestone、Rsic 這類資產的分發。

在分發規則的Terms 數據下,包含了單次Mint 代幣數量限制、總共mint 張數、mint 的開始與結束區塊這些數據。這裡可以將總mint 次數設定為無上限,限時不限量,casey 部署的0 號符文UNCOMMON•GOODS 就是這樣。

struct Terms {
amount: Option<u 128>,
cap: Option<u 128>,
height: (Option<u 64>, Option<u 64>),
offset: (Option<u 64>, Option<u 64>),
}

同時,使用者自發性的mint 流程需要在OP-RETURN 下寫入Runestone 的資料類型(與符文NFT Runestone 無關),一次交易只能mint 一次,因此想要取得更多的籌碼,就需要在一個位址下分多個UTXO 進行。

Runes 會在840000 區塊開始,ord 索引也已經更新到最新版本0.18.1 ,現已充分支援runes 代幣查詢、etch(等同於Brc 20 的deploy)、mint 等功能,同時Casey 也表示將部署一部分Runes 代幣硬編碼到ord 索引器中,在減半區塊啟動。這些資產完全公平分發,可自由mint,Casey 曾經提及的名字有COMMUNISTRUNE、ANARCHISTRUNE、CYPERPUNKRUNE。現在索引中已經可以看到名為UNCOMMOM.GOODS 的創世符文。

Runes 資產名稱的部署被Ord 索引進行了限制, 13 - 26 字元的名字在840000 區塊後就可以自由部署, 12 位元字元的名字被逐步解鎖。每過17, 500 個區塊後(大約120 天)就解鎖更短一位的名字的部署,因此要mint 到4 字符的代幣,需要等待3 年時間。

雖然早期超長的名稱並不利於炒作,但好在能設計特殊的符號來表示資產,這個符號符合 Unicode 標準,因此可以寫入很多emoji 表情,選一個好的emoji 也是部署meme 時需要注意的。

預估成本

目前的 Runes 的協定程式碼基本上已經確定,並在測試網運行了一段時間,因此可以進行一些成本的預測。我們透過在signet 上執行ord 索引已經可以看到signet 測試網路部署了多達497 個runes 的測試代幣,testnet 測試網路上有多達 963 個。同時我們也在signet 進行了一些實驗和測試,以計算mint 時的成本花費和進度。

Signet 測試網0 ~ 9 號Runes 代幣:

THESE•WILL•BE•WORTHLESS
GREG•GREG•GREG
CUBS•FIRST•RUNES•TOKEN
AMAZING•KODA•FART
SORA•PARTY•STARTS•FIVE•DOLLARS
WAKE•N•BAKE
RECURSIVE•ROBOTS•RUNES•TEST
FRENCH•WON
SATOSEA•XYZ

我們在signet 測試網進行了多筆runes 代幣的mint,ord 指令:

$ ord --index-runes --bitcoin-rpc-password xxx --bitcoin-rpc-username xxx -s wallet mint --fee-rate 1 --rune HARRY•POTTER•OBAMA•SONIC•IO•INU
{
rune: HARRY•POTTER•OBAMA•SONIC•IO•INU,
pile: {
amount: 1000,
divisibility: 0,
symbol: 🧹
},
mint: 645829 bdaf 105 cce cc0 12629 a 3 bbb 6 e 9 dfcfe 9 2fa 09499 ea 54 b 8709 2c 9100946
}

交易如下: https://mempool.space/zh/signet/tx/645829bdaf105ccecc012629a3bbb6e9dfcfe92fa09499ea54b87092c9100946

Runes協議即將上線,從技術角度解析其原理、分發規則和預估成本

指定destination 作為接收Runes 代幣的地址:

$ ord --index-runes --bitcoin-rpc-password xxx --bitcoin-rpc-username xxx -s wallet mint --fee-rate 1 --rune MAOBY•THE•CUTEST•CAT --postage 1000 sat -- destination tb 1 p 43 k 8 gxevpc 0x 3 hthv 9 dm 33589 gecn 8 mr 4 rk l3 03 js 3 gtvmpehltqg 2 mmc 4
{
rune: MAOBY•THE•CUTEST•CAT,
pile: {
amount: 100,
divisibility: 0,
symbol: 🐈
},
mint: 32125 d 247 a 282 ebf 53 b 89 3a 17 f 3 c 2c 99 a 774774923 3d c 010 bd 9 ae 2934540 c 981
}

交易如下: https://mempool.space/zh/signet/tx/32125d247a282ebf53b893a 17 f 3 c 2c 99 a 774774923 3d c 010 bd 9 ae 2934540 29381

Runes協議即將上線,從技術角度解析其原理、分發規則和預估成本

可以看到,一次mint 交易大概會消耗230 vB 大小,參考市場熱度推測fomo 情緒,若以feerate 在極端情況下為300-1000 sats/vB 來計算,mint 一張的成本約為0.0023-0.00069 BTC( 150 u-50 u),同時ord 支援指定destination 位址,因此可以拆分utxo 後並發批次mint 到目標位址。

若減半後fomo 情緒高漲,前期每個區塊有3000 筆transactions 為Runes mint 交易的情況下,以feerate 平均為200 sats/vb 計算,一天Runes 代幣的mint 約消耗198.72 btc 的gas 成本,將可以為計算早期fomo 籌碼市值提供一些參考。

原創文章,作者:Trustless Labs。轉載/內容合作/尋求報導請聯系 report@odaily.email;違規轉載法律必究。

ODAILY提醒,請廣大讀者樹立正確的貨幣觀念和投資理念,理性看待區塊鏈,切實提高風險意識; 對發現的違法犯罪線索,可積極向有關部門舉報反映。

推薦閱讀
星球精選