研報:除了BRC20,比特幣還有RGB這些Layer2
Mempool Podcast
2023-05-31 06:08
本文约6820字,阅读全文需要约27分钟
比特幣二層網絡,才是生態更好的選擇?

一級標題

一級標題

1. 比特幣為新的二層的做好了準備

Ordinals 由比特幣核心開發者Casey Rodarmor 在2022 年2 月2 日提出BIP,到了2023 年1 月底上線,整個開發經過了差不多一年的時間,簡單來說,它用一種獨特的方式,把任意一段4 MB 大小內容數據寫到比特幣上,每一段數據和比特幣的一個聰綁定。可以從兩個部分理解Ordinals 這個協議,一個是Ordinals 序數,一個是Inscription 銘文:

  • Ordinals 序數:要Ordinals 要先理解比特幣最小的貨幣單位Satoshi 聰,一個比特幣等於1 億個聰,這些聰之間本來沒有差別,但是就像各國央行發行法幣時給法幣打上編號一樣。在比特幣UTXO 記賬系統的基礎上,Casey 利用一套技術方案,給聰打上序號,並且追踪他們。

  • inscription 銘刻:當每個聰被打上編號之後,就可以將一段內容寫入見證隔離區,內容可以是圖片、文字、音視頻,甚至是代碼,只要大小在4 MB 以下,這個過程也就是將藝術品和聰綁定,從而發行、流轉。

比特幣實際上是一個去中心化的賬本系統,而這個賬本的核心是它的腳本系統——用來編寫交易規則的語言,這種語言不具備圖靈完備性,提供了執行交易和定制特定操作的功能。

Ordinals 在腳本中的邏輯實際上依賴比特幣腳本中的“op_if”的操作碼, 這個操作碼自比特幣誕生起就存在,由中本聰寫下。 “op_if”的意思是說,如果堆棧中出現了“ 0 ”和“op_if”,那麼“ 0 ”和“op_if”中間這一整段代碼都會被跳過,不會進入堆棧中去實際執行。

和“op_if"0"和“op_if"中間的這段數據按照腳本設置被完整地跳過,而這段數據就是Ordinals 銘文。

除了“op_if”,Ordinals 的存在還跟比特幣一次重大技術升級隔離見證有關。眾所周知,比特幣記賬是採用UTXO 系統,而UTXO 有自己的腳本公鑰,通常需要提供一些數據來完成腳本公鑰編程出來的驗證程序一筆錢才能被解鎖。原本,所有用於通過驗證程序的數據都會放在輸入腳本簽名的字段裡。 2017 年8 月,比特幣採用了名為隔離見證(SegWit) 的軟分叉升級,通俗地說,通過把佔用大量存儲空間的簽名等數據,放置交易腳本末尾,在比特幣區塊大小不超過4 MB 的限制下,區塊有更大空間,從而能進行更多的交易,以達到擴容的目的。

由於隔離見證是軟分叉,並非強制使用,開發者為了吸引大家使用隔離見證,便讓隔離見證上數據存儲價格更為低廉。而交易的大小是收取交比特幣的手續費的依據,因此,開發者採用對方法是對於見證隔離部分交易大小計算給予折扣——把交易數據結構分為交易數據和見證數據兩部分,在計算見證數據的大小時,使用的是virtual Byte(vByte)為單位, 1 個vByte 相當於4 個權重單位(wu):

  • 見證數據:包含腳本和簽名數據,每個字節計為1 wu;

  • 交易數據:包含發送方、接收方以及輸入和輸出的信息,每個字節為4 wu;

也就是說,見證部分的數據權重僅為交易部分的25% ,交易費用也相應地為25% ,同時,此前最大區塊大小由1 MB 變更為1 vMB,即4 MB。

但是真正實現Ordinals,還跟Taproot 有關。在見證隔離的技術中,對每次輸入的數據大小做了專門的限制,但是到了2021 年11 月,比特幣再次發生重大升級Taproot,移除對見證部分中數據量的限制,數據具體大小只受到隔離區域最大區塊4 MB 的限制,同時,讓開發者可以在見證部分編寫更高級的腳本。

在一連串技術升級之後,讓之前沒有辦法放在比特幣鏈上對數據能夠存儲到鏈上,一步步為實現Ordinals 打下基礎。

Ordinals 發布之後,社區先是用這個協議來發行NFT,尤其是像Yuga Labs 這樣知名的機構也發行了基於BRC 20 的比特幣NFT 之後,引起了行業廣泛關注,Mempool 也發布了專門的一級標題一級標題

2. BRC 20 走Omni Layer 的老路

在比特幣NFT 熱潮之後,推特用戶@domodata 於2023 年3 月8 日創建了比特幣上的BRC-20 代幣標準。

BRC 20 一經面世,就引起了極大的關注,許多人希望藉著Ordinals 風頭髮行代幣。首個在BRC-20 上部署的代幣是“ordi”,致敬BTC,Ordi 的總量也為2100 萬個,每次鑄幣限制為1000 個。 Ordi 引起市場極大追捧,如果按照mint 價格計算,最高時漲幅超過3000 倍,一度成為市場最熱的meme 幣。但是在我們文章刊發的五月底,Ordi 的價格已經從最高時間24 美元回落到8 美元附近。

同時,就在5 月25 日,一家名為Stably 的公司宣布,他們即將推出其美元(USD) 支持的穩定幣Stably USD,作為本地發行的BRC 20 代幣,符號為#USD。

從技術上簡單解釋BRC 20 ,它實際上就是利用了銘刻可以在區塊中寫入任意數據的特點,在其中寫入JSON 形式的數據來發行代幣,這些JSON 暑假定義代幣的一些標準,包括資產名字、發行量等等信息都以銘刻的形式寫到鏈上。

如果以如果用以太坊來打比方,相當於在ERC 721 之上實現ERC 20 發行代幣的功能。用比喻的方式就更能夠理解這種“套娃”的形式,如果比特幣是一張紙鈔,Ordinals 就像在這個紙鈔上面去寫了一些文字或者是畫一幅畫,甚至是嵌入一個大小合適的遊戲,在我們的嘉賓Jeffery Hu 看來,BRC 20 就相當於在這張鈔票上寫了一張支票,通過這張鈔票上的支票,把錢轉移給另一個人。

在我們的嘉賓,阿劍和Jeffery Hu 看來,BRC 20 和之前的Omni Layer協議非常類似,“而之前大家把這條路走了一遍,我們已經知道了是一條走不通的道路”。

Omni Layer 也是試圖在比特幣之上去發行額外的資產。真正讓Omnilayer大規模落地的是在2014 年Tether 公司基於它發行穩定幣USDT,這些轉帳帳號地址開頭通常是“ 1 ”、“ 3 ”。雖然轉賬速度較慢,但是因為是基於比特幣區塊鏈,一開始還是受到用戶接受,尤其大筆金額的轉帳通常會用基於Omni Layer的USDT。但到了2018 年以太坊熱門起來,所以Tether 公司在以太坊上面發行USDT,轉帳速度大幅上升,這些地址通常是“0x”,基於Omni Layer 的用戶逐漸流失。

Omni Layer 和Ordinals 的設計非常類似,實際上是利用的也是比特幣的OP_RETURN 腳本,在交易中嵌入小段數據,從而把比特幣之外的代幣信息寫在比特幣鏈上。

在比特幣的UTXO 系統中,每一筆交易都有花費(spend)即輸入,然後產生一筆輸出(output),就是“未花費過的交易輸出”(Unspent Transaction Output)。輸出腳本負責在交易中編程,當一個交易試圖從一個賬戶中支出時,它必須提供一個輸入腳本,來“解決”輸出腳本提供的難題。

但是當輸出腳本中使用OP_RETURN 操作碼時,它將輸出標記為不可消費,這意味著該交易不會影響餘額,但是這筆交易仍然被記錄在區塊鏈上:

  • OP_RETURN 在創建付費腳本哈希(P 2 SH)交易的第一步中使用,交易輸出的鎖定腳本包括OP_RETURN 操作碼,後面是需要插入的數據(通常最多40 字節)。

  • 用戶向該交易添加輸入,例如想要用作交易輸入的未花費交易輸出(UTXO)。

  • 在用戶創建交易後,使用自己的私鑰對交易進行簽名。

  • 一旦交易被廣播,礦工會驗證它並將其包含在下一個區塊中。

  • 由於OP_RETURN 將交易輸出標記為可證明無法支出,因此不會創建新的代幣,也不會轉移資金。

  • 與OP_RETURN 相關的數據將永遠存儲在區塊鏈上。

但非常相似:

但非常相似:

首先,他們都是把數據寫在鏈上,思路都是把整個協議設計分為兩層:

  • 第一層是比特幣,把交易數據寫入區塊,但是由於包含OP_RETURN 的代碼,中間的數據不會被識別,但是這些數據會被另外一層識別;

  • 第二層是額外的協議,用來去解析專門放在某一個位置當中的數據的內涵,幫助用戶在比特幣鏈上去使用比特幣以外的資產;

其次,他們解決雙花問題的核心在於UTXO 不能被花費兩次:

  • 在Omni 時代,每一個USDT 它是染色的,附帶了其他一些資產,所以我們稱之為染色的USDT,當它被花費時,交易當中攜帶了一個OP_RETURN,包含裡面有完整的Omni 交易信息,這些信息告訴大家這筆資產被人完整地發到某一個UTXO 裡面,因為一筆UTXO 只能花費一次,所以也能夠保證UTXO 裡攜帶的這筆資產沒有被雙花

  • Ordinals 跟踪聰,而聰也只會在一個確定的UTXO 裡面,這個UTXO 只能被花費一次,也保證了和聰綁定的NFT 或者是BRC 20 只能花費一次。

一級標題

一級標題

3. RGB 是更好的資產發行協議

在很長一段時間裡,在Vitalic 還在運營Bitcoin Magazine 這個網站時候,包括他在內,社區許多人都嘗試去比特幣上發行額外的資產,Omnilayer 以及Counterparty 都是這個嘗試的結果,(在我們第4 期節目中,對這一類嘗試和努力做出了梳理)。

經過一段時間的努力之後,社區得出了一致得出的結論是:如果想使用比特幣的腳本去發行額外的資產,也就意味著需要所有節點去解析比特幣腳本里的額外資產的信息,在真正進入大規模應用,在速度、費用上缺陷十分明顯。

於是,Vitalic 放棄了在比特幣作為底層,另起爐灶,在2013 年年底寫出了以太坊白皮書。與此同時,有另一些人,他們沒有放棄比特幣,但是放棄把所有數據寫到比特幣鏈上,而只把數據最重要的部分上鍊,也就是像RGB 這樣的比特幣二層協議。

基於Peter Todd 在2017 年提出的客戶端驗證(client-side validation)和一次性密封條(single-use-seals)的概念,RGB 協議提出了一種更可擴展、更加隱私、更面向未來的解決方案,其核心的理念是,僅在必要的時候才使用比特幣區塊鏈,代幣轉移的驗證工作都從全鏈共識層中移除,放在鏈下,僅由接收支付的一方的客戶端來驗證,但是利用比特幣的去中心化網絡來防止雙花以及抗審查,展開來說,它有以下特徵:

一次性密封條和鏈下轉移:RGB 的基本設計是這樣的,代幣和一個比特幣UTXO 綁定,如果要轉移代幣,就需要花費這個UTXO,在花費這個UTXO 的時候,比特幣交易必須包含一個數據承諾,即RGB 的支付信息,包括輸入、代幣將被發送到哪個UTXO、資產的id、數量、花費的交易等等。

(文獻參考:https://www.btcstudy.org/2022/04/24/understanding-rgb-protocol/)

  • 如果你有一筆比特幣上的額外代幣要轉移,這些代幣和UTXO 綁定;

  • 要轉移這些代幣你就需要創建一筆RGB 交易以及一筆花費UTXO 的比特幣交易,並且這筆比特幣交易承諾了RGB 交易。

  • RGB 交易是把代幣從比特幣交易輸出1 轉移到比特幣交易C 的輸出2 。

  • 最終交易B 的輸出就是找零地址,減去礦工手續費後將剩餘資金發回給原來的所有者,同時也承諾了RGB 交易。

在這種設計中,比特幣的UTXO 的作用是裝載RGB 資產的一次性容器,要轉移資產,你只需要打開舊的容器、關上新的容器就好。

也即是說,在RGB 的交易當中,需要發起一筆交易時候,交易發起方在鏈下點對點地把沒有瑕疵的證明資產流轉順序的資料完整地發給交易對方,在鏈上,用戶花費攜帶的UTXO ,用OP_RETURN 輸出去承載這筆交易的這個哈希值,值得注意的是,相比Omni 協議會把完整的交易放上去,RGB 協議只放一個哈希值。

自主驗證:無論是Omnilayer 還是Ordinals,實際上都是通過UTXO 不能雙花的特質去保證比特幣上的額外資產的安全性,實際上RGB 也是基於這樣一個理念——讓用戶自主驗證特定UTXO 上合約的狀態,並且驗證所有合約狀態轉換都是安全與否,然後,用比特幣的UTXO 交易去激發一個智能合約系統。

舉個例子, Brutoshi 要給阿劍發送一筆資產時候,阿劍需要Brutoshi 提供流轉過程詳細記錄,來驗證確實有一筆資產通過一筆一筆的比特幣交易路由或者說中轉到了他手上,而這些資料也能夠讓阿劍向下一個人證明,這些資產確確實實是從某一個地方一路流轉到他手上的,這個驗證方式被稱之為自主驗證——流轉鏈條是沒有瑕疵的,接受者可以放心地接收資產,並且能夠支付給其他人。

抗審查:除此之外,RGB 不需要接收方給出明確的UTXO,而是給出UTXO 加一個混淆值,這樣保證了接收方的隱私性。同時,在流轉過程的話,使用零知識證明技術保證整個流轉過程當中它的數額不會曝光,比比特幣上的UTXO 更具有隱私性。

這也是基於Peter Tolder 一個非常激進的觀念,他認為曠工不應該知道一筆交易裡面的具體內容,只要去挖礦就行了,因為如果知道交易的內容,就會帶來審查的這個可能性。 RGB 繼承了這個理念——所有的RGB 資產只不過是被人為地附加到一個UTXO 中,因此,它在鏈上的這個他的鏈上的痕跡就是一筆普通的比特幣交易,礦工不需要知道交易裡面到底有沒有RGB 資產,礦工只需要挖比特幣交易就可以了。

一直以來,比特幣的隱私性是有限的,比如交易的轉賬金額是公開的,比特幣社區做出這樣的選擇,是認為貨幣量的可審計性會比交易的隱私性更加重要。

在我們4 月份舉辦的Ordinals 線下活動中,北美最大的礦池Luxor Mining 向我們表示,作為一家身在美國的公司他們需要符合美國法律的要求,會基於一些OFAC,對比如來自北朝鮮的創作者審查,因此,在一些極端情況下,完全的抗審查性也是必要的。

一級標題

一級標題

4. 比特幣的Layer 2

正文

圖片描述

正文

A. Rollup

正文

二級標題

正文

最典型比特幣狀態通道就是閃電網絡,其理念是在區塊鏈之外開通一條“綠色通道”,將大量高頻的、小額的交易在區塊鏈外進行,最終的結算數據放在鏈上,鏈下交易的確認和支付通道等問題,通過RSMC 和HTLC 等技術方式去解決。相比Rollup 等方案,它沒有一條獨立的鏈,而只有一個通道。

正文

二級標題

正文

閃電網絡主要解決BTC 結算吞吐量低、成本高的問題,但沒有解決BTC 原生應用構建不足的問題,因此,在同一時期,比特幣側鏈(Sidechain)的概念也被提出。簡單地說,就是開發者們就另外創造一條鏈,在這條鏈上做更多的智能合約或者是其他的運算執行。

正文

二級標題

正文

和狀態通道的想法有些類似,就是不需要所有的狀態轉換過程都在主鏈上的所有節點/礦工來通過重複計算的方式來驗證,只需要利用主鏈來保證承諾的安全性即可,主要項目包括:RGB、Taro 等。 RGB 等項目也會提供FT、NFT 的合約模板來支持一些合約的開發。

我們也能夠看到不同比特幣二層之間的組合,能夠給比特幣生態帶來更大的可能性,比如RGB+閃電網絡,前者帶來資產類別的擴展,後者來帶性能的拓展,在RGB協議中,使用閃電網絡充當鏈下的通道,在發行資產時,是一個性能得到極大提升的設計。

但如果跳出二層這個限制,對圍繞比特幣技術還可以這樣劃分:

一類叫做重新解釋層,比如Ordinals 和Omnilayer 以及BRC 20 ,這些其實都是在現有的主鏈上的交易,但是通過這些技術,重新定義或者說解釋了交易的含義,比如說讓Ordinals 一個NFT或者是一個FT 和一個聰綁定,又或者是Omnilayer 讓一筆資產和一個NFT 綁定,他們在比特幣主鏈上有較多的動作。

另一類叫做省略層,比如閃電網絡,只是把最終的結算或者是一些承諾信息寫入鏈上,以及利用比特幣的安全性,許多中間的交易斗在鏈下完成。

RGB 其實也是可以認為是兩種的一種結合,既用了比特幣網絡上的一些數據,同時也在鏈下做了許多客戶端驗證,為比特幣可擴展性的提升帶來了巨大的可能性。

不能否認的是,Ordinals 的出現以及比特幣一系列技術準備之後,我們認為比特幣未來生態的發展還是有極大的可能性。

【聯繫我們】

進聽友群微信:Cyberpunklechee

在小宇宙、喜馬拉雅、Podcast均可找到我們

Mempool Podcast
作者文库