UTXO 綁定:詳解 BTC 智能合約方案 RGB、RGB++ 和 Arch Network
介紹
比特幣是目前流動性最好且最安全的區塊鏈。在銘文爆發後,BTC 生態吸引了大量開發者湧入,他們很快關注到了 BTC 的可編程性問題與擴容問題。通過引入不同的思路,如 ZK、DA、側鏈、rollup、restaking 等方案,BTC 生態的繁榮正迎來全新高點,俨然已經成為本輪牛市的主線劇情。
然而,在這些設計中,許多都延續了 ETH 等智能合約的擴容經驗,且必須依賴一個中心化的跨鏈橋,這是系統的薄弱點。少有方案是基於 BTC 本身的特點設計的,這與 BTC 本身的開發者體驗並不友好有關。由於一些原因使得它沒法像以太坊一樣運行智能合約:
- 比特幣的腳本語言為了安全性而限制了圖靈完備性,這使得沒法像以太坊一樣執行智能合約。
- 同時比特幣區塊鏈的存儲是針對簡單的交易而設計,沒有對複雜的智能合約進行優化。
- 最重要的是比特幣沒有虛擬機來運行智能合約。
2017 年隔離見證 (SegWit) 的引入增加了比特幣的區塊大小限制;2021 年的 Taproot 升級使得批量簽名驗證成為可能,從而更輕鬆、更快速地處理交易(解鎖原子交換、多重簽名錢包和有條件付款)。這都使的比特幣上的可編程性成為可能。
2022 年,開發者 Casey Rodarmor 提出了他的"Ordinal Theory",概述了聰的編號方案,可以將圖像等任意數據放入比特幣交易中,為直接在比特幣鏈上嵌入狀態信息和元數據開闢了新的可能性,這對於需要可訪問和可驗證狀態數據的智能合約等應用程序來說,開闢了一條新的思路。
目前,大多數擴展比特幣編程性的項目依賴於比特幣的二層網絡(L2),這使得用戶必須信任跨鏈橋,成為L2獲取用戶和流動性的一大挑戰。此外,比特幣目前缺乏原生的虛擬機或可編程性,無法在無需額外信任假設的情況下實現L2與L1的通信。
RGB、 RGB++和Arch Network都嘗試從 BTC 原生屬性出發,增強比特幣的可編程性,通過不同的方法提供智能合約和複雜交易的能力:
- RGB 是一種通過鏈下客戶端驗證的智能合約方案,智能合約的狀態變化被記錄在比特幣的 UTXO 中。雖然具有一定的隱私優勢,但使用起來繁瑣,且缺乏合約的可組合性,目前發展非常緩慢。
- RGB++ 是 Nervos 在 RGB 的思路下的另一條擴展路線,依然基於 UTXO 綁定,但通過將鏈本身作為一個具備共識的客戶端驗證者,這提供了一種元數據資產跨鏈的解決方案,並允許其支持任意 UTXO 結構鏈的轉移。
- Arch Network 為 BTC 提供了一個原生的智能合約方案,創建了一個 ZK 虛擬機和對應的驗證者節點網絡,通過聚合交易將狀態變化與資產階段記錄在 BTC 交易中。
RGB
RGB 是 BTC 社區早期的智能合約擴展思路,其通過 UTXO 封裝的方式記錄狀態數據,為後續 BTC 原生擴容提供了重要思路。
RGB採用鏈下驗證方式,將代幣轉移的驗證從比特幣的共識層移到鏈下,由特定交易相關的客戶端進行驗證。這種方式減少了對全網廣播的需求,增強了隱私和效率。然而,這種隱私增強方式也是一把雙刃劍。通過僅讓和特定交易相關的節點參與驗證工作,雖然增強了隱私保護,但也導致第三方不可見,使得實際操作過程複雜且難以開發,用戶體驗較差。
並且,RGB引入了單次使用密封條的概念。每個UTXO只能被花費一次,相當於在創建UTXO時上鎖,在花費它時解鎖。智能合約的狀態通過UTXO封裝並通過密封條管理,從而提供了一種有效的狀態管理機制。
RGB++
RGB++ 是 Nervos 在 RGB 的思路下的另一條擴展路線,依然基於 UTXO 綁定。
RGB++ 利用圖靈完備的 UTXO 鏈(例如 CKB或其他鏈)來處理鏈下數據和智能合約,進一步提升了比特幣的可編程性,並通過同構綁定BTC來保證安全性。
RGB++採用圖靈完備的UTXO鏈。通過使用像CKB這樣的圖靈完備UTXO鏈作為影子鏈,RGB++能夠處理鏈下數據和智能合約。這種鏈不僅可以執行複雜的智能合約,還可以與比特幣的UTXO進行綁定,從而增加了系統的編程性和靈活性。此外,比特幣的UTXO和影子鏈的UTXO同構綁定,確保了狀態和資產在兩條鏈之間的一致性,從而保證了交易的安全性。
除此之外,RGB++不僅擴展到所有圖靈完備的UTXO鏈,不再局限於CKB,從而提升了跨鏈互操作性和資產流動性。這種多鏈支持允許RGB++與任何圖靈完備的UTXO鏈結合,增強了系統的靈活性。同時,RGB++通過UTXO同構綁定實現無橋跨鏈,與傳統的跨鏈橋不同,這種方式避免了"假幣"問題,確保了資產的真實性和一致性。
通過影子鏈進行鏈上驗證,RGB++簡化了客戶端驗證過程。用戶只需檢查影子鏈上的相關交易,即可驗證RGB++的狀態計算是否正確。這種鏈上驗證方式不僅簡化了驗證過程,還優化了用戶體驗。由於使用圖靈完備的影子鏈,RGB++避免了RGB複雜的UTXO管理,提供了更加簡化和用戶友好的體驗。
Arch Network
Arch Network 主要由 Arch zkVM 和 Arch 驗證節點網絡組成,利用零知識證明 (zk-proofs) 和去中心化驗證網絡確保智能合約的安全和隱私,比 RGB 更加易用,並沒有像 RGB++ 一樣需要另一條 UTXO 鏈進行綁定。
Arch zkVM使用RISC Zero ZKVM執行智能合約並生成零知識證明,由去中心化的驗證節點網絡進行驗證。該系統基於UTXO模型運行,將智能合約狀態封裝在State UTXOs中,以提高安全性和效率。
Asset UTXOs則用於代表比特幣或其他代幣,並可通過委託的方式進行管理。Arch 驗證網絡通過隨機選出的leader節點對ZKVM內容進行驗證,並使用FROST簽名方案聚合節點簽名,最終將交易廣播到比特幣網絡。
Arch zkVM 為比特幣提供了一個圖靈完備的虛擬機,能夠執行複雜的智能合約。每次智能合約執行後,Arch zkVM 會生成零知識證明,這些證明用於驗證合約的正確性和狀態變化。
Arch 也使用了比特幣的 UTXO 模型,狀態和資產被封裝在 UTXO 中,通過單次使用的概念進行狀態轉換。智能合約的狀態數據被記錄為 state UTXOs,而原數據資產被記錄為 Asset UTXOs。Arch 確保每個 UTXO 只能被花費一次,從而提供安全的狀態管理。
Arch 雖然沒有創新區塊鏈結構,但也需要一個驗證節點網絡。在每個 Arch Epoch 期間,系統會根據權益隨機選擇一個Leader節點,Leader節點負責將收到的信息傳播到網絡內的所有其他驗證者節點。所有 zk-proofs 都由去中心化的驗證節點網絡進行驗證,確保系統的安全性和抗審查性,並生成簽名給Leader節點。一旦交易由所需數量的節點簽署,就可以在比特幣網絡上對廣播。
結論
在BTC可編程性設計方面,RGB、RGB++ 和 Arch Network各有特色,但都延續了綁定 UTXO 的思路,UTXO 的僅一次使用的鑑權屬性更適合智能合約用於記錄狀態。
但其劣勢也非常明顯,即糟糕的用戶體驗,與 BTC 一致的確認延遲與低性能,即只擴展了功能,但沒有提升性能,這在 Arch 與 RGB 中較為明顯;而 RGB++ 的設計雖然通過引入更高性能的 UTXO 鏈提供了更好的用戶體驗,但也提出了額外的安全性假設。
隨著跟多開發者加入 BTC 社區,我們會見到更多的擴容方案,如 op-cat 的升級提案也在積極討論中。而切合 BTC 原生屬性的方案是需要重點關注的,UTXO 綁定方法是不升級 BTC 網絡的前提下,擴展 BTC 編程方式的最有效方法,只要能解決好用戶體驗問題,將是 BTC 智能合約的巨大進步。