RGB:基於比特幣構建的可擴展、保密的智能合約協議簡析
背景
自比特幣於2009年推出以來,其表現一直備受關注。由於每秒只能處理七筆交易,該網絡不允許可擴展的智能合約。SegWit升級將比特幣的區塊大小限制提高到4MB(1MB用於交易數據,3MB用於見證數據);然而,限制仍然存在。與此同時,隨著比特幣的影響力不斷增長,可擴展性挑戰變得更加急迫。可擴展性仍然是比特幣生態系統面臨的根本挑戰。如今,從業者正在探索不同方法的解決方案,主要包括:
- 側鏈,包括Liquid、Stacks、Rootstock等;
- 如閃電網絡這樣的狀態通道,可以在鏈下處理某些高頻交易;
- 如RGB和比特幣腳本等不可升級的擴展解決方案,這些方案不修改比特幣的代碼;
- 基於升級的擴展解決方案,包括Drivechain(BIP300/301),需要強大的礦工支持,並通過硬分叉實現可擴展性。
在不同的方法中,一些早期的擴展解決方案正重新受到關注。值得注意的是,2022年底爆紅的協議Nostr促進了閃電網絡的廣泛採用。同時,Ordinals在2023年初蓬勃發展。作為基於比特幣和閃電網絡的智能合約解決方案,提供圖靈完備性、可擴展性和強大的隱私保護,RGB於今年四月發布了新版本(v0.10)。
RGB的演進
RGB的起源可以追溯到2016年,當時Peter Todd引入了單次使用封印和客戶端驗證的概念。基於這些關鍵概念,RGB於2018年被提出。
2019年,核心RGB開發者Orlovsky帶頭開發RGB,並創建了許多最終構成RGB協議的組件。此外,LNP/BP協會在瑞士的成立有助於提供相關標準。
經過廣泛的開發努力,RGB於2023年4月發布了其v0.10版本。
關於RGB的設計
RGB通過以下方式實現可擴展性和保密性:
客戶端驗證
大多數現有的公共區塊鏈都採用全局共識模型運作,所有節點驗證所有交易,彼此共享交易信息,並維護統一的全局狀態。
然而,這種模型帶來了幾個挑戰,包括:
- 可擴展性限制,使驗證所有合約交互變得昂貴;
- 高成本導致節點運營集中化;
- 由於交易信息公開而缺乏隱私。
客戶端驗證(CSV)提出了一種替代方法:它只要求共識層履行與賬本事件相關的加密承諾,而實際的事件信息(賬本)則存儲在區塊鏈之外。這種源自Peter Todd工作的方法被稱為"客戶端驗證"。CSV將交易數據轉移到鏈下,詳細信息在鏈下存儲和驗證,只有最少的信息提交到區塊鏈上。此外,交易數據僅在發送方和接收方之間在鏈下傳輸。例如,在現實世界的交易中,只有當錢包和相關方要求訪問合約數據時才需要驗證。
CSV的主要特點:
- 詳細的交易信息存儲在鏈下,僅在客戶端進行驗證;
- 只有交易數據的承諾存儲在鏈上;
- 驗證僅適用於用戶必須了解的交易。
在RGB中,資產轉移的驗證機制與比特幣有顯著不同。在比特幣網絡中,節點始終下載和驗證區塊和內存池交易,這使它們能夠獲取UTXO集合的最新狀態。當遇到新交易時,比特幣驗證器通過驗證所有輸入是否存在於最新的UTXO集合中來檢查其歷史的有效性。
相反,RGB 不依賴於全球網絡廣播所有交易來創建等同於比特幣 UTXO 集的機制。這意味著在接收交易時,RGB 客戶端不僅需要驗證最後一次狀態轉換的有效性,還需要對發行合約中直至創世狀態的所有先前狀態轉換進行相同的驗證。RGB 中這種自下而上的交易歷史驗證也能防止雙重支付攻擊。
RGB 通過僅驗證相關交易來提高可擴展性。然而,這種方法可能會導致與數據可用性不佳相關的問題,這可能需要數據共享來優化支付驗證。
基於比特幣的一次性封印
實體一次性封印是帶有唯一編號的塑料封條,通常用於檢測存儲和運輸過程中的篡改。例如,它可以讓我們知道運輸過程中集裝箱的門是否被打開過。數字一次性封印將數字封印封閉在消息上,以確保它只能使用一次,這使得賣家無法重複出售同一財產。
與其使用受信任的實體來認證數字封印的開啟和關閉,我們可以使用比特幣的未花費交易輸出(UTXO)作為封印。UTXO 可以被視為一個封印,在創建時關閉,在花費時開啟。根據比特幣的共識規則,一個輸出只能被花費一次;因此,封印只能被開啟一次。通過這種方式,一次性封印被用來將比特幣的 UTXO 與鏈下合約狀態相關聯,從而通過鏈下 RGB 交易(關閉封印)實現下一個狀態轉換的執行。類似於用於保護運輸集裝箱的實體一次性封印,數字一次性封印是一個獨特的對象,它準確地封印一段信息以防止雙重支付。
以下是一個簡單的類比:我們可以將UTXO視為一系列不同金額的支票。當進行支付時,你實際上是用一張未兌現的支票來支付給某人。此外,支票的剩餘餘額將以新支票的形式返還給你。在這種情況下,單次使用的印章會在支票的附加信息欄中添加某些轉賬記錄。由於支票只能兌現一次,這種方法可以防止雙重支付。
讓我們看看這個過程如何在Alice、Bob和Dave之間運作:
- 首先,Alice發行了一種RGB資產(例如,USDT Tether或USDT),總供應量為1億,並在一張有效支票(支票A)的附加信息欄中添加了承諾信息。支票打印機不需要考慮這些附加信息,支票A可以是任何面值,只要它屬於Alice且尚未兌現即可。
- 當Alice想要向Bob轉賬1000萬USDT時,她需要兌現支票A,並在附加信息欄中註明1000萬USDT將轉到一張屬於Bob的新支票(支票B),而剩餘的9000萬USDT將轉到另一張屬於Alice的新支票(支票C)。
- 如果Bob想要向Dave轉賬1000萬USDT,他需要兌現支票B,並在附加信息欄中註明1000萬USDT將轉到一張屬於Dave的新支票(支票D)。
- 每次後續轉賬都重複相同的過程。具體而言,前一個持有人將部分金額背書給新的接收者,而接收者則驗證整個資產轉賬歷史。類似於流通中的支票,每次轉賬都會創建一張新支票,每張支票只能兌現一次(UTXO)。同時,舊支票(UTXO)變為無效,確保狀態只能向前移動而不能倒退,這也防止了雙重支付。通過這種方式,鏈上記錄可靠地反映了加密資產的狀態變化。
RGB 使用上述基於比特幣的單次使用封印模型,這意味著當 RGB 交易發生時,發送方會創建定義所轉移權利的合約狀態轉換。讓我們以代幣為例。首先,合約的發行方設置初始狀態,定義合約細節,如資產名稱、總供應量和具有移動供應量權利的 UTXO。然後,當資產首次被轉移時,第一個 UTXO 的所有者可以創建一個狀態轉換,定義哪個新的 UTXO 將擁有該資產。RGB 通過利用 UTXO 只能被花費一次的機制來實現狀態轉換,這使得它能夠可靠地定義和追蹤加密資產的轉移和所有權權利的變化。
RGB 將所有交易信息保留在比特幣網絡之外,僅在發送方和接收方之間傳輸。同時,承諾數據被錨定到比特幣 UTXO。一旦 UTXO 被花費,它就無法再以相同方式被花費,表示合約發生了變化。
RGB 利用比特幣區塊鏈來防止雙重支付,這是通過將每個 RGB 狀態轉換提交到花費擁有被移動權利的 UTXO 的比特幣交易中來實現的。多個狀態轉換可以包含在單個比特幣交易中,但每個狀態轉換只能提交一次(否則將可能發生雙重支付)。為了能夠在一個承諾中包含多個狀態轉換,狀態轉換會被多次聚合,然後通過 Taproot 或 OP_RETURN 提交到比特幣交易中。如果一個比特幣交易中存在多個承諾,只有第一個承諾對 RGB 驗證規則有效,其他的將被忽略,使任何雙重支付的嘗試都變得毫無意義。RGB 的主要特點
可擴展性
- 與將所有邏輯保留在鏈上的替代協議相比,CSV將數據保留在鏈外,從而降低成本並減輕計算負擔;
- RGB可在比特幣上直接使用,無需修改代碼或進行複雜的鏈上交易;
- RGB支持閃電網絡。
隱私性
- 第三方無法觀察RGB交易或其單次使用印章;
- RGB具有混淆UTXO的功能。混淆UTXO由UTXO與隨機混淆密鑰的連接哈希組成。通過這種方式,發送方不知道資產去向,而新接收方只有在花費資產時才能驗證混淆的UTXO;
- RGB還使用了一種名為Bulletproof的零知識機制。在此機制下,資產所有者能夠看到之前擁有該資產的所有UTXO,但無法看到每次狀態轉換中轉移的資產數量。
RGB的多功能性和使用案例
模式
發行者可以使用RGB模式,這些模式充當可用於針對特定用例的合約模板。
以下是一些例子:
- RGB20 可替代資產發行
- RGB21 非同質化資產發行
- RGB22 去中心化數字身份
- RGB23 可審核數據的可驗證唯一歷史記錄
- RGB24 去中心化全球域名系統
- RGB25 收藏品資產發行
任何人都可以自由開發適用於不同應用的模式,無需向RGB開發者尋求許可。然而,預計大多數用例可由幾個主要模式涵蓋。
AluVM
RGB 採用 AluVM,這是一種專門設計的基於寄存器的 RISC 虛擬機。AluVM 是圖靈完備的,可以以與現有區塊鏈系統相同的可用性保證來操作全局狀態。與 EVM 類似,AluVM 具有一種架構,將 RGB 節點嵌套在閃電網絡之上,在 RGB 節點上容納 RGB 客戶端。
完全兼容閃電網絡
通過將特定代幣的支付通道連接到閃電網絡,RGB 資產可以提供與常規閃電網絡支付相同的用戶體驗和安全假設。這確保了低成本、快速和穩定的支付,可能會使整個生態系統受益,包括用戶、開發者和閃電節點運營商。
與其他解決方案的比較
RGB 對比 TARO
TARO(現為 Taproot Assets)是由 Lightning Labs 在 2022 年 4 月推出的一個基於 Taproot 的 Taro 協議,該公司在 B 輪融資中籌集了 7000 萬美元。
RGB 和 TARO 都建立在 CSV 之上。由於兩者設計相似,有人甚至認為 TARO 從 RGB 中汲取了靈感。然而,現在看來它們專注於不同的方面:TARO 專注於代幣,而 RGB 旨在實現智能合約功能。
與其他比特幣解決方案的比較
與基於 BIP300 和 BIP301 並需要硬分叉的 Drivechain 不同,RGB 兼容現有的比特幣技術和潛在的未來軟分叉,無需在比特幣基礎層進行修改。
Ordinals 將所有數據提交到區塊鏈,而 RGB 只將數據承諾保留在鏈上。鑑於 UTXO 提供的安全性,RGB 消耗最少的鏈上空間,能夠無縫集成到閃電網絡中。
RGB 對比 Rollup
Rollup 是一種以太坊擴展解決方案,允許用戶將資金存入以太坊的智能合約,然後與同一 Rollup 中的其他用戶進行交易。這些交易會定期聚合並提交到區塊鏈。
- 此外,RGB 不是一個獨立的區塊鏈。挑戰RGB 生態系統仍處於初期階段。儘管基礎設施已經就緒,但生態系統目前只提供少量基本應用,RGB 可能需要一段時間來擴展其開發者工具和用戶群。
- RGB 客戶端存儲大量數據,如果用於驗證的鏈下數據丟失,將無法進行支出。因此,不僅要存儲密鑰。此外,與比特幣和其他全球共識系統不同,RGB 客戶端無需查看或驗證全球所有交易。相反,它們只需驗證與其錢包相關的交易。這大大減少了每個客戶端必須驗證的數據量,使整個系統更具可擴展性。雖然在收到付款時驗證大量數據可能看似有問題,因為緩慢的驗證意味著緩慢的交易,但只有在交易歷史冗長時才會成為問題。當這種情況發生時,將需要新的數據可用性層,允許客戶端自願共享特定合約的狀態轉換數據。這樣,未來的接收者可以提前開始驗證部分交易歷史。
- 對於熱門的 CSV 代幣,廣泛採用可能會提高驗證成本。
- RGB 是社區驅動的開發,依賴於團隊的勤奮研究,這意味著進展緩慢和市場推廣有限。
開發者學習曲線:除了比特幣知識外,開發者還必須了解 RGB 的狀態轉換和合約。
生態系統項目
DIBA
網站: https://diba.io/
DIBA 是一個使用 RGB 智能合約協議的比特幣 NFT 市場。
Cosminmart
網站: https://www.cosminmart.com/
Cosminmart 是基於 RGB 協議的生態系統,提供包括錢包、市場、Launchpad 和瀏覽器等功能。
Mycitadel
Mycitadel 具有廣泛的功能,包括多重簽名、時間鎖定支出條件、Taproot 等。
Bitmask
Bitmask 是一個錢包擴展程序。
關於 CoinEx
CoinEx 成立於 2017 年,是一家致力於簡化加密貨幣交易的全球加密貨幣交易所。該平台為超過 200 多個國家和地區的 500 多萬用戶提供一系列服務,包括現貨和保證金交易、期貨、掉期、自動做市商(AMM)以及金融管理服務。CoinEx 最初的創立目的是為了創造一個平等和互相尊重的加密貨幣環境,致力於通過提供易於使用的產品和服務來打破傳統金融的障礙,使加密貨幣交易對每個人都變得更加便捷。
參考資料
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