在比特幣生態中,各種擴展解決方案如雨後春筍般湧現,以應對比特幣網絡所面臨的諸多挑戰。其中,閃電網絡(Lightning Network)通過巧妙構建的鏈下支付通道,來解決比特幣交易 “又貴又慢” 的痛點。與此同時,RGB 和 RGB++ 等協議則將目光投向了另一個重要領域 — — 在比特幣一層網絡上發行資產,並拓展比特幣的可編程性。
RGB 和 RGB++ 協議的核心基石是一次性密封(Single-Use-Seal)和客戶端驗證(Client-side Validation, CSV)技術,最早由著名的 Bitcoin Core 早期開發者 Peter Todd 在 2016 年提出。這篇文章,我們將詳細介紹一次性密封和客戶端驗證技術,以及 RGB 和 RGB++ 協議的不同之處。
一次性密封和客戶端驗證#
想像一下,你正在通過物流寄送一個裝有珍貴貨物的集裝箱。為確保集裝箱在運輸過程中不被擅自打開,你可能會使用到一種特殊的封條:一次性密封條。這種帶有獨特編號的塑料扣密封條一旦被拆開,就無法復原,從而有效防止集裝箱被暗中打開。
圖:帶有獨特編號的塑料扣一次性密封條;來源:https://petertodd.org/2016/commitments-and-single-use-seals#single-use-seals
在數字世界中,我們同樣需要這樣的 “密封” 機制來保護信息或者資產。傳統的電子密封條往往依賴於中心化的可信實體來驗證其狀態,但在去中心化的區塊鏈世界裡,我們追求的是無需信任的解決方案。那么,如何在沒有中心化權威的情況下實現可靠的電子密封呢?答案就藏在比特幣的 UTXO 模型中。
UTXO,全稱為未花費的交易輸出(Unspent Transaction Output),是比特幣的基本組成單元。每個 UTXO 都包含兩個關鍵信息:它自身的面額,以及一個決定如何花費這筆資金的鎖定腳本。比特幣的 UTXO 模型設計和共識規則確保了每個 UTXO 只能被花費一次。 為了方便理解,我們可以簡單地把每個 UTXO 想像成一個小型保險箱,裡面裝著一定數量的比特幣。每個保險箱只能被打開一次,打開後裡面的比特幣就會被取出,而保險箱本身則會被銷毀。這種設計與一次性密封條的特性不謀而合:創建 UTXO 就像是封上密封條,而花費 UTXO 則相當於拆開密封條。
比特幣通過久經時間檢驗的工作量證明(PoW)共識機制來防止 “雙花(即一個 UTXO 被重複花費多次)”,保證用戶資產的安全性。所以,使用 UTXO 作為一次性密封條的另一個顯著優勢,是它能夠 100% 繼承比特幣區塊鏈的安全性。
RGB、RGB++ 等比特幣一層資產發行協議巧妙地利用了 UTXO 的這一特性,將其視為資產信息和交易信息的容器。這些信息以 Commitment(承諾)的形式附著在特定的比特幣 UTXO 上。當需要更新相關信息時,必須花費這個 UTXO,並在新的交易中指定更新後的資產信息所附著的新 UTXO。
然而,比特幣腳本的局限性使得無法直接在比特幣鏈上通過編程實現除 BTC 之外的資產的校驗。 為解決這一棘手問題,客戶端驗證(CSV)模式應運而生。在這種模式下,用戶需要自行驗證資產的有效性和交易的合法性。
RGB 和 RGB++:兩種路徑,一個目標#
RGB 和 RGB++ 都是建立在一次性密封和客戶端驗證基礎上的比特幣一層資產發行協議,但它們在實現方式上各有特色。
RGB 由 Maxim Orlovsk 領導的 LNP/BP 標準協會主導,旨在打造一個基於比特幣的圖靈完備、可擴展且隱私性強的智能合約方案。RGB++ 則是由 Nervos CKB 聯合創始人 Cipher 於今年 2 月份提出,並於 4 月初部署到主網。7 月,RGB++ 進一步升級為 RGB++ Layer,致力於為所有 UTXO 鏈帶來同構綁定、智能合約能力和無橋跨鏈等功能。
** 從用戶的角度看,兩者的主要區別在於驗證機制。**RGB 要求用戶自己運行客戶端進行驗證,這有點像讓每個人都成為銀行的出納員。RGB++ 則借助圖靈完備的 UTXO 區塊鏈(如 Nervos CKB)來進行驗證,相當於聘請了一位專業的會計師來處理複雜的賬目,當然如果用戶不信任會計師,也是可以選擇自行驗證的。
讓我們通過一個具體的轉賬例子來說明這兩種協議的工作流程:
假設 Alice 擁有 100 枚基於 RGB 協議的 TEST 代幣,她想轉賬 40 枚給 Bob 作為生日禮物,其流程如下:
- Bob 首先需要開具一張電子發票,並將其發送給 Alice(這個步驟類似於閃電網絡中的交易流程)。
- Alice 收到並檢查 Bob 的發票後,生成一筆 RGB 交易,將 40 枚 TEST 代幣轉給 Bob。同時,Alice 還需要從她的本地客戶端歷史數據中,篩選出與這些 TEST 代幣相關的所有歷史記錄,以證明她對這些代幣的所有權。Alice 隨後將新的轉賬交易和所有權證明材料一並發送給 Bob 進行驗證。
- Bob 收到後,會仔細檢查每一枚 TEST 代幣及其歷史,確保它們是真實有效的。檢查無誤後,Bob 會生成一個 “確認簽名” 並返回給 Alice。
- Alice 收到 Bob 的確認簽名後,將這筆 RGB 交易對應的 Commitment(承諾)廣播到比特幣區塊鏈上。
如果 Alice 轉給 Bob 的是 40 枚基於 RGB++ 協議的 TEST 代幣,過程會簡單得多:
- Bob 只需將自己的 BTC 地址發給 Alice(如果 Alice 已經知道,這步可以跳過)。
- Alice 直接通過錢包將 40 枚 TEST 代幣轉給 Bob。
在比特幣區塊鏈上,這兩種交易都表現為 Alice 花費了一個關聯著 100 枚 TEST 代幣的 UTXO #1,並生成了兩個新的 UTXO:一個關聯著 40 枚 TEST 代幣的 UTXO #2(轉給 Bob)和一個關聯著 60 枚 TEST 代幣的 UTXO #3(Alice 的找零)。
區別在於,RGB 協議中,UTXO #1、UTXO #2、UTXO #3 關聯的 TEST 代幣信息需要通過 RGB 客戶端解析出來和驗證。而在 RGB++ 協議中,這些 UTXO 分別被同構綁定到 CKB 區塊鏈上的 Cell #1、Cell #2、Cell #3(Cell 是增強版的 UTXO),TEST 代幣信息直接存儲在 Cell 中,驗證工作由 CKB 區塊鏈的礦工完成,無需 Bob 自己來執行(當然,他也可以選擇自己驗證)。
使用圖靈完備的 UTXO 區塊鏈(比如 Nervos CKB)來替代客戶端驗證,不僅簡化了用戶操作,也給 RGB++ 帶來了其他好處, 比如它解決了 RGB 面臨的客戶端數據孤島問題、無主合約問題、P2P 網絡問題,等等。
結語#
一次性密封和客戶端驗證技術的創新應用,為比特幣網絡帶來了更多可能性。RGB 和 RGB++ 作為這一技術的傑出代表,正在為比特幣生態系統開闢新的道路。它們不僅擴展了比特幣的功能,還為資產發行和智能合約的實現提供了安全、高效的解決方案。
讓我們共同期待 RGB、RGB++ 以及未來可能湧現的其他創新協議,進一步拓展比特幣的疆界!
參考資料: