作者:Gabe Parker,Galaxy分析師;翻譯:喜來順財經xiaozou
比特幣在協議升級方面采取保守態度,使得共識變更較為罕見。但正如之前的 SegWit 和 Taproot 升級所示,開發者仍然愿意優化比特幣的編程語言和網絡參數。
比特幣的編程語言——Bitcoin Script,無法使交易攜帶全局狀態,并且具有自省能力,這限制了其表達能力。
目前有兩個主要提案,OP_CAT(BIP 347) 和 OP_CTV(BIP 119),它們旨在增強比特幣交易的可編程性,使交易輸出具備更多的支出條件。這些提案可能會極大增強 Bitcoin Script 的功能,使其更加靈活。
OP_CAT 和 OP_CTV 最有潛力的應用場景包括:在比特幣第一層(L1)和第二層(L2)之間建立無需信任的跨鏈橋改進高級自托管保險庫解決方案以及閃電網絡的改進。
軟分叉升級的治理過程涉及多個比特幣利益相關方。在協議構思和技術審查的早期階段,媒體影響者和核心開發者擁有最大的影響力。
Galaxy Research 預測,比特幣核心開發者將在 2025 年就 OP_CAT 或 OP_CTV 達成共識,但由于激活過程較為復雜,實際實施可能需要 1-2 年。
比特幣協議的變更需要多個利益相關方的討論與協作,包括但不限于協議開發者、全節點、終端用戶和礦工。實現協議升級的共識過程復雜且充滿爭議。例如,2015-2017 年的“區塊大小之爭” 讓比特幣社區分裂,一方希望調整區塊大小,另一方則反對。多年的爭論最終導致了區塊鏈的永久性分叉,并誕生了一個新的加密貨幣——比特幣現金(Bitcoin Cash),它是比特幣的一個分叉版本。
鑒于達成協議變更共識的難度,比特幣的重大升級較為罕見。比特幣協議開發者拒絕有爭議的升級,并且時間實施那些得到更廣泛比特幣社區支持的升級需要花費數年,這已有很長的歷史。這凸顯了開發者對比特幣開發采取保守態度的承諾,以促進可預測性、網絡保真度和向后兼容性。
盡管比特幣的共識變更較為罕見,但比特幣開發者已表現出對比特幣腳本和網絡參數優化的開放態度。區塊大小之爭中誕生的隔離見證(SegWit)升級實際上增加了區塊大小限制,允許區塊中包含更多交易。SegWit還通過將交易數據的計量單位從字節(bytes)改為虛擬字節(vbytes),優化了交易數據的格式。這一轉變,加上將簽名數據移至見證字段,使得一個比特幣區塊可以包含多達4m權重單位的交易數據(約4MB)。比特幣的最后一個軟分叉是2021年的Taproot升級,它引入了一種名為Tapscript的更新版腳本語言。這個新版本的比特幣腳本包含了新的簽名方案(Schnorr簽名),改進了密鑰聚合,將多個公鑰和簽名合并為一個簽名密鑰。Schnorr簽名的密鑰聚合減少了需要多個簽名的交易數據量,同時提高了閃電網絡(比特幣最大的P2P支付層,建立在比特幣基礎層之上)上交易的隱私性。對SegWit和Taproot的簡要概述表明,盡管比特幣開發者對比特幣的共識變更持謹慎態度,但這并不意味著比特幣的技術特性不會發生變化。
在SegWit和Taproot之后,比特幣開發者現在正在探索提高比特幣的交易可編程性,以在交易中添加額外的智能合約邏輯。比特幣智能合約涉及支出條件的使用,即限制和控制未花費交易輸出(UTXO)未來如何被花費的能力,更復雜和嚴格的支出約束被稱為“covenants”(“限制條款”或“契約”)。本文將首先回顧比特幣腳本及其如何與比特幣的UTXO會計模型配合使用。隨后,我們將分析兩個待定的操作碼OP_CTV和OP_CAT,以強調這些操作碼如何有可能改進比特幣腳本,使其包含強大的功能,從而實現高效的交易可編程性。最后,本文強調了交易可編程性對比特幣基礎設施(如橋接和托管)的重要性,并展望了OP_CAT和OP_CTV達成共識的可能性,以及將這些操作碼實施到下一個軟分叉升級中的路徑。
比特幣使用一種原生腳本語言來構建交易,稱為“比特幣腳本”。腳本由一組指令組成,定義了交易的接收者如何花費正在發送的比特幣,也稱為“支出條件”。比特幣腳本由186個操作碼組成,這些操作碼作為命令函數運行。這些操作碼用于創建關于比特幣資產如何在網絡上花費和轉移的官方規則。例如,Pay-to-PubKey Hash交易包含4個操作碼,這些操作碼對比特幣交易強制執行支出條件,其中比特幣被花費到一個哈希公鑰,并且只能使用與花費者相關的正確公鑰和私鑰進行花費。
比特幣腳本專為比特幣的未花費交易輸出(UTXO模型)設計,該模型使用輸入和輸出。每個比特幣交易至少包括1個輸入和1個輸出,盡管大多數簡單交易至少包括1個輸入和2個輸出(輸入端的一部分BTC用于資助交易,一部分發送給接收者,剩余部分在輸出端返回給花費者)。UTXO是尚未花費的比特幣部分,可以在未來的交易中發送。一旦UTXO被用作交易的輸入,它們就不再是輸出。因此,當用戶花費比特幣時,UTXO會不斷被創建和銷毀。以下是一個簡化的UTXO模型示例:
*如果Alice的錢包中有一個價值1 BTC的UTXO,并且她向Bob發送了0.5 BTC,Alice的輸入將是1 BTC。*她的輸出將是0.49 BTC(返回給Alice)和0.5 BTC(發送給Bob)。0.01 BTC的差額代表支付給交易費用的BTC(此交易費用將根據網絡擁堵情況而變化)。*在此交易結束時,Alice將有一個新的UTXO集,代表她剩余的0.49 BTC。在第1步中,Alice使用她價值1 BTC的UTXO作為交易的第一個輸入,銷毀了UTXO。在第2步中,Alice創建了兩個新的UTXO,價值0.5 BTC和0.49 BTC,一個作為她的找零返回給她,另一個支付給Bob。在第3步中,Alice現在有一個新的UTXO,價值0.49 BTC。需要注意的是,如果Alice需要支付Bob 0.5 BTC,Alice也可以在第1步中使用多個UTXO,總和為0.5 BTC;如果輸入UTXO均沒有完全之出給接收者,Alice現在可能會收到2個新的UTXO,而不是1個。UTXO模型是比特幣網絡的一個關鍵特性,在交易處理和驗證中起著至關重要的作用。
上面的UTXO示例完全使用比特幣腳本構建。每個UTXO都包含一個鎖定腳本,其中包括UTXO被花費的一組條件。當用戶通過提供與相應公鑰關聯的正確私鑰簽名來證明輸入(被花費的UTXO)的所有權時,UTXO的鎖定腳本將被解鎖。此信息稱為“腳本簽名”,當輸入中包含正確的腳本簽名時,支出條件得到滿足,比特幣可以被花費?;氐紸lice和Bob的UTXO示例,在第1步中,Alice必須在其輸入中提供她的私鑰簽名以花費她的UTXO。隨后,Bob在花費他新收到的0.5 BTC之前必須提供相同的信息。
比特幣的腳本語言可以包含更復雜的支出條件,例如需要多個簽名或在特定區塊高度解鎖比特幣。然而,比特幣腳本并非通用的,缺乏像以太坊原生編程語言Solidity那樣的表達能力。因此,使用比特幣腳本為橋接和托管解決方案編程智能合約邏輯極具挑戰性。
盡管比特幣腳本在過去16年中證明了其對用戶的實用性和對雙花攻擊的抵御能力,但該腳本語言缺乏通用功能,如表達性和存儲全局狀態的能力。比特幣腳本不具備表現力,因為它是一種基于堆棧的編程語言,無法對大數進行乘法和算術運算。比特幣腳本只能對32位大小的值進行非平凡(non-trivial)計算。因此,比特幣腳本將大于32位的堆棧元素彼此隔離。這種32位的限制隔離了使用加密函數、乘法和除法的計算密集型命令,這些命令需要比當前操作碼集更大的腳本大小。雖然可以使用多個操作碼模擬算術和乘法,但這需要許多堆棧元素,而比特幣腳本的堆棧大小限制為1000個元素。因此,在交易輸出上創建超出當前操作的復雜支出條件具有挑戰性。
比特幣腳本的最大限制是該語言無法讀取/寫入和存儲交易數據,因為它只能讀取花費者提供的輸入。如果編程語言無法存儲全局狀態,腳本就無法獨立驗證應用程序或橋上的賬戶余額。比特幣腳本邏輯無法訪問全局狀態,因為任何狀態數據都必須適合單個交易。因此,幾乎不可能開發通用功能或在L2網絡和比特幣基礎層之間構建無信任橋接。
自2020年以來,克服比特幣腳本限制的舉措一直在進行中。多年來,開發者之間似乎已經達成共識,即提高比特幣腳本表達性的唯一途徑是執行軟分叉升級,實施新的操作碼以實現covenants。雖然比特幣社區的一部分人認為這些升級對比特幣網絡構成風險,但另一部分人認為比特幣需要更多的可編程性功能來擴展比特幣的用例。盡管在哪個操作碼最適合提高比特幣交易可編程性方面尚未取得實質性進展,但covenants的倡導者現在大多同意OP_CTV和OP_CAT是增強比特幣交易可編程性的主要比特幣改進提案(BIPs)。我們了解到,在比特幣上實施covenants的解決方案不止兩種,但本文僅描述OP_CTV和OP_CAT這兩個最突出的提案。
比特幣改進提案119(BIP 119),也稱為CHECK-TEMPLATE-VERIFY(CTV),是由比特幣核心開發者Jeremy Rubin于2020年1月提出的提案。該提案引入了一個新的操作碼OP_CTV,該操作碼可以在比特幣交易的輸出上實施一般支出條件,即covenants。下面來做一個簡單的背景介紹。“CHECK_TEMPLATE_VERIFY”中的模板部分指的是編寫比特幣腳本時必須遵循的交易格式。CHECK-TEMPLATE-VERIFY是一種新功能,它使交易輸出的鎖定腳本能夠承諾存儲在鎖定腳本中的支出條件作為哈希,也稱為承諾哈希。因此,只有在滿足承諾哈希中詳細說明的條件時,交易輸出才能被解鎖。一旦在鏈上廣播,與交易相關的承諾哈希是不可變的。OP_CTV的好處是交易發送者可以對接收者施加支出條件,這是對比特幣腳本當前規則的重大改變,當前規則只能構造發送者的支出條件。
Covenants契約主要有兩種類型。一般契約可以復制并應用于多個UTXO。Covenants在UTXO被花費后不會過期。另一方面,預計算契約也可以復制,但只能在有限的、預定義的次數內使用。預計算契約的邏輯必須由發送者提前指定,并且與一般契約的不同之處在于支出條件不能無限復制。一般契約,也稱為遞歸契約,可能會對UTXO的可替代性構成風險,這就是為什么BIP 119的倡導者通常只關注使用預計算契約的OP_CTV用例,以及為什么BIP 119不支持一般契約。例如,如果啟用一般契約,托管人或比特幣交易所可能能夠處理帶有永久性支出條件的提款,這些比特幣可能永遠擺脫不了受到政府或其他權威機構審查的可能性。
以金庫方案為例,以下關于OP_CTV功能如何實現covenants:
Alice希望在未來10年內將她價值1 BTC的UTXO中的0.8 BTC花費給Bob和Charlie(每人0.4 BTC)。Alice還希望將她的找零約0.2 BTC發送到一個新的金庫,該金庫將BTC再鎖定10年。
步驟1:Alice將她價值1 BTC的UTXO花費給Bob和Charlie,并在鎖定腳本中詳細說明Bob和Charlie可以在525k個區塊后花費BTC,也就是大約10年后。Alice還包含了詳細說明她的找零輸出約0.2 BTC將發送到她擁有的金庫地址的指令,該地址將鎖定她的UTXO 525k個區塊,即大約10年后。
步驟2:Bob和Charlie在525k個區塊后花費他們各自價值0.4 BTC的UTXO。Alice設置的鎖定腳本將根據當前區塊高度檢查承諾哈希,如果滿足條件,Bob和Charlie可以花費他們的新UTXO。
在步驟2中,Bob和Charlie花費他們的UTXO后,比特幣腳本的一部分,也稱為“鎖定腳本”,將檢查支出條件的履行情況,確保在釋放BTC之前滿足所有條件。此操作通常稱為使用正確的腳本簽名“解鎖”比特幣輸出。如果條件未滿足,鎖定腳本將不會啟動BTC的轉移。
步驟3:在Charlie和Bob滿足鎖定腳本中的承諾哈希后,返回給Alice作為找零的UTXO(約0.2 BTC)被用作具有指定金庫腳本公鑰的地址的輸入。金庫腳本公鑰包括一個哈希,允許Alice在525k個區塊后解鎖金庫以花費她價值約0.2 BTC的UTXO。使用金庫方案的好處是,Alice可以在哈希中添加詳細的安全措施,例如秘密恢復地址,以防有人竊取她的私鑰并嘗試在525k個區塊時間鎖之前解鎖UTXO。
如果沒有covenants,在前面的示例中,Alice需要創建一個預簽名交易,以對她花費給Bob和Charlie的BTC強制執行未來的支出條件。預簽名交易可以是單個或多個交易,由發送者的私鑰提前簽名,但實際上并未廣播到網絡進行確認和執行。預簽名交易不可擴展,因為它們要求用戶存儲多個交易的數據,直到它們在鏈上執行。此外,預簽名交易要求在資金可以花費時所有簽名方之間的互動性。然而,通過OP_CTV使用承諾哈希實現covenants,減輕了用戶存儲預簽名交易數據并依賴與交易相關的所有方之間的互動性的需求。
廣義上講,此功能可用于創建一系列復雜、高度安全和彈性的托管和安全設計,有助于改進自托管或托管設置,創建創新的新法定人數(quorum)或業務賬戶設置,或創建更自主的執行方案,具有更高的透明度和可靠性。
BIP 347是另一個比特幣改進提案,由Ethan Heilman和Armin Sabouri于2023年10月編寫,該提案也可以在比特幣交易的輸出上實現預計算的支出條件。該提案建議將OP_CAT操作碼添加到比特幣的腳本語言中,該功能允許比特幣開發者在堆棧中將兩個數據點“連接”在一起,并將這些值放在堆棧的頂部。我們來看簡單的背景介紹?!斑B接”(concatenating)是將兩個或多個代碼字符串組合成一個更大的字節或數據字符串的過程。比特幣腳本是一種基于堆棧的編程語言,按順序計算每個代碼字符串。對于由5行代碼組成的堆棧,比特幣腳本將首先計算第1行,最后計算第5行。不幸的是,比特幣的腳本語言不包含允許開發者在整個堆棧中合并多個代碼字符串的操作碼。目前,比特幣腳本缺乏算術和乘法功能,抑制了壓縮比特幣腳本的能力,這限制了大型腳本(大于32位)和小型腳本(小于32位)在單個堆棧中的交互。如果沒有通過“連接”壓縮腳本并允許大型腳本與小型腳本通信的能力,交易輸出上的復雜支出條件是不可行的。
至關重要的是,堆棧頂部的比特幣腳本的連接元素可以模擬算術和乘法功能,從而實現復雜腳本,而無需編寫更容易出錯的長數據密集型腳本。此外,OP_CAT的連接功能允許開發者使用Merkle樹和Tapscript中的其他哈希數據結構生成支出條件,Tapscript是用于啟用新交易類型的原生腳本語言,作為2021年11月激活的Taproot升級的一部分。
值得注意的是,中本聰禁用了OP_CAT以及其他使比特幣腳本能夠在腳本內直接執行復雜數學操作的操作碼。中本聰本人刪除了OP_CAT,因為該操作碼在當時比特幣腳本限制為2000字節時,結合OP_DUP可以構建數據密集型腳本。這種規模的腳本可能會增加比特幣節點的計算資源負擔并使其過載。然而,Taproot升級在2021年引入了Taproot腳本的大小限制(520字節),因此OP_CAT不再為節點操作者引入過多的計算開銷。
2021年的Taproot升級將Schnorr簽名引入比特幣腳本語言。Schnorr簽名支持公鑰和私鑰聚合,使得多方可以通過單一簽名共同簽署一筆交易。將Schnorr簽名中包含的驗證操作碼與OP_CAT結合,可以創建一種非遞歸契約,生成交易哈希。通過OP_CAT,用戶可以約束交易的某些部分,例如發送地址或發送金額,作為解鎖腳本的要求,交易哈希則作為解鎖的關鍵。
以金庫方案為例,以下是OP_CAT功能如何實現Covenants的總體概述。本示例的技術細節超出了本文范圍。
Alice希望創建一個在100個區塊后解鎖其UTXO的金庫:
*步驟1:Alice將其UTXO花費到一個金庫地址,并在見證字段中包含金庫解鎖腳本的支出條件細節,包括區塊高度。
*步驟2:在Alice的交易過程中,OP_CAT將見證字段中的金庫解鎖指令連接起來,并對它們進行兩次哈希運算以獲取sighash/txhash。
*步驟3:在100個區塊確認后,Alice通過廣播金庫UTXO的支出交易來啟動花費其金庫比特幣的過程。為了驗證Alice是否滿足所有支出條件,她的錢包在后臺執行CheckSig操作碼。此操作執行兩個關鍵驗證:驗證初始設置交易(步驟1)中的交易哈希,并將其與當前支出交易(步驟3)進行比較。CheckSig函數重建設置交易的組件,并驗證當前交易的公鑰簽名,以確保所有金庫支出條件均已滿足。
*步驟4:在Alice交易的公鑰通過CheckSig驗證后(CheckSig重建了存儲在見證字段中的支出條件),Alice可以自由花費她的UTXO。
上述示例展示了OP_CAT本身無法在交易上實施支出條件,而是OP_CAT與比特幣腳本中的其他操作碼結合可以簡化腳本編寫,從而實現covenants。OP_CAT的唯一功能是將堆棧頂部的兩個元素連接起來。
盡管OP_CAT可以與CheckSig一起用于創建covenants,但僅添加OP_CAT并不會為比特幣腳本帶來類似Solidity的功能。這一限制同樣適用于僅添加OP_CTV。即使使用OP_CAT,比特幣交易也只能進行最小程度的內?。╥ntrospection),這意味著交易無法完全訪問先前交易的元素或狀態。因此,OP_CAT只能支持Taproot交易輸出的細粒度covenants。OP_CAT無法修復Taproot輸出的葉子節點或驗證使用的內部密鑰。Taproot葉子節點是提交到Taproot輸出的單個支出條件或腳本??梢詫⑺鼈円暈榛ㄙM比特幣的不同“路徑”或方式——每個葉子節點代表一種可能的花費方式。比特幣Taproot交易中的內部密鑰是用于最有效支出路徑的主要公鑰。當使用內部密鑰花費UTXO時,你只需在鏈上提供簽名,無需揭示任何腳本或Merkle路徑。
需要注意的是,這些限制可以通過其他操作碼提案(如OP_TWEAK_VERIFY和OP_INTERNALKEY)解決。總體而言,OP_CAT可以被視為生成交易輸出上復雜支出條件的主要構建塊,然而,包括CheckSig在內的其他構建塊對于推進比特幣交易可編程性的發展至關重要。
(1)無信任橋接與單邊退出
Starkware(以太坊上Starknet zk-rollup的創建者)發布了一份報告,強調了OP_CAT如何支持創建STARK驗證器和Merkle驗證器,以實現無信任的比特幣橋接。無信任橋接通過遞歸契約系統構建,該系統通過記錄在Merkle樹中的交易鏈來維護橋接狀態。該機制的核心是存儲在不可花費的OP_RETURN輸出中的橋接持久狀態,其中包含代表賬戶余額的Merkle樹的根哈希。OP_CAT covenant要求每筆新的存款或取款交易都包含反映當前橋接狀態的有效狀態轉換。用戶通過專門的存款和取款covenants與橋接交互,這些covenants使用Merkle樹將多筆交易聚合為批次以進行高效驗證。然后,該Merkle樹的根合并到主橋接契約中,該契約驗證并處理每筆存款或取款。在取款期間,契約通過確保取款地址與葉子交易中第一個輸入的地址匹配來驗證所有權。該設計利用Merkle證明在比特幣腳本中進行高效的狀態更新,創建了一個無信任系統,其中橋接的狀態和規則完全通過由OP_CAT創建的鏈上契約邏輯強制執行,而不需要第三方信任。至關重要的是,對于驗證端系統狀態轉換的無信任比特幣橋接,比特幣腳本需要驗證證明。OP_CAT通過將哈希數據連接在一起,在比特幣腳本中構建STARK驗證器的能力,使得UTXO鎖定腳本能夠驗證端系統狀態轉換的zk-proof(零知識證明)。
Taproot Wizard團隊創新了一種新的無信任橋接框架,將OP_CAT與BitVM結合。BitVM通過允許在比特幣上分割和執行任意計算,實現了圖靈完備的表達能力。BitVM將利用比特幣腳本的任意計算的運行時分割到比特幣上的多個交易中。如果沒有covenants,鎖定比特幣的BitVM橋接需要預簽名交易來設置橋接。OP_CAT從先前交易中攜帶數據的能力使得BitVM橋接能夠在沒有預簽名交易的情況下鎖定和解鎖比特幣。OP_CAT可以通過一種稱為“CAT on the stack”的技巧從先前交易中攜帶數據。該技巧涉及在堆棧上連接哈希數據以構建Merkle樹根,OP_CAT可以驗證該根。因此,CatVM橋接確保來自先前交易、存款和取款的特定交易數據必須包含在下一筆交易中,以保證在成功取款后Merkle根被延續。CAT on the stack技巧還確保在一個用戶取款后,剩余的橋接比特幣可以由任何符合條件的用戶取款。
(2)高級金庫托管
比特幣金庫是一種新的托管解決方案,包含諸如恢復路徑等安全功能,允許用戶在私鑰泄露的情況下將其比特幣提取到一個秘密地址。BIP 345,正式名稱為OP_VAULT,是一項待定的比特幣改進提案,利用OP_CTV來增強比特幣托管的安全參數。需要注意的是,OP_CAT也可以用于創建比特幣金庫的支出條件,而無需預簽名交易。比特幣核心開發者James O’Beirne于2023年1月提出了OP_VAULT,以縮小OP_CTV的用例范圍。OP_VAULT依賴OP_CTV為金庫比特幣創建支出條件,而無需存款人預先簽署多筆交易。Covenants允許金庫具有時間延遲,當任何人在原始時間鎖之前嘗試花費金庫比特幣時,時間延遲將被觸發,通常這是試圖竊取資金的攻擊者。
(3)Non-Equivocation合約
Non-Equivocation合約于2015年被引入比特幣網絡,是比特幣交易輸出,如果簽名者雙花,則會泄露簽名密鑰。在實踐中,用戶鎖定原生比特幣,作為可罰沒的保證金。該保證金允許用戶在基礎層上執行0確認交易,這些交易稍后在區塊中被挖出。0確認交易是由比特幣共識規則驗證和保護的即時比特幣交易。如果0確認交易的發送者在交易被挖出之前花費了輸入,則對手方可以從泄露的簽名密鑰中罰沒其比特幣保證金。
(4)閃電網絡的改進
OP_CAT可以啟用通道工廠(Channel Factories),允許用戶在不首先在比特幣基礎層上廣播通道開放交易的情況下打開閃電通道。例如,如果Alice希望創建2個閃電通道(一個與Bob,另一個與Charlie),Alice將廣播與Bob和Charlie的通道開放交易(2筆交易)。通道開放交易要求雙方將比特幣存入2/2的多重簽名地址。通過通道工廠,Bob和Charlie可以在不廣播新的通道開放交易的情況下彼此打開單獨的通道。因此,原始通道開放交易中的所有參與者可以彼此創建獨立的通道。
OP_CTV可以創建共享UTXO,其中一個UTXO代表多個用戶。使用CTV的共享UTXO可以使多個用戶通過一筆鏈上交易打開多個閃電通道。通常,每個閃電通道需要一筆鏈上交易。因此,如果許多用戶打開閃電通道,這可能會使內存池充滿待處理的交易并增加交易費用。雖然目前這不是問題,但通道開放需要擴展以支持閃電網絡吸引數百萬活躍用戶。
所有比特幣軟分叉都包含技術風險,例如新操作碼的錯誤或未預見的用例。盡管前者很少見,但后者在銘文(inscriptions)的創建中暴露出來。銘文涉及在交易的見證字段中輸入任意數據,這已被用于在比特幣上創建新代幣和NFT集合。SegWit和Taproot升級共同使用戶能夠將圖像和文本數據作為字符串數據輸入到見證字段中。雖然數字藝術和可替代代幣的創建并不是激活SegWit或Taproot的重點,但多年后,聰明的開發者發現了如何將這些升級用于其他目的。Galaxy Research在我們的Ordinals報告中強調了這一觀點,并指出通過SegWit和Taproot意外創建的銘文可能對未來比特幣升級產生負面影響,因為社區對這些新用例的驚訝可能會使其更加猶豫是否支持新的軟分叉。
盡管對比特幣升級能力的看跌情緒存在,但OP_CAT和OP_CTV已經過大量測試和研究。對covenants的最初批評是,政府可能會強制應用程序強制執行僅允許一組批準地址花費比特幣的支出條件。這一批評是無效的,因為支出條件的條件由擁有資金的用戶決定。用戶可以創建限制未來支出到特定地址的交易,但這些限制不能由第三方外部強制執行,并且在鎖定資金被花費后不能永久延續。因此,政府無法強制執行自托管金庫應用程序或bridge如何花費資金。盡管托管人和比特幣交易所仍然可以限制用戶如何花費資金,但他們無法在沒有執行一般契約能力的情況下為取款資金添加永久支出條件,而OP_CTV不允許一般契約。
總體而言,OP_CAT和OP_CTV是簡單的操作碼,每個操作碼都能很好地執行一項功能。OP_CAT將堆棧頂部的兩個元素連接起來,而OP_CTV可以在鎖定腳本中對支出條件進行哈希。這些操作碼的一些用例(如無信任橋接的開發)仍需要進一步研究和實戰測試,因為橋接極易受到bug和黑客攻擊的影響。
確定比特幣利益相關者對未來協議升級的共識是一個復雜的過程,隨著提案的生命周期——也稱為BIP(比特幣改進提案)過程——而演變。BCAP關于比特幣升級歷史的報告詳細描述了這些利益相關者的角色如下:
*經濟節點:交易所、托管人、商家、支付提供商
*投資者:巨鯨、MicroStrategy、ETF提供商、Galaxy
*媒體紅人:CoinDesk、比特幣雜志、X名人、播客
*礦商:Bitmain、MicroBT、Riot、Marathon、大型私人礦商
*協議開發者:比特幣核心開發者
*應用開發者:L2項目
在整個比特幣改進提案(BIP)的生命周期中,不同的利益相關者行使不同程度的影響力,他們的相對影響在實施軟分叉的共識構建過程中發生變化。以下是各利益相關者影響力等級的詳細劃分,按1-10排名。截至2024年3月,OP_CAT和OP_CTV處于協議構思階段。在此階段,媒體人物的影響力最大,因為他們可以左右公眾意見并創造敘事。例如,Taproot Wizards是一支由知名比特幣紅人組成的團隊,他們利用其龐大的社交媒體粉絲群向比特幣社區宣傳OP_CAT的好處。Taproot Wizards團隊一直在制作關于OP_CAT的教育內容和研究,以推動比特幣腳本需要新操作碼以增強交易可編程性的敘事。因此,Taproot Wizards為OP_CAT培養了一大批支持者,他們正在推動核心開發者審查OP_CAT BIP草案。
在協議構思階段,比特幣核心開發者的影響力排名第二,因為BIP編輯負責審查待定BIP的草案,最重要的是,他們是唯一可以將BIP合并到比特幣核心GitHub存儲庫的實體。如果沒有比特幣核心開發者的支持,BIP將不可避免地被擱置并最終被拒絕。比特幣核心開發者還負責維護比特幣代碼庫并確保其不包含任何錯誤。在比特幣核心開發者之間達成共識是一個困難的過程,因為核心開發者之間的意識形態觀點可能不同,并且每個核心開發者在決策過程中的影響力也因其貢獻和背景而異。
OP_CAT和OP_CTV BIP正處于媒體紅人、用戶和應用開發者利用其影響力說服比特幣核心開發者這些共識變更將提高比特幣交易可編程性的階段。共識之旅的下一階段將需要技術名人、應用開發者和核心開發者進行具體研究,詳細說明OP_CAT和OP_CTV的所有潛在風險。如果沒有具體的研究和與核心開發者的公開對話,將不會有更廣泛的核心開發者社區對OP_CAT和OP_CTV形成集體觀點。
一旦在核心開發者之間達成共識,OP_CAT和OP_CTV將需要指定一名主要維護者,以促進將BIP實施到比特幣核心存儲庫的最后步驟。在OP_CAT和OP_CTV的BIP合并到比特幣核心存儲庫后,必須決定激活方法。一旦選擇了激活方法,信號期就開始了,礦商、投資者和經濟節點的影響力最大。截至2024年3月,礦商、Microstrategy等大型投資者以及Coinbase等經濟節點對OP_CAT和OP_CTV還沒有發表公開看法。在BIP實施之前,這些利益相關者需要進一步了解OP_CAT和OP_CTV的風險和好處。
如果比特幣核心開發者同意將OP_CAT或OP_CTV包含到下一個軟分叉升級中,社區需要就BIP的激活方法達成一致。激活方法允許礦工發出他們對升級的準備信號。
廣義上講,有兩種方法可以在比特幣上執行代碼更改。首先,可以通過軟分叉執行代碼更改。軟分叉是向后兼容的升級,允許比特幣節點操作者在即使不升級其客戶端軟件的情況下也能安全地在比特幣網絡上運行。軟分叉向后兼容的另一個好處是,任何不同意Bitcoin Core(主要比特幣客戶端)方向的人都可以選擇運行排除新BIP激活的舊版本客戶端軟件,但仍可以連接到規范的比特幣區塊鏈。軟分叉通過創建比現有規則集更有限的新條件來添加功能,因此適合現有規則。
當軟分叉由用戶(而非礦商)激活時,就被稱為用戶激活軟分叉(UASF)。比特幣上最著名的UASF示例幾乎發生在2017年8月1日的“區塊大小之爭”期間,以幫助加快SegWit升級的采用。在區塊大小之爭期間,比特幣用戶升級了他們的節點以支持SegWit升級,并隨后威脅要拒絕來自未升級節點的區塊。通過這樣做,鼓勵未升級其比特幣客戶端軟件的礦工采用Segwit,以使其區塊更廣泛地傳播并增加他們獲得區塊獎勵的機會。雖然UASF在區塊大小戰爭期間從未發生,但潛在UASF的威脅影響了礦工采用SegWit。
第二種實施代碼更改的方法是通過硬分叉,這是一種向后不兼容的升級,會在升級和未升級節點之間永久分裂共識。比特幣核心開發者從未實施過硬分叉,因為社區重視協議代碼的固化和向后兼容性。如果少數用戶執行硬分叉升級(例如更改區塊大?。?,比特幣可能會發生鏈分裂。這就是比特幣現金在2017年創建的方式,當時比特幣社區的一部分人不同意Segwit升級,而是希望通過激活向后不兼容的代碼更改來單純增加區塊大小,從而從比特幣協議中分叉出來。
除了硬分叉和軟分叉激活之間的區別外,還有不同的方法可以在分叉發生之前衡量社區對升級的情緒。以下是比特幣社區提出的各種過程類型BIP的概述,以更好地支持軟分叉升級的激活:
*BIP 9:BIP 9提供了一個框架,供礦工通過修改比特幣區塊頭中的版本位字段來發出他們對軟分叉升級的支持信號。一旦信號期結束,比特幣社區可以評估支持升級的礦工百分比,并按礦工算力加權投票。如果超過某個支持閾值,升級可以在“flag day”繼續進行激活,這只是一個指定的區塊高度用于升級激活。
*BIP 8:長期比特幣核心開發者Luke Dashjr(自2011年以來一直從事比特幣開發工作)于2017年2月提出了BIP 8作為BIP 9的繼任者。BIP 8建議使用區塊高度而非算力來確定批準提案的信號期持續時間。BIP 8還引入了一個新的鏈上激活軟分叉參數,稱為“LOT”。如果該參數設置為“TRUE”,則需要在最終期間發出信號,確保軟分叉在超時高度鎖定。從這里開始,升級在預定義的flag day由節點激活,無論礦工是否發出信號。BIP 8試圖減少礦工對社區希望的提案激活的干擾,并迫使礦工考慮在升級的LOT參數設置為TRUE的情況下由于未從升級節點接收區塊而導致的收入損失的后果。
*Speedy Trial:比特幣核心開發者AJ Townes和Andrew Chow于2021年4月引入了一種稱為“Speedy Trial”的BIP 8版本。Speedy Trial試圖加速礦工發出激活準備信號的時間表。這種方法意味著一旦在指定期間內大多數挖出塊發出準備信號,就會激活提案。Speedy Trial的功能類似于BIP 9激活部署,但激活窗口更短。最近,Taproot升級通過Speedy Trial在比特幣上激活。該試驗要求在兩周內90%的挖出塊發出準備信號,然后Taproot才能在網絡上激活。試驗于2021年6月12日結束。在達到90%礦工支持的閾值后,網絡隨后進入五個月的等待期,以留給礦工和節點時間升級其軟件。Taproot隨后于2021年11月15日正式在比特幣上激活。
*現代軟分叉激活:這是一種結合BIP 9和BIP 8不同屬性的升級激活方法。它由Bitcoin Core最多產的貢獻者之一Matt Corallo于2020年1月提出。該方法包括三個步驟。第一步是BIP 9中概述的礦工激活軟分叉。如果礦工未能激活升級,Corallo概述的現代軟分叉激活過程將默認為第二步,即開發者和更廣泛的比特幣社區重新考慮代碼更改的六個月等待期。六個月后,如果開發者和用戶希望繼續升級,他們可以啟動第三步,這本質上等同于將LOT參數設置為TRUE的BIP 8。
盡管OP_CAT(BIP 347)和OP_CTV(BIP 119)獲得了眾多知名比特幣開發者的支持,但這些提案在實施之前仍需經過漫長的盡職調查過程。這是因為OP_CAT和OP_CTV需要更改比特幣的共識層,而此類更改的BIP治理過程非常廣泛。盡管BIP 119和BIP 347的激活時間表尚不明確且不可預測,但漫長的審查期可能有利于提案,因為它為社區提供了充足的時間來了解OP_CTV和OP_CAT的好處和影響。此外,BIP貢獻者將有更多時間對OP_CTV和OP_CAT進行壓力測試,以及它們對比特幣腳本未來bug的潛在影響。
盡管OP_CAT和OP_CTV的全部潛力仍在探索中,但它們最直接的影響在于為比特幣L2實現無信任橋接以及高級安全的比特幣金庫。無信任橋接對于與EVM兼容的比特幣L2的重要性不言而喻,尤其是在比特幣DeFi不斷發展的背景下。這些無信任解決方案代表了相對于當前替代方案(如WBTC和cbBTC)的重大進步,后者依賴于可信中介,并削弱了區塊鏈技術的無許可特性。盡管自托管的比特幣金庫可能在托管解決方案中提供最實用的價值,但無信任L2橋接的潛力展示了增強交易可編程性為比特幣帶來的更廣泛可能性。
開發者社區在2024年推動這些提案已獲取顯著進展,這一良好勢頭可能延續到2025年。隨著比特幣交易活動趨于下降且交易費率低至1 sat/VB,當前的焦點正轉向如何恢復比特幣網絡上的交易活動。盡管我們的Galaxy Research 2025預測報告認為比特幣核心開發者將在OP_CAT或OP_CTV之間達成共識,但最終的實現和激活過程可能還需要1-2年的時間。盡管如此,這些提案的最終采用將成為比特幣腳本演進中的一個重要里程碑,為未來更復雜和安全的比特幣應用奠定基礎。
通過增強交易可編程性,比特幣將能夠支持更多創新用例,例如無信任的跨鏈橋接和高級托管解決方案,從而進一步推動比特幣生態系統的發展。這些技術的引入不僅會提升比特幣的功能性,還將為開發者和用戶提供更多工具,以構建更安全、更高效的去中心化應用。盡管實現這些目標需要時間和社區的共同努力,但其潛在影響無疑將為比特幣的未來注入新的活力。