作者:Trustless Labs,來源:作者推特@TrustlessLabs
本文介紹了三種比特幣智慧合約方案#RBG、RBG++和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的通訊。
Arch Network、RGB 和RGB++ 都嘗試從BTC 原生屬性出發,增強比特幣的可編程性,透過不同的方法提供智慧合約和複雜交易的能力:
• RGB 是一種透過鏈下用戶端驗證的智慧合約方案,智慧合約的狀態變化被記錄在比特幣的UTXO 中。雖然具有一定的隱私優勢,但使用起來繁瑣,且缺乏合約的可組合性,目前發展非常緩慢。
• RGB++ 是Nervos 在RGB 的思路下的另一條擴展路線,依然基於UTXO 綁定,但透過將鏈本身作為一個具備共識的客戶端驗證者,這提供了一種元數據資產跨鏈的解決方案,並允許其支援任意UTXO 結構鏈的轉移。
• Arch Network 為BTC 提供了一個原生的智能合約方案,創建了一個ZK 虛擬機和對應的驗證者節點網絡,透過聚合交易將狀態變化與資產階段記錄在BTC 交易中。
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節點。一旦交易由所需數量的節點簽署,就可以在比特幣網路上對廣播。
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管理,提供了更簡化且使用者友好的體驗。
結論
在BTC可程式設計方面,RGB、RGB++ 和 Arch Network各有特色,但都延續了綁定UTXO 的思路,UTXO 的僅一次使用的鑑權屬性更適合智能合約用於記錄狀態。
但其劣勢也非常明顯,即糟糕的用戶體驗,與BTC 一致的確認延遲與低性能,即只擴展了功能,但沒有提升性能,這在Arch 與RGB 中較為明顯;而RGB++ 的設計雖然通過引入更高效能的UTXO 鏈提供了更好的使用者體驗,但也提出了額外的安全性假設。
隨著跟多開發者加入BTC 社區,我們會見到更多的擴容方案,如op-cat 的升級提案也在積極討論中。而切合BTC 原生屬性的方案是需要重點關注的,UTXO 綁定方法是不升級BTC 網路的前提下,擴展BTC 程式設計方式的最有效方法,只要能解決好用戶體驗問題,將是BTC 智能合約的巨大進步。