介紹
比特幣是目前流動性最好、最安全的區塊鏈。在銘文爆發後,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 智能合約的巨大進步。