2023年下半年,各類BTC 衍生協議的生態迅速發展。除了Ordinals 協議與BRC20 的再度爆火,Atomicals、Taproot Assets 等協議也受到了市場的廣泛關注。本文Beosin 將為大家詳細解說BTC 生態非常重要的一類資產發行協議- RGB 協定。
一、RGB 協定發展
RGB協議的作用是在閃電網路上為比特幣增加了智慧合約功能,基於零知識證明的狀態通道協議,允許用戶在鏈下進行隱私保護的交易。
RGB不是一個代幣協議,但它具備發行與管理多種高度可擴展、可編程和保密的資產的能力,或可以在金融以外的許多其他行業中發揮重要作用。其協議的發展經歷了多個重要階段,從最初的構思到目前為比特幣和閃電網路帶來智慧合約功能的RGB v0.10版本。
1.2016年,Giacomo Zucco基於Peter Todd的理念,提出了RGB協議的初步構想。
2.2017年,BHB Network推出了RGB協定原始版本,並獲得了Poseidon Group的支援。
3.2019年,Maxim Orlovsky和Giacomo Zucco成立了LNP/BP標準協會,推動RGB向實際應用發展,Maxim Orlovsky博士開始重新設計RGB協定。
4.2021年,該協會展示了RGB協定的圖靈完備虛擬機器(AluVM),RGB也開始在閃電網路上運作。
5. 2022年,推出了為Bitcoin和Lightning Network編寫RGB智慧合約的新語言Contractum及其新網站。
6. 2023年4月,發布了RGB v0.10版本,為比特幣和閃電網路帶來完全支援智慧合約的功能,標誌著RGB協定進入最為重要的發展階段。
二、RGB 協定設計邏輯
RGB協定的核心思想是圍繞著共識和鏈下資料儲存建構的。
首先,分散式系統最重要的價值是共識的維護,利用比特共識層只需要保留對帳本事件的簡短的加密提交(cryptographic commitments),證明特定資料存在但不透露實際資料內容的技術,通常透過哈希函數實現,僅在鏈上儲存這些提交去保證資料的真實性和完整性,進而減少了鏈上資料的負擔。
RGB設計的帳本資料儲存在鏈下,也就是說所有的合約資料和狀態轉換都保留在鏈下,而不是在區塊鏈上。利用單次使用密封和狀態轉換來追蹤和驗證智能合約的狀態,在不將全部資料儲存在鏈上的情況下,有效地處理和驗證智能合約的狀態和交易。
RGB的基礎層是比特幣區塊鏈,包括Nakamoto PoW共識和交易帳本。雖然不需要在鏈上儲存任何數據,但仍需要遵循現有的基礎設施,並利用比特幣交易作為這些承諾的儲存。
2.1 客戶端驗證
RGB智慧合約在客戶端驗證模式下,所有資料都將保留在比特幣交易之外,例如比特幣區塊鏈或閃電網路通道狀態,使該系統能夠在閃電網路之上運作,也為高階的協定可擴展性和隱私提供了基礎。
2.2 RGB 智能合約
RGB 智能合約的基本構成包括Genesis(創世)、State(狀態)和Transitions(轉換),每個部分承擔著不同的功能和角色:
Genesis(創世)
Genesis是智能合約的初始化聲明,它定義了合約的基本屬性和規則。這包括合約的類型、目的和任何初始設定。在程式碼中,genesis部分定義了合約的起始點,例如在一個驗證合約中,它可以指定初始的身份資訊。
State(狀態)
State代表了合約在任何給定時刻的當前狀態,是合約資料的即時快照,包括了所有的變數值和資產資訊。
Transitions(轉換)
Transitions是定義從一個狀態轉換到另一個狀態的規則。這些規則決定了狀態如何根據合約邏輯而變化。 op Revocation和op Transfer是轉換的例子,它們定義瞭如何從一個Identity狀態轉移到另一個,或者如何在代幣之間進行轉移。
透過這三個組成部分提供了一種方式來定義和執行各種操作和協議。 Genesis設定了基礎規則和參數,State維護了合約的當前訊息,而Transitions則規定了狀態之間的變化邏輯,共同構成了RGB智能合約的核心架構。
2.3 一次性密封(single-use-seals)
為了確保安全和有效率地管理資產轉移,同時保護用戶隱私。 RGB協議使用了「single-use-seals」的方法,這種方法允許將資產(如代幣)與比特幣的一個特定交易輸出綁定,使得每次資產轉移都需要「打開」一個舊的密封並“創建”一個新的密封。一次性封裝用於代表資產的所有權或合約狀態。每次狀態轉移或交易發生時,相關的封裝會被關閉並創建新的封裝,這樣做的好處是,每個密封只能使用一次,從而防止了資產的重複使用或雙重支付,確保了交易的安全性,進而確保資產的轉移不可竄改。
同時,由於這些操作是在客戶端進行的,而不是全部儲存在區塊鏈上,因此大大增強了用戶的隱私保護,並減少了對區塊鏈空間的佔用,提高了整體網路的效率和可擴展性。
single-use-seals的邏輯步驟:
1. 每個RGB合約的開始都是一個創世操作,這裡會定義初始狀態和相關的一次性封裝,代表了合約中定義的資產或權限的初始分配。
2. 在合約中,狀態(State)被用來表示目前資產或權限的配置。每個狀態都與一個一次性封裝相關聯,表示目前的所有權或權限。
3. 當需要轉移或改變資產或權限時,涉及到狀態的轉換(Transitions)。這個過程包括關閉目前的一次性封裝(表示舊的狀態)並建立新的封裝(代表新的狀態)。
4. 關閉一個封裝涉及驗證其完整性並標記為已使用,以防止重複使用。然後,基於合約規則建立新的封裝,以代表新的狀態。
5. 交易發生時,合約參與者需要驗證相關的一次性封裝是否有效,以確保交易的合法性。這個驗證過程是自動的,由RGB節點和參與的錢包協作完成。
三、RGB 協定的特性
RGB的特性體現在RGB智能合約的創新,以下為大家介紹一些關鍵點:
1. 模式(Schema)概念
RGB協定採用了模式(Schema)的概念,類似於物件導向程式設計中的類別。模式用於定義RGB資產的標準,方便錢包、交易所、瀏覽器和BTC節點支援RGB資產。在這個框架中,一個具體的RGB合約是某個模式的實例,由該模式的建構函數(「創世操作」)所創造。這種方法分離了合約開發者(模式開發者)和合約發行者的角色,使得後者無需具備程式設計或安全知識。
2. AluVM虛擬機
RGB協定也引進了AluVM虛擬機,這是一台圖靈完整的虛擬機,類似以太坊的EVM。它可以執行幾乎所有類型的計算,但受到操作步驟數的限制。 AluVM透過累積的計算複雜度度量來限制計算,類似於以太坊的gas消耗機制。
3. 合約定義範例
在合約定義方面,RGB協定使用特定的資料類型,如PgpKey,這些類型不是合約的直接組成部分,而是可以被多個合約共享。合約的狀態和操作,如Identity和Revocation,被定義為合約狀態的組成部分和可能的狀態轉換。
4. 合約實例和狀態轉換
合約實例化是透過將模式應用於具體情況來完成的,例如,meSatoshiNakamoto實現了DecentralizedIdentity模式,定義了初始狀態並將其分配給一次性密封。狀態轉換,如透過Revocation操作,涉及更新身分並將其指派給新的一次性密封。
5. 擴展合約功能
RGB協議允許擴展合約功能,例如添加IOU(I OWE YOU)代幣,在合約中表現為可擁有的狀態IOYTokens。此外,還有全域狀態,如IOYTicker和IOYName,這些是合約的全域屬性,不被任何一方直接擁有。
6. 狀態擴展的概念
狀態擴展的概念允許公眾參與合約的特定邏輯部分,例如透過聲明Burn的方式。狀態擴展操作允許任何人在不進行鏈上承諾的情況下創建狀態擴展,類似於未打包進區塊的比特幣交易。
7. 合約介面(Contract Interface)
標準化通訊:合約介面提供了與RGB節點交流的標準方式,要求它傳回有語義意義的狀態並創建操作。
類似於以太坊的ERC標準:這些介面類似於以太坊的ERC標準,通用的介面被稱為"RGBxx",作為獨立的LNP/BP標準定義。
8. 建立通用代幣介面範例
介面定義:定義了全域狀態(如Ticker和Name)和擁有的狀態(如Inflation和Asset),以及操作(如Issue和Transfer)。
介面實作:實作介面時,將特定模式的狀態和操作與介面綁定。例如,FungibleToken介面為DecentralizedIdentity模式實作了全域和擁有的狀態綁定。
四、RGB 協定應用
金融方面的應用:
1.用於創建代表公司或專案股份的通證,集中發行但透過去中心化的方式交易,提高市場流動性和透明度。
2. 管理貸款和債券,透過智慧合約實現自動化的貸款和債券發行和還款。
3. 創建運行在閃電網路上的穩定幣,並將這些穩定幣可以作為支付手段。
4. 創建去中心化交易所(DEX)。
5. 應用例如演算法過度抵押的穩定幣等AMM解決方案,為市場提供流動性和穩定性。
非金融領域的應用:
1. 用於管理自主身分解決方案,使個人能夠控制和管理他們的數位身分資訊。
2. 創建一個去中心化的全球名稱註冊系統,以便人們能夠註冊和管理網域名稱和其他網路識別碼。
3. 管理數位內容的所有權和許可權,包括版權和許可證。
4. 用於通證化藝術品,為藝術家和收藏家提供了一種新的數位所有權和交易平台。
5. 管理DAOs,以實現去中心化的決策和治理。
6. 用於建立可證明和可驗證的稽核日誌系統,以提高企業和專案的透明度和可信度。
五、目前RGB 協定的風險
1. 不穩定性
目前的RGB協定是首個完全支援智慧合約的版本,後續RGB協定可能會進行一些重大的更新或修改,這會導致目前開發的合約無法在後續版本安全、穩定地運作。 RGB的客戶端驗證節點也仍在更新中,還未有穩定的版本。
2. 複雜性
RGB協定的設計與實作都相當複雜,基於RGB協定開發的智慧合約需要考慮許多RGB協定的特性。例如,基於RGB協議發行的代幣,如果交易失敗或是沒有得到RGB節點的確認,那麼這些代幣不屬於任何UTXO,相當於被銷毀了,開發者和項目方需要仔細考慮這類情況對於項目代幣經濟的影響。
總結
RGB協定目前仍處於非常早期的階段。 RGB協定透過其獨特的模式定義、AluVM虛擬機、靈活的合約狀態管理和擴展機制,展現了其在BTC智能合約領域的創新,支援在比特幣網路和閃電網路上進行多種資產的發行和轉移。但目前RGB協定與閃電網路尚未完全相容,智能合約的開發與運作未有安全保障,用戶使用RGB協定時需留意風險。