WEEX 唯客博客, 作者:NingNing 前言 第4輪比特幣減半周期中,Ordinals協議以及類似協議的爆髮式採用,讓加密行業意識到基於比特幣L1層發行資產與交易資產對比特幣主網共識安全和生態發展的正外部性價值,可謂是比特幣生態的「Uniswap時刻」。 比特幣可編程性的進化與迭代,是比特幣社區意見市場治理的結果,而非為了BTC的Holder、為了區塊空間的Builder等等目的論所驅動的。 當下,通過增強比特幣的可編程性進而增加比特幣主網區塊空間的使用率,成為比特幣社區共識的新設計空間。 與以太坊和其他高性能公鏈不同,為了保證UTXO集的簡潔性和輕量化,比特幣可編程性的設計空間是高度受限的,基本約束在如何使用腳本和OP Code操作UTXO。 經典的比特幣可編程性方案有狀態通道(閃電網路)、客戶端驗證(RGB)、側鏈(Liquid Network、Stacks、RootSock等)、CounterParty、Omni Layer、Taproot Assets、DLC等等。2023年以來新興的比特幣可編程性方案有Ordinals、BRC20、Runes、Atomicals、Stamps等等。 在銘文第二波浪潮結束之後,新一代比特幣可編程性方案等等紛紛湧現,如CKB的UTXO同構綁定方案、EVM兼容比特幣L2方案、DriveChain方案等等。 與EVM兼容比特幣L2方案相比,CKB(Common Knowledge Base)的比特幣可編程性方案,是比特幣可編程性現代設計空間中一個原生的、安全的、不引入社會信任假設的解決方案。而與DriveChain方案相比,它不要求比特幣協議級別的任何變動。 在可預計的未來,比特幣可編程性的成長曲線將經歷一個加速增長階段,比特幣生態的資產、用戶、應用將隨之迎來一波玄武紀大爆發,CKB生態的UTXO Stack將為新湧入的比特幣開發者提供利用模塊化堆棧構建協議的能力。另外,CKB 正在探索將閃電網路與UTXO Stack集成,利用比特幣的原生可編程性實現新協議之間的互操作性。 比特幣可編程性的命名空間 區塊鏈是創造信任的機器,比特幣主網是其中的0號機。像西方所有哲學都是對柏拉圖的註腳一樣,加密世界里的一切事物(資產、敘事、區塊鏈網路、協議、DAO等等)都是比特幣的派生物和衍生品。 在比特幣Maxi與擴容主義者的協同進化過程中,從比特幣主網是否支持圖靈完備之爭到隔離見證方案與大區塊擴容方案之爭,比特幣在不斷分叉。這既在創生新的加密項目和加密社區共識,也在強化和鞏固比特幣自身的社區共識,這是一個在他者化的同時完成自我確認的過程。 由於中本聰的神秘消失,比特幣社區治理並不存在以太坊那樣的「開明君主專制」的治理結構,而是由礦工、開發者、社區和市場進行開放博弈達到均衡的治理模型。這賦予比特幣的社區共識一旦形成、異常穩固的特性。 目前比特幣社區共識的特性有:共識不是命令和控制、信任最小化、去中心化、抗審查性、偽匿名性、開源、開放協作、免許可、法律中立、同質化、向前兼容性、資源使用最小化、驗證 > 計算、收斂、交易不可變性、抗 DoS 攻擊、避免爭搶進入、穩健性、激勵一致、固化、不該篡改的共識、衝突性原則、協同推進等。[1] 目前的比特幣主網形態,可以看作是以上比特幣社區共識特性的實例化結果。而比特幣可編程性的設計空間,也是由比特幣社區共識特性所定義的。 比特幣可編程性的經典設計空間 在其他公鏈嘗試模塊化、并行化等等方案探索區塊鏈不可能三角解決方案的設計空間時,比特幣協議的設計空間一直聚焦在腳本、OP Code和UTXO。 典型的兩個實例,分別是2017年以來比特幣主網的兩次重大升級Segwit硬分叉和Taproot軟分叉。 2017年8月的Segwit硬分叉,在1M的主區塊外新增3M的區塊專門保存簽名(見證,Witness),並在計算礦工費時將簽名數據的權重設為主區塊數據的1/4,以保持花費一個UTXO輸出和創建一個UTXO輸出成本的一致性,防止出現濫用UTXO找零增加UTXO集膨脹速度的情況。 2021年11月的Taproot軟分叉,則通過引入Schnorr 多重簽名方案,節省UTXO的驗證時間和多重簽名所佔的區塊空間。 1個UTXO的鍵值組(圖源:learnmeabitcoin.com) UTXO(未花費的交易輸出)是比特幣主網的基礎數據結構,它具有原子性、非同質性、鏈式耦合的特性。比特幣主網上的每一筆交易,都會消耗掉1筆UTXO作為輸入,同時創建整數n個新的UTXO輸出。通俗點理解,UTXO可以視作運行在鏈上的美元、歐元等紙幣,它可以花費、找零、拆分、組合等等,只不過它的最小原子單位是聰(sats)。1筆UTXO就代表某個特定時間的1個最新狀態。UTXO集,即代表某個特定時間比特幣主網的最新狀態。 通過保持比特幣UTXO集的簡潔性、輕量化和易驗證性,比特幣主網的狀態膨脹速度成功穩定在與硬體摩爾定律相適應的水平,從而保障比特幣網主網全節點的可參與性和交易驗證的魯棒性。 與之相應的,比特幣可編程性的設計空間同樣受到比特幣社區共識特性的約束。例如,為了防範潛在的安全風險 ,中本聰在2010年8月決定將OP-CAT操作碼移除,而該操作碼是實現比特幣圖靈完備級別可編程性的關鍵邏輯。 比特幣可編程性的實現路徑,沒有採用以太坊、Solana那樣的鏈上虛擬機(VM)方案,而是選擇利用腳本和操作碼(OP Code)對UXTO、交易的輸入欄位、輸出欄位和見證數據(Witness)等進行編程操作。 比特幣可編程性的主要工具箱有:多重簽名、時間鎖、哈希鎖、流程式控制制(OP_IF,OP_ELIF)。[2] 經典設計空間下,比特幣可編程性是非常有限的,僅僅支持幾種驗證程序,而不支持鏈上狀態存儲和鏈上計算,而鏈上狀態存儲和鏈上計算恰恰是實現圖靈完備級可編程性的核心功能組件。 比特幣可編程性的文藝復興 但比特幣可編程性的設計空間,並不是一個固定不變的狀態。相反,它更接近一種隨著時間變化的動態光譜。 與外界對比特幣主網開發陷入停滯狀態的刻板印象不同,在各種共識向量局限設計空間的情況下,比特幣主網新腳本和新操作碼的開發、部署、採用、推廣始終處在進行時態,並在某些時間甚至引發過加密社區的分叉戰爭(如Segwit硬分叉)。 以比特幣主網腳本類型採用度變遷為例,我們可以清晰地感知到其中的變化。比特幣主網輸出類型使用的腳本,我們可以劃分為3大類:原初腳本pubkey、pubkeyhash、增強腳本multisig、scripthash、見證腳本witness_v0_keyhash、witness_v0_scripthash、witness_v1_taproot。 比特幣主網全歷史輸出類型 來源:Dune 從比特幣主網全歷史輸出類型的變化趨勢圖中,我們觀察一個基本的事實:比特幣主網可編程性增強是長期歷史趨勢,增強腳本在吞噬原初腳本的份額,而見證腳本在吞噬增強腳本的份額。基於Segweit增強腳本和Taproot見證腳本的Ordinals協議所開啟比特幣L1資產發行浪潮,既是比特幣主網可編程性歷史趨勢的延續,也是比特幣主網可編程性的新階段。 比特幣主網操作碼也有著與比特幣主網腳本類似的演進過程。 例如Ordinals協議,就是通過結合比特幣主網腳本taproot script-path spend和操作碼(OP_FALSE、OP_IF、OP_PUSH、OP_ENDIF)實現其功能設計。 Ordinals協議的1次銘刻實例 在Ordinals協議正式誕生之前,比特幣可編程性的經典方案,主要有狀態通道(閃電網路)、客戶端驗證(RGB)、側鏈(Liquid Network、Stacks、RootSock等)、CounterParty、Omni Layer、DLC等等。 Ordinals協議將UXTO的最小原子化單位聰(Satoshi)序列化,再將數據內容銘刻在UTXO的Witness欄位,並與序列化后的某一特定聰相關聯,然後由鏈下索引器負責索引和執行這些數據狀態的可編程性操作。這種新的比特幣可編程性範式,被形象地比喻為「黃金上雕花」。 Ordinals協議的新範式,激發了更大範圍的加密社區使用比特幣主網區塊空間發行、鑄造和交易NFT收藏品和MeMe類型Token(可統稱為銘文)的熱情,其中有很多人在人生中第一次擁有自己的比特幣地址。 但Ordinals協議的可編程性,繼承了比特幣的可編程性的有限性,僅支持Deploy、Mint和Transfer三種功能方法。這讓Ordinals協議以及它的跟隨者BRC20、Runes、Atomicals、Stamps等等協議,只適用於資產發行的應用場景。而對需要狀態計算和狀態存儲的交易和借貸等DeFi應用場景的支持,則比較乏力。 Ordinals協議3種類型的TX數量(圖源:Dune) 流動性是資產的生命力來源。由於Ordinals類型比特幣可編程性協議的天然特性,導致銘文資產重發行而輕流動性提供,進而影響到一個銘文資產全生命周期產生的價值。 而且Ordinals、BRC20協議還有濫用見證數據空間的嫌疑,並在客觀上造成比特幣主網狀態爆炸。 比特幣區塊空間大小變化(圖源:Dune) 作為參照系,以太坊主網Gas費的主要來源為DEX交易Gas費、L2的數據可用性費和穩定幣轉賬Gas費等。與以太坊主網相比,比特幣主網的收入類型單一、周期性強、波動率大。 比特幣主網的可編程性能力,尚不能滿足比特幣主網區塊空間供給側的需求。而達到以太坊主網穩定且可持續的區塊空間收入狀態,需要比特幣生態原生的DEX、穩定幣和L2。而實現這些協議和應用的前提條件,是比特幣可編程協議需要提供圖靈完備的編程能力。 因此,如何原生地實現比特幣圖靈完備的可編程性,同時約束對比特幣主網狀態規模的負面影響,成為比特幣生態的當前一個顯學。 比特幣可編程性的CKB方案 目前實現比特幣原生的圖靈完備的可編程性的方案要有:BitVM、RGB、CKB、EVM兼容Rollup L2、 DriveChain等等。 BitVM使用比特幣的一組OP Code構建與非邏輯門,再通過與非邏輯門構建其他基礎邏輯門,最終由這些基礎邏輯門電路構建出一個比特幣原生的VM。這個原理,有點類似著名科幻小說《三體》的秦王陣列圖。Netflix改編的同名電視劇里有具體的場景呈現。BitVM方案的論文已經完全開源,備受加密社區的期待。但它的工程實現難度非常大,遇到鏈下數據管理成本、參與方數量限制、挑戰-響應交互次數、哈希函數複雜度等等問題,短期內很難落地。 RGB協議使用客戶端驗證和一次性密封技術來實現圖靈完備的可編程性,核心設計思想是將智能合約的狀態和邏輯存儲在比特幣交易(Transaction)的輸出(Output)上,將智能合約代碼的維護和數據存儲放在鏈下執行,由比特幣主網作為最終狀態的承諾層。 EVM兼容Rollup L2,是快速復用成熟的Rollup L2堆棧構建比特幣L2的方案。但鑒於比特幣主網目前無法支持欺詐證明/有效性證明,Rollup L2需要引入社會信任假設(多簽)。 DriveChain是一種側鏈擴展方案,基本設計思想是將比特幣作為區塊鏈的底層,通過鎖定比特幣來創建側鏈,從而實現比特幣和側鏈之間的雙向互操作性。DriveChain工程的實現,需要對比特幣進行協議級別改動,即將開發團隊提議的BIP300、BIP301部署到主網。 以上比特幣可編程性方案要麼工程難度極大短期難以落地,要麼引入過多社會信任假設,要麼需要對比特幣進行協議級別改動。 比特幣L1資產協議:RGB++ 針對以上比特幣可編程性協議存在的不足和問題,CKB團隊給出了一個相對均衡的解決方案。該解決方案由比特幣L1資產協議RGB++、比特幣L2 Raas服務商 UTXO Stack和與閃電網路集成的互操作協議組成的。 UXTO原生的原語:同構綁定 RGB++,是基於RGB設計思想開發的比特幣L1資產發行協議。RGB++的工程實現,同時繼承了CKB和RBG的技術原語。它有使用RGB的「一次性密封」和客戶端驗證技術,同時通過同構綁定將比特幣UTXO映射到CKB主網的Cell(擴展版的UTXO),並使用CKB和比特幣鏈上的腳本約束來驗證狀態計算的正確性和所有權變更的有效性。 換言之,RGB++是用 CKB 鏈上的 Cell表達 RGB 資產的所有權關係。它把原本存放在 RGB 客戶端本地的資產數據,挪到 CKB 鏈上用 Cell 的形式表達出來,與比特幣 UTXO 之間建立映射關係,讓 CKB 充當 RGB 資產的公開資料庫與鏈下預結算層,替代 RGB 客戶端,實現更可靠的數據託管與 RGB 合約交互。 RGB++的同構綁定(圖源:RGB++ Protocol Light Paper ) Cell是CKB的基本數據存儲單元,可以包含各種數據類型,如CKBytes、代幣、TypeScript代碼或序列化數據(如JSON字元串)。每個Cell都包含一個小程序,稱為Lock Script,它定義了Cell的所有者。Lock Script 既支持比特幣主網的腳本,如多簽、哈希鎖、時間鎖等,也允許包含一個Type Script來執行特定的規則,以控制其使用。這使開發人員能夠根據不同的用例定製智能合約,例如發行NFT,空投代幣、AMM Swap等等。 RGB協議通過使用OP RETURN操作碼將鏈下交易的狀態根附加到一個UTXO的output,將該UTXO作為狀態信息的容器。然後,RGB++將這個由RGB構建的狀態信息容器映射到CKB的Cell上,將狀態信息保存在Cell的type和data中,將這個容器UTXO作為Cell狀態所有者。 RGB++ 交易生命周期(圖源:RGB++ Protocol Light Paper ) 如上圖所示,一個完整的RGB++交易生命周期如下: 鏈下計算。當發起1筆同構綁定的Tx時,要首先選擇比特幣主網的一個新的UTXO btc_utxo#2作為一次性密封的容器,再在鏈下對原Cell同構綁定的UTXO btc_utxo#1、新Cell同構綁定的btc_utxo#2、以原Cell作為輸入新Cel作為輸出的CKB TX進行哈希計算生成一筆承諾。 提交比特幣交易。RGB++發起一筆比特幣主網的Tx,將與原Cell同構綁定的btc_utxo#1作為輸入,使用OP RETURN將上一步生成的那筆承諾作為輸出。 提交CKB交易。在CKB主網執行之前鏈下計算生成的CKB Tx。 鏈上驗證。CKB主網運行一個比特幣主網輕客戶端驗證整個系統的狀態變更。這點與RGB非常不同,RGB的狀態變更驗證採用的P2P機制,需要Tx的發起方與接收方同時在線且只對相關的TX圖譜進行互動式驗證。 基於以上同構綁定邏輯實現的RGB++,與RGB協議相比,在讓渡部分隱私性的同時,獲得了一些新特性:區塊鏈增強的客戶端驗證、交易摺疊、無主合約的共享狀態和非互動式轉賬。 區塊鏈增強的客戶端驗證。RGB++允許用戶選擇採用PoW維持共識安全CKB驗證狀態計算和URXO-Cell的所有權變更。 交易摺疊。RGB++支持將多筆Cell映射到單筆UTXO上,從而實現RGB++的彈性擴展。 無主智能合約和共享狀態。UTXO狀態數據結構實現圖靈完備智能合約的一大困難,就是無主智能合約和共享狀態。RGB++可以利用CKB的全局狀態Cell和意圖Cell解決這一問題。 非互動式轉賬。RGB++將RGB的客戶端驗證流程變成可選項,不再強制要求互動式轉賬。用戶選擇CKB驗證狀態計算和所有權變更的話,交易的交互體驗與比特幣主網保持一致。 此外,RGB++還繼承了CKB主網Cell的狀態空間私有化特性,RGB++每筆TX除了支付使用比特幣主網區塊空間的礦工費之外,還需要額外支付租賃Cell狀態空間的費用(這部分費用在Cell消費之後原路返回)。Cell的狀態空間私有化,是CKB發明的一種應對區塊鏈主網狀態爆炸的防禦機制,Cell狀態空間的租賃者在使用期間需要持續的付費(以被CKB流通代幣通脹的形式稀釋價值)。這使得RGB++協議是一種負責任的比特幣主網可編程性擴展協議,在一定程度上能夠限制對比特幣主網區塊空間的濫用現象。 去信任的L1L2互操作:Leap RGB++的同構綁定,是一種共時性的原子實現邏輯,要麼同時發生,要麼同時翻轉,不存中間狀態。所有的RGB++交易都會在BTC和CKB鏈上同步各出現一筆交易。前者與RGB協議的交易兼容,後者則取代了客戶端驗證的流程,用戶只需要檢查CKB上的相關交易即可驗證這筆RGB++交易的狀態計算是否正確。但用戶也可以不使用CKB鏈上的交易作為驗證依據,利用UTXO的局部相關Tx圖譜,獨立地對RGB++交易進行驗證。(交易摺疊等部分功能仍然需要依賴CKB的區塊頭哈希做防雙花驗證) 因此,RGB++與CKB主網之間的資產跨鏈,並不依賴引入額外的社會信任假設,如跨鏈橋的中繼層、EVM兼容Rollup的中心化多簽金庫等等。RGB++資產可以原生的、去信任的從比特幣主網轉移到CKB主網,或者從CKB主網轉移到比特幣主網。CKB將這個跨鏈工作流稱之為Leap。 RGB++與CKB之間是松耦合的關係。除了支持比特幣L 1層的資產(不限於RGB++協議原生資產,包括採用Runes、Atomicals、Taproot Asset等協議發行的資產)Leap到CKB之外,RGB++協議還支持Leap到Cardano等其他UTXO圖靈完備鏈。同時,RGB++還支持比特幣L2資產Leap到比特幣主網。 RGB++的擴展功能和應用實例 RGB++協議原生支持發行同質化代幣和NFT。 RGB++的同質化代幣標準是 xUDT ,NFT標準是Spore等。 xUDT 標準支持多種同質化代幣發行方式,包括但不限於集中分發、空投、訂閱等。代幣總量還可以在無上限和預設上限之間進行選擇。對於預設上限的代幣,可以使用狀態共享方案來驗證每次發行的總數是否小於或等於預設上限。 NFT標準中的Spore,會在鏈上存儲所有元數據,實現了100%的數據可用性安全。Spore 協議發行的資產 DOB(Digital Object,數碼物),類似於 Ordinals NFT,但是有更加豐富的特性和玩法。 作為客戶端驗證協議,RGB協議天然支持狀態通道和閃電網路,但受限於比特幣的腳本計算能力,把BTC之外的資產去信任引入進閃電網路非常困難。但RGB++協議可以利用CKB的圖靈完備腳本系統,實現基於CKB的RGB++資產的狀態通道和閃電網路。 有了以上標準和功能,RGB++協議的用例不像其他比特幣主網可編程協議那樣局限在簡單的資產發行場景,而支持資產交易、資產借貸、CDP穩定幣等複雜應用場景。例如,RGB++同構綁定邏輯結合比特幣主網原生的PSBT腳本,可以實現一種訂單簿網格形態的DEX。 比特幣L2 RaaS服務商:UTXO Stack UTXO同構比特幣L2 Vs EVM兼容比特幣Rollup L2 在圖靈完備的比特幣可編程性實現方案市場競爭中,DriveChain、恢復OPCAT操作碼等方案由於需要比特幣協議層的變更,需要的時間和成本具有非常大的不確定性和不可預測性, 現實主義路線中的UTXO同構比特幣L2和EVM兼容比特幣 Rollup …
CKB :比特幣可編程性的新篇章
Previous: Tether抨擊德意志銀行暗示其穩定幣可能會失敗的報告