背景
RGB回應比特幣可擴展性與隱私性痛點的誕生
比特幣自2009年上線以來,其網路性能一直備受關注。但比特幣每秒只能處理約7筆交易,無法支持智能合約的擴展。在隔離見證升級後,雖然比特幣區塊大小限制改為了交易數據區塊上限1M和見證數據區塊上限3M,總大小4M。但這一上限至今未改變,隨著比特幣的影響力不斷增大,擴容問題凸顯。擴容仍是比特幣生態面臨的核心問題之一,各種技術路線正在積極探索解決方案,目前比特幣的主要擴容方向有:
1、側鏈技術,如Liquid、Stacks和Rootstock;
2、狀態通道,如閃電網路,可以使部分高頻交易轉移至鏈下;
3、非升級式擴容,如RGB和比特幣腳本,不需要修改比特幣代碼;
4、升級式擴容,如Drivechain(BIP300/301)需要高比例的礦工支持,通過硬分叉比特幣實現擴容。
這些技術裏有一些較早的擴容方案正在重獲關注,如去年末流行的Nostr推動了閃電網路的採用,Ordinals也於年初迎來爆發。而 RGB作為是一個基於比特幣、閃電網路的圖靈完備、可擴展和隱私性強的智能合約方案,也在今年4月發佈了新版本v0.10。
RGB歷史
早在2016年,Peter Todd 還提出了這個一次性密封條(Single-use-seal)和客戶端驗證(Client-Side Validation)的想法。受到這些重要概念的啟發,RGB在2018年被提出。
2019年,核心開發 Orlovsky 開始推進RGB,並真正開發了許多最終成為RGB協議的部分。 在瑞士成立了LNP BP協會,以幫助提供與所有這些相關的標準。
2023年4月份,在進行大量地開發之後,RGB發佈v0.10。
設計概述
RGB如何實現可擴展性和隱私性:
客戶端驗證(Client-Side Validation)
目前大部分公鏈使用全局共識模型(Global Consensus),所有節點驗證所有交易,節點之間傳輸所有交易資訊,全網共用統一的全局狀態。
全局共識模型所帶來的問題:
1、可擴展性限制,使得驗證所有合約互動變得昂貴;
2、高成本阻止了更多用戶參與運行節點,節點集中化;
3、缺乏隱私,交易資訊公開。
CSV,即“客戶端驗證”,只需要讓共識層保持對帳本事件的加密承諾就足夠了,將實際的事件資訊(帳本)存儲在區塊鏈之外。這種方法源自Peter Todd的工作,他稱之為“客戶端驗證”。客戶端驗證這種方式把交易數據轉移到鏈下,鏈下存儲並驗證詳細資訊,只在鏈上提交最少的資訊。而且交易數據在鏈下也僅在交易的發送者和接收者之間傳輸,例如在只有錢包、互動方需要知道合約數據的情況下進行驗證。
CSV的特性:
1、詳細的交易資訊在鏈下,並且只在客戶端進行驗證;
2、僅在鏈上存儲這些交易資訊的承諾;
3、只驗證用戶必須知道的交易。
所以,RGB中對於資產轉入的驗證方式與比特幣支付中的驗證有很大不同。在比特幣中,節點持續下載來驗證區塊和記憶體池中的交易,以此即時掌握UTXO集合的最新狀態。在看到新交易時,只需要驗證其所有輸入是否在UTXO集合的最新狀態中就可以校驗其歷史的有效性。
而在RGB中,沒有一個全局網路廣播所有的交易來創建比特幣UTXO集合的等價物。這意味著在接收到資產轉入時,RGB客戶端不僅要驗證最近的狀態轉換是否有效,還需要對所有上溯到發行合約創世狀態的前序狀態轉換進行相同的驗證。所以RGB需要自底向上逐步驗證交易歷史,以防止雙花攻擊。
RGB通過僅驗證相關交易來提高可擴展性,同時也可能會出現類似數據可用性的問題(可能需要通過數據共用來優化支付驗證)。
基於比特幣的一次性密封條(Single-use-seal)
物理的一次性密封條是帶有獨特編號的塑膠扣,通常用於在存儲和運輸過程中檢測篡改,確保貨物箱子在運輸過程中沒有被打開。而數字的一次性密封條可以對消息進行密封,確保消息只能使用一次,它可以避免多次出售同一資產。
Bitcoin採用的是UTXO(Unspent Transaction Output)模型,即還沒有被用來支付的交易輸出,為了避免依賴可信實體來證明數字密封條的打開和關閉,可以使用比特幣的未花費交易輸出(UTXO)作為密封。UTXO在創建時可以看作關閉的密封,在花費時打開。由於比特幣共識規則,一個輸出只能花費一次,因此可以保證密封條只能打開一次。所以Single-use-seal用於將比特幣UTXO與鏈下合約狀態關聯,最終以承諾執行下一狀態轉換的鏈下RGB交易方式花費(關閉)。類似於現實世界中用於保護運輸容器的一次性物理封條,一次性密封條是一個獨特的對象,它可以精確地封閉一條資訊,防止重複消費。
我們用支票來做一個簡單的類比。我們可以簡單把UTXO看作是一連串支票的集合,每張支票上的金額不一樣。當你匯款給別人時,其實就是使用了一張尚未兌現的支票,換成了新的支票給別人,如果有餘額剩下也會同時生成新的支票給自己。而Single-use-seal則類似把一些資產流轉記錄印在了這張支票的附加資訊位置,利用支票只能兌換一次的限制,保證了資產不能重複流轉:
1、首先,Alice 發行了某種資產(例如資產名字USD Tether,代號USDT,總量1億枚),然後把這些資訊的承諾印在了在某張有效的支票A附加資訊位置(支票機不需要管附加資訊寫了什麼,支票正面寫個1元也可以,只要屬於Alice而且還沒兌現即可)。
2、當Alice要轉移資產給Bob(例如給Bob 1000萬枚,剩下9000萬枚還屬於Alice),那Alice需要兌現支票A,而且需要在支票A附加資訊位置寫上轉給支票B的1000萬枚(擁有者Bob )、轉給支票C擁有者9000萬枚(擁有者Alice,即剩下9000萬枚還屬於Alice)
3、Bob轉移資產給Dave的時候,同樣也是需要花掉支票B,在附加資訊位置注明支票D 1000萬枚(擁有者Dave)
4、之後每次轉移,都重複這個過程,原持有人將部分金額背書給新的接收者,接受者需要對照整個資產流轉的歷史進行驗證。所以整個資產轉移就像流通中的支票一樣,每次轉手都會開新支票,每張支票只能兌現一次,舊的支票(UTXO)則作廢,這確保了狀態只能向前轉換,不會回退,而且也不能兌現兩次。這樣通過鏈上的記錄,就可以可靠地反映數字資產的狀態變化。
RGB使用了上述基於比特幣的一次性密封條模型,這意味著當RGB交易發生時,發送方實際創建的是定義權利轉移的合約的狀態轉換(State transitions)。以Token為例,首先,合約的發行方設置了創世狀態,定義合約細節如資產名稱、總發行量和擁有發行權的UTXO。然後,隨著資產首次轉移,第一個UTXO的所有者可以創建狀態轉換,定義哪個新的UTXO將擁有該資產。這樣,RGB通過比特幣UTXO只能花費一次的屬性來實現狀態轉換,從而可靠地定義和跟蹤數字資產及相關權利的轉移和變更。
它將所有交易內容保留在比特幣之外,僅在交易的發送者和接收者之間傳輸,同時將這些數據的承諾錨定到比特幣的UTXO。當UTXO被消費後,它就無法再以同樣的方式再次被消費,這表明合約已經發生了改變。
RGB利用比特幣區塊鏈來防止雙花,具體做法是在花費擁有被轉移權利的UTXO的比特幣交易中提交每個RGB狀態轉換。一個比特幣交易中可以提交多個狀態轉換,同時每個狀態轉換只能在比特幣交易中提交一次(否則會造成雙花)。
為實現在一個提交中有多個狀態轉換,進行了多級聚合,再通過Taproot或OP_RETURN將其提交到比特幣交易。如果比特幣交易中有多個提交,只有第一個相關聯的RGB驗證規則,其他會被忽略,防止雙花。
RGB的特點
可拓展性
1、相比於其他將所有的邏輯都放在鏈上的競爭對手協議,CSV 把數據放在鏈下,降低成本和計算壓力;
2、直接在比特幣上可用,無需改動比特幣,無需複雜的鏈上交易;
3、支持閃電網路。
隱私性
1、第三方無法看到RGB交易及其關聯的一次性密封條;
2、blinded UTXOs,UTXO 拼接一個隨機盲化秘密值之後的哈希值組成,支付方不知道資產發到哪里。只有當接受方在花費這資產的時候,新的接受方才可以驗證到;
3、同時,還用了一種零知識證明機制Bulletproof,所有權人可以看到從創始狀態到自己的狀態這一路上用到的所有 UTXO,但他們看不到每一次狀態轉換中被轉移的資產數量。
RGB的功能與豐富應用場景
支持合約(Schemas)
開發者可以使用 RGB 的Schemas,它們是可作為特定用例範本的合約。
一些 RGB Schemas的例子:
1、RGB20 發行可互換資產
2、RGB21 發行不可互換資產
3、RGB22 去中心化數字身份
4、RGB23 可審計數據的可驗證唯一歷史日誌
5、RGB24 去中心化全球功能變數名稱系統
6、RGB25 發行收藏品資產
任何人都可以自由開發不同的應用模式,而無需徵求 RGB 開發者的許可。但是,預計大多數用例都可以通過幾個主要模式覆蓋
AluVM
RGB使用了特殊設計的基於register的RISC虛擬機,它是圖靈完備的,能夠以與現有基於區塊鏈的系統相同的可用性保證來操作全局狀態。類似以太坊的EVM,架構是在閃電網路上面嵌套一個RGB節點,然後RGB節點上嵌套一個RGB客戶端。
RGB如何與比特幣閃電網路深度融合
RGB可以通過Bifrost擴展與閃電網路介面,實現近乎即時結算,無需等待新的比特幣區塊被挖掘。
將特定代幣的支付通道連接到閃電網路,RGB資產可以實現與常規閃電網路付款一樣的用戶體驗和安全假設,確保低價、快速和穩定的支付,這將可能會給整個用戶、開發者和閃電節點運營商生態系統帶來好處。
和其他方案對比
RGB和TARO對比
TARO(現在改名為Taproot Assets),2022年4月,閃電網路開發商Lightning Labs完成7000萬美元B輪融資,推出由Taproot 支持的Taro協議。
RGB和TAR兩者都是基於CSV,設計思路類似,甚至有爭議稱Taro參考了RGB設計。不過目前看,Taro專注在代幣層面,而RGB則要實現智能合約功能。
RGB和其他比特幣方案對比
不同於基於BIP300、BIP301的Drivechain需要進行硬分叉,RGB相容所有現有的比特幣技術以及未來可能出現的比特幣軟分叉,並且不需要對基礎比特幣層進行任何更改。
不同於Ordinals把所有數據都放到鏈上,RGB 只需要把數據承諾放到鏈上,通過UTXO保障資金安全的情況,消耗的鏈上空間並不多,同時也可以直接接入閃電網路。
RGB和Rollup對比
Rollup是以太坊的擴展解決方案,用戶在以太坊的智能合約中存款並轉入二層之後,之後這些資產可以在同一Rollup的用戶之間進行轉賬,這些交易會定期聚合並提交到鏈上。
此外,RGB也不是一條區塊鏈。
挑戰
1、生態系統仍處於初期階段,雖然底層已經搭建好,但上面的基礎應用還不多,開發者工具和用戶發展可能需要一些時間;
2、客戶端需要存儲更多數據,如果丟失用於驗證交易的鏈下數據,用戶也就無法再去花費,需要保存不僅僅是密鑰。與此同時,與比特幣和其他全局共識系統不同,RGB客戶端不需要看到和驗證全局發生的所有交易,只需關注與其錢包相關的交易。因此,每個客戶端需要驗證的數據量大大減少,從而提高了整體系統的可擴展性。在收到支付時需要驗證大量數據可能看起來是一個問題,因為驗證時間會拖慢支付體驗。但是只有當資產交易歷史很長時才會成為問題,到時需要構建新的數據可用層,並允許客戶端自發地分享特定合約的狀態轉換數據,這樣未來的接收方可以提前開始驗證部分交易歷史;
3、對於流行CSV代幣,大量使用最終會增加其所需要的驗證成本;
4、社區驅動,依賴於團隊默默鑽研技術,進度比較慢,而且運營推廣也比較少;
5、開發者學習曲線,除了需要瞭解比特幣知識,也需要學習RGB的狀態變更和合約。
生態專案
DIBA
網站:https://diba.io/
DIBA是利用RGB智能合約的比特幣NFT市場。
Cosminmart
網站:https://www.cosminmart.com/
Cosminmart是一個基於RGB協議的生態系統,提供錢包、市場、Launchpad和流覽器等功能。
Mycitadel
網站:https://mycitadel.io/
Mycitadel錢包支持多簽、時間鎖、Taproot等功能。
Bitmask
網站:https://bitmask.app/
Bitmask是一款插件錢包。
關於ViaBTC
ViaBTC成立於 2016 年 5 月,已為全球130+個國家/地區超百萬用戶提供專業高效、安全穩定的數字貨幣挖礦服務,累計挖礦產值達數百億美元,是一家全球頂尖的綜合性數字貨幣礦池,提供 BTC、LTC和KAS等在內的十餘種數字貨幣挖礦服務,擁有礦池、交易所、錢包一站式全鏈條服務,致力於為全球用戶提供更豐富的配套工具、更穩定且高效的挖礦服務和更好的產品體驗。
參考資料
https://hackernoon.com/top-4-directions-of-bitcoin-ecosystem-scalability
https://docs.rgb.info/
https://github.com/RGB-WG/blackpaper/blob/master/README.md
https://docs.lightning.engineering/the-lightning-network/taproot-assets
https://docsend.com/view/he8x9erkjmphphvn


