這些技術里有一些較早的擴容方案正在重獲關注

作者ViaBTC Capital

背景

RGB 回應比特幣可擴充性與隱私性痛點的誕生

比特幣自 2009 年上線以來,其網路性能一直備受關注。 但比特幣每秒只能處理約 7 筆交易,無法支援智慧合約的擴展。 在隔離見證升級后,雖然比特幣區塊大小限制改為了交易數據區塊上限 1M 和見證數據區塊上限 3M,總大小 4M。 但這一上限至今未改變,隨著比特幣的影響力不斷增大,擴容問題凸顯。 擴容仍是比特幣生態面臨的核心問題之一,各種技術路線正在積極探索解決方案,目前比特幣的主要擴容方向有:

  • 側鏈技術,如 Liquid、Stacks 和 Rootstock;
  • 狀態通道,如閃電網路,可以使部分高頻交易轉移至鏈下;
  • 非升級式擴容,如 RGB 和比特幣腳本,不需要修改比特幣代碼;
  • 升級式擴容,如 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),所有節點驗證所有交易,節點之間傳輸所有交易資訊,全網共用統一的全域狀態。

全域共識模型所帶來的問題:

  • 可擴展性限制,使得驗證所有合約互動變得昂貴;
  • 高成本阻止了更多用戶參與運行節點,節點集中化;
  • 缺乏隱私,交易信息公開。

CSV,即「用戶端驗證」,只需要讓共識層保持對帳本事件的加密承諾就足夠了,將實際的事件資訊(帳本)存儲在區塊鏈之外。 這種方法源自 Peter Todd 的工作,他稱之為「客戶端驗證」。。 客戶端驗證這種方式把交易數據轉移到鏈下,鏈下存儲並驗證詳細資訊,只在鏈上提交最少的資訊。 而且交易數據在鏈下也僅在交易的發送者和接收者之間傳輸,例如在只有錢包、互動方需要知道合約數據的情況下進行驗證。

CSV 的特性:

  • 詳細的交易資訊在鏈下,並且只在客戶端進行驗證;
  • 僅在鏈上存儲這些交易信息的承諾;
  • 只驗證用戶必須知道的交易。

所以,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 的特点

可拓展性

  • 相比於其它將所有的邏輯都放在鏈上的競爭對手協定,CSV 把數據放在鏈下,降低成本和計算壓力;
  • 直接在比特幣上可用,無需改動比特幣,無需複雜的鏈上交易;
  • 支援閃電網路。

隱私性

  • 第三方無法看到 RGB 交易及其關聯的一次性密封條;
  • blinded UTXOs,UTXO 拼接一個隨機盲化秘密值之後的哈希值組成,支付方不知道資產發到哪裡。 只有當接受方在花費這資產的時候,新的接受方才可以驗證到;
  • 同時,還用了一種零知識證明機制 Bulletproof,擁有權人可以看到從創始狀態到自己的狀態這一路上用到的所有 UTXO,但他們看不到每一次狀態轉換中被轉移的資產數量。

RGB 的功能與豐富應用場景

支援合約(Schemas)

開發者可以使用 RGB 的 Schemas,它們是可作為特定用例範本的合約。

一些 RGB Schemas 的例子:

  • RGB20 發行可互換資產
  • RGB21 發行不可互換資產
  • RGB22 去中心化數位身份
  • RGB23 可審計數據的可驗證唯一歷史日誌
  • RGB24 去中心化全球域名系統
  • 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 也不是一條區塊鏈。

挑戰

  • 生態系統仍處於初期階段,雖然底層已經搭建好,但上面的基礎應用還不多,開發者工具和用戶發展可能需要一些時間;
  • 用戶端需要存儲更多數據,如果丟失用於驗證交易的鏈下數據,使用者也就無法再去花費,需要保存不僅僅是密鑰。 與此同時,與比特幣和其他全域共識系統不同,RGB 用戶端不需要看到和驗證全域發生的所有交易,只需關注與其錢包相關的交易。 因此,每個用戶端需要驗證的數據量大大減少,從而提高了整體系統的可擴充性。 在收到支付時需要驗證大量數據可能看起來是一個問題,因為驗證時間會拖慢支付體驗。 但是只有當資產交易歷史很長時才會成為問題,到時需要構建新的數據可用層,並允許用戶端自發地分享特定合約的狀態轉換數據,這樣未來的接收方可以提前開始驗證部分交易歷史;
  • 對於流行 CSV 代幣,大量使用最終會增加其所需要的驗證成本;
  • 社區驅動,依賴於團隊默默鑽研技術,進度比較慢,而且運營推廣也比較少;
  • 開發者學習曲線,除了需要瞭解比特幣知識,也需要學習 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 是一款外掛程式錢包。

參考資料

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

免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。