
作者 :Botanix Labs 中文
在比特幣上發(fā)展代幣、NFT 和 DeFi 的過(guò)程其實(shí)比表面上看起來(lái)要復(fù)雜得多。比如,在以太坊虛擬機(jī)(EVM)以及其他智能合約平臺(tái)上,智能合約具有圖靈完備性,這意味著只需部署一個(gè)自定義合約就可以新增功能或選項(xiàng)。但在比特幣上,開(kāi)發(fā)者則必須小心翼翼地在不引發(fā)硬分叉的前提下進(jìn)行創(chuàng)新,只能在現(xiàn)有協(xié)議功能的限制內(nèi)操作。如我們?cè)谇拔闹刑岬降?,比特幣之所以具有?dú)特的重要性和價(jià)值,其中一個(gè)關(guān)鍵因素就是它對(duì)“原始性”的堅(jiān)持,主鏈在時(shí)間推移中幾乎沒(méi)有經(jīng)歷太多改動(dòng)。
盡管如此,比特幣是第一個(gè)獲得廣泛采用的區(qū)塊鏈,許多后續(xù)在更靈活區(qū)塊鏈上實(shí)現(xiàn)的技術(shù),最早的萌芽其實(shí)都出現(xiàn)在比特幣上。事實(shí)上,NFT 最初是以“彩色幣”(Colored Coins)的形式出現(xiàn)在比特幣上;狀態(tài)通道(State Channels)的概念在設(shè)計(jì)上與當(dāng)今的 L1-L2 架構(gòu)頗為相似;而原子交換(Atomic Swaps)為現(xiàn)代的跨鏈橋打下了基礎(chǔ)。我們?cè)谇拔摹稄谋忍貛懦霭l(fā):DeFi 的真實(shí)起源》中已部分介紹過(guò)這些發(fā)展。但若要真正理解比特幣作為 Botanix 及其他比特幣鏈的基礎(chǔ)設(shè)施所具備的無(wú)與倫比的價(jià)值,我們需要更深入了解這些早期創(chuàng)新如何為今日生態(tài)鋪路。盡管比特幣本身相對(duì)“簡(jiǎn)潔”,但它實(shí)際上是 Web3 領(lǐng)域中最復(fù)雜、最迷人的生態(tài)之一,擁有最豐富的歷史。
探討比特幣功能理論:比特幣的能力是否足以支持復(fù)雜生態(tài)?
2009 年比特幣上線時(shí)就內(nèi)置了一套腳本語(yǔ)言,這不僅僅能實(shí)現(xiàn)簡(jiǎn)單的支付,還從一開(kāi)始就支持如多重簽名(multi-sig)和時(shí)間鎖(time-lock)等更復(fù)雜的操作。中本聰甚至描述過(guò),使用 nLockTime 和序列號(hào)(sequence number)的未確認(rèn)交易可以在雙方之間多次更新用于高頻交易,只有最終狀態(tài)會(huì)被寫(xiě)入鏈上。
比特幣腳本(Bitcoin Script)是一種非常有趣的機(jī)制:一方面,它是圖靈不完備的,限制了其功能性;但另一方面,它也因此保持了簡(jiǎn)潔和安全。因此,在比特幣上構(gòu)建任何復(fù)雜功能時(shí),開(kāi)發(fā)者都必須在 Script 所提供的框架內(nèi)進(jìn)行設(shè)計(jì)。它包含了大量命令(Opcode),用于編程各種動(dòng)作,這些操作最終都會(huì)寫(xiě)入交易數(shù)據(jù)中。
Bitcoin Script 是比特幣定義幣的支出條件所使用的腳本語(yǔ)言本體。你可以將 Script 理解為一份食譜 —— 一整套烘焙蛋糕的步驟。而 Opcodes(操作碼)就是這套語(yǔ)言的構(gòu)建模塊 —— 它們是程序員編寫(xiě)腳本時(shí)使用的基本指令,例如“攪拌”“加熱”等。為了更清楚地理解 Script 的功能,我們簡(jiǎn)要回顧一下最常見(jiàn)的幾種腳本類(lèi)型:
P2PK(Pay To Public Key) —— 這是最原始的 BTC 轉(zhuǎn)賬方式,后來(lái)被 P2PKH 替代。它由幾個(gè) Opcode 構(gòu)成,例如:OP_DATA_65 OP_CHECKSIG OP_DATA_33 OP_CHECKSIG。
P2PKH(Pay To Public Key Hash) —— 腳本形式為:OP_DUP OP_HASH160 OP_DATA_20 OP_EQUALVERIFY OP_CHECKSIG。由于使用 32 字節(jié)的公鑰哈希以?xún)?yōu)化交易大小,比起 64 字節(jié)的 P2PK,這種腳本更節(jié)省空間,因此很快成為主流。交易數(shù)據(jù)越小,費(fèi)用越低 —— 這在比特幣使用和手續(xù)費(fèi)增加的背景下尤其重要。
存儲(chǔ)任意數(shù)據(jù) —— 這類(lèi)腳本通常鎖定的聰數(shù)量極小,主要用于存儲(chǔ) ASCII 文本、鏈接或腳本。例如:OP_0 OP_DATA_20 # 20 字節(jié)自定義數(shù)據(jù)。此外還有標(biāo)準(zhǔn)化的方式使用 OP_RETURN 存儲(chǔ)數(shù)據(jù)。例如,比特幣彩色幣協(xié)議(NFT 前身)就通過(guò) OP_RETURN 嵌入代幣元數(shù)據(jù)。
NCC Group 的一份研究中匯總了 156 種不同的 Script 模式,對(duì)這些腳本結(jié)構(gòu)做了詳細(xì)分析。
那么,我們是否可以嘗試使用 Script 在比特幣上組織類(lèi)似 DeFi 的機(jī)制呢?下一步讓我們繼續(xù)探討。
借貸機(jī)制:
正如我們前文所述,操作碼(opcodes)可以組合使用,從而構(gòu)建出一系列小的指令鏈,進(jìn)而實(shí)現(xiàn)更復(fù)雜的行為。例如,開(kāi)發(fā)者可以通過(guò)組合操作碼來(lái)構(gòu)造具有借貸合約功能的復(fù)雜腳本。這可以通過(guò)時(shí)間鎖和多簽組合來(lái)實(shí)現(xiàn):
OP_CHECKSEQUENCEVERIFY (CSV):用于相對(duì)時(shí)間鎖(例如,在某筆交易之后鎖定資金 X 個(gè)區(qū)塊);
OP_CHECKLOCKTIMEVERIFY (CLTV):用于絕對(duì)時(shí)間鎖(例如,貸款在某個(gè)具體區(qū)塊高度或時(shí)間戳?xí)r到期);
OP_CHECKMULTISIG(或多個(gè) OP_CHECKSIG 配合 OP_ADD):要求多方共同簽署;
條件邏輯操作碼 OP_IF / OP_ELSE:定義不同的支出路徑(例如還款 vs 違約)。
這些工具可以實(shí)現(xiàn)“帶超時(shí)功能的雙邊托管合約”。舉個(gè)例子:假設(shè) Alice 提供 BTC 作為抵押,而 Bob 線下借給她穩(wěn)定幣。他們希望通過(guò)合約設(shè)置如下規(guī)則:如果 Alice 到期未還款,Bob 將獲得她的 BTC;若按時(shí)還款,則 BTC 將解鎖返還給 Alice。為此,他們可以使用一個(gè) 2-of-2 的多簽輸出(Alice 和 Bob 都需要簽名才能動(dòng)用資金)。然后,他們可以設(shè)定腳本邏輯:如果到達(dá)某個(gè)區(qū)塊高度之后仍未還款,只有 Bob 可以單獨(dú)動(dòng)用這筆資金。
不過(guò),這里仍存在一個(gè)重大難點(diǎn):比特幣本身無(wú)法自動(dòng)計(jì)算利息、監(jiān)控抵押率或強(qiáng)制執(zhí)行清算。任何利息支付都必須通過(guò)鏈下方式完成,或是借助預(yù)簽名交易來(lái)實(shí)現(xiàn)(這在實(shí)踐中相當(dāng)復(fù)雜)。如果貸款期間 BTC 價(jià)格下跌,比特幣腳本本身無(wú)法得知,也就無(wú)法自動(dòng)觸發(fā)清算。要實(shí)現(xiàn)這種功能,必須借助預(yù)言機(jī)或鏈下協(xié)議。在沒(méi)有預(yù)言機(jī)的前提下,合約只能基于最終到期時(shí)間來(lái)做判斷。
因此,在比特幣一層上直接實(shí)現(xiàn)無(wú)需信任的 BTC 抵押穩(wěn)定幣借貸非常困難。目前的實(shí)踐方式通常依賴(lài)可信第三方,或是借助其他鏈上的原子交換機(jī)制來(lái)間接實(shí)現(xiàn)。
AMM 功能:
如前文所述,借貸和質(zhì)押機(jī)制在理論上可以通過(guò) Bitcoin Script 實(shí)現(xiàn),但在實(shí)際操作中效率較低。然而,我們?nèi)钥梢蕴接懯欠裼锌赡茉诒忍貛派蠘?gòu)建類(lèi)似自動(dòng)做市商(AMM)的更復(fù)雜機(jī)制。比特幣腳本中包含了如 OP_ADD、OP_SUB 和 OP_MUL 等數(shù)學(xué)操作碼(盡管其中一些已被禁用),也有類(lèi)似 OP_LESSTHAN 的比較操作碼。從理論上講,這些功能可以用來(lái)實(shí)現(xiàn)價(jià)格計(jì)算邏輯。
在理論上,開(kāi)發(fā)者可以構(gòu)造一個(gè)腳本,內(nèi)置固定價(jià)格或一組預(yù)定義的可接受價(jià)格點(diǎn),但無(wú)法做到每次交易后動(dòng)態(tài)調(diào)整價(jià)格。原因在于比特幣采用 UTXO 模型,每筆交易都會(huì)生成新的 UTXO 和腳本,因此每個(gè)可能狀態(tài)都必須預(yù)先計(jì)算,或者每次交易后都需重新部署一個(gè)合約。
另一個(gè) AMM 實(shí)現(xiàn)的關(guān)鍵因素是資產(chǎn)交換能力。理論上,比特幣支持原子交換(Atomic Swaps),可構(gòu)建為訂單簿形式而非流動(dòng)性池。類(lèi)似 AMM 的行為也可以通過(guò)構(gòu)建一系列 HTLC(哈希時(shí)間鎖定合約)或在不同價(jià)格點(diǎn)發(fā)布掛單來(lái)模擬,從而形成一個(gè)靜態(tài)的自動(dòng)做市系統(tǒng)(類(lèi)似一條收益曲線)。但維護(hù)這樣的系統(tǒng)非常繁瑣,每次交易后都需手動(dòng)更新腳本并重新發(fā)布 UTXO,鏈上成本極高。
因此,雖然理論上可以構(gòu)建 AMM,但實(shí)際還面臨一個(gè)更大的問(wèn)題:比特幣主網(wǎng)上只存在 BTC 一種原生資產(chǎn)。雖然如 Omni 協(xié)議提供了代幣機(jī)制,但這些資產(chǎn)存在于交易的元數(shù)據(jù)中,無(wú)法被腳本識(shí)別和處理。因此,通過(guò) Bitcoin Script 無(wú)法實(shí)現(xiàn)真正的資產(chǎn)對(duì)資產(chǎn)交換或流動(dòng)性池維護(hù)。此外,比特幣的 UTXO 模型也不支持單個(gè)合約同時(shí)持有多方資金并更新部分余額——每次狀態(tài)變化都需要新的交易和多方簽名。
擴(kuò)展 Script 功能:
上述幾點(diǎn)解釋了為什么比特幣會(huì)定期進(jìn)行重大更新以提升其功能。其中一項(xiàng)重要更新是 Taproot,它通過(guò)軟分叉的方式引入,但極大地改變了 Script(腳本)的設(shè)計(jì)方式。
Taproot 的 OP_SUCCESS 機(jī)制:
隨著 Taproot 升級(jí)(BIP 342)的引入,許多此前被禁用或保留的操作碼(opcode)在 Tapscript(即 SegWit v1 腳本)中被轉(zhuǎn)變?yōu)?OP_SUCCESS 操作碼。OP_SUCCESS 表示:只要執(zhí)行該操作碼,腳本就會(huì)立即成功終止。這種設(shè)計(jì)使得通過(guò)軟分叉添加新操作碼變得更加簡(jiǎn)單和安全。具體而言,在 Tapscript 中,若操作碼的值位于特定范圍內(nèi)(例如:0x50、0x62、0x7E–0x81、0x83–0x86、0x89–0x8a、0x8d–0x8e、0x95–0x99、0xbb–0xfe),就會(huì)被視為 OP_SUCCESSx。一旦遇到這些操作碼,腳本會(huì)無(wú)條件判定為成功,忽略其他邏輯。
這種機(jī)制取代了舊有的 OP_NOP(空操作碼)升級(jí)方式,帶來(lái)了更高的安全性與靈活性。未來(lái)的軟分叉可以重新定義某個(gè) OP_SUCCESS 操作碼的行為,而老版本節(jié)點(diǎn)仍會(huì)將其視為“腳本成功”,從而避免因版本不一致導(dǎo)致的無(wú)效交易??偨Y(jié)而言,所有未被列為“可用”的操作碼,要么是保留未用,要么在 Taproot 中已轉(zhuǎn)為始終返回成功的 OP_SUCCESS。
另一個(gè)重要方面 是操作碼可以通過(guò) BIP(比特幣改進(jìn)提案)流程提出,目前已經(jīng)有一些功能強(qiáng)大的提案正在審議或已被拒絕。其中一些提案如果被采納,將顯著拓展比特幣的功能,使其能夠執(zhí)行更復(fù)雜的操作:
OP_CAT(連接操作符): 用于增強(qiáng)比特幣腳本中對(duì)數(shù)據(jù)組合和處理的能力,極大提升表達(dá)能力。OP_CAT 原本在早期比特幣中就存在(2010 年被禁用),其作用是從棧中取出兩個(gè)字節(jié)串并連接后再推入棧中。這種簡(jiǎn)單卻強(qiáng)大的操作可用于動(dòng)態(tài)構(gòu)建消息、在腳本中計(jì)算 Merkle 樹(shù)哈希等復(fù)雜邏輯。該提案建議限制連接后結(jié)果不超過(guò) 520 字節(jié)(即最大棧元素限制)。
OP_CHECKSIGFROMSTACK / OP_CHECKSIGFROMSTACKVERIFY(簡(jiǎn)稱(chēng) OP_CSFS): 這一操作碼可實(shí)現(xiàn)基于預(yù)言機(jī)的腳本驗(yàn)證。例如,一個(gè)腳本可以驗(yàn)證一個(gè)外部條件(如價(jià)格或事件結(jié)果)的簽名信息是否來(lái)自特定預(yù)言機(jī)。盡管執(zhí)行邏輯簡(jiǎn)單,但 OP_CSFS 能為比特幣解鎖全新的能力。例如:預(yù)言機(jī)簽署一條消息“BTC 在 X 時(shí)間點(diǎn)跌破 $20,000”,借貸腳本通過(guò) OP_CSFS 驗(yàn)證此簽名,從而允許出借方清算抵押品——這一過(guò)程無(wú)需第三方保管私鑰。此外,借款人還款后,預(yù)言機(jī)或出借人可簽名“已收到還款”,腳本驗(yàn)證后將抵押物返還。若無(wú) OP_CSFS,這類(lèi)基于外部條件的自動(dòng)合約要么無(wú)法實(shí)現(xiàn),要么只能通過(guò)預(yù)言機(jī)作為聯(lián)合簽名人來(lái)完成,存在更高的信任風(fēng)險(xiǎn)。
OP_CHECKTEMPLATEVERIFY(簡(jiǎn)稱(chēng) OP_CTV): 此操作碼允許用戶(hù)預(yù)先設(shè)定其比特幣的未來(lái)使用方式,例如:只能轉(zhuǎn)賬到某一組特定地址,或在滿(mǎn)足特定手續(xù)費(fèi)條件下才能花費(fèi)。OP_CTV 可用于構(gòu)建批量交易、通道工廠、以及其它基于“契約”(covenant)機(jī)制的高級(jí)用例,從而確保某些預(yù)定義規(guī)則被強(qiáng)制執(zhí)行。
但為什么這些操作碼至今仍未被批準(zhǔn)?
最主要的原因可能是:比特幣開(kāi)發(fā)者社區(qū)對(duì)于保持比特幣的原始形態(tài)極為謹(jǐn)慎。
一方面,引入新功能確實(shí)可以增強(qiáng)比特幣的可用性和擴(kuò)展性;但另一方面,比特幣本身就是一個(gè)設(shè)計(jì)為“慢”的網(wǎng)絡(luò),而這種“慢”,在某種程度上也被視為其“原汁原味”的特性。例如,以 OP_CSFS 應(yīng)用于清算機(jī)制為例,速度是其中的關(guān)鍵因素。如果市場(chǎng)崩盤(pán)、BTC 價(jià)格劇烈下跌,就可能出現(xiàn)一個(gè)悖論:
首先,區(qū)塊鏈負(fù)載飆升,網(wǎng)絡(luò)速度進(jìn)一步下降;
其次,比特幣網(wǎng)絡(luò)中的交易處理速度會(huì)大幅滯后,價(jià)格早已脫離當(dāng)前市場(chǎng)水平,而中心化和去中心化交易所(CEX 與 DEX)卻早已迅速反應(yīng)。
極有可能,在鏈上清算交易完成前,價(jià)格已經(jīng)反彈。
因此,比特幣本身運(yùn)行緩慢、在高負(fù)載時(shí)交易費(fèi)用極高,使得原生實(shí)現(xiàn) DeFi 相關(guān)機(jī)制在主網(wǎng)上的嘗試基本失去意義。
正因?yàn)槿绱?,開(kāi)發(fā)者們逐步得出一個(gè)更為合理的結(jié)論:應(yīng)當(dāng)在比特幣之上構(gòu)建擴(kuò)展層。這其實(shí)就是 Rollup 思想的前身——即“原型支付通道”(proto-payment channel)的概念:通過(guò)支持鏈下的多筆微交易,最終壓縮成一筆鏈上結(jié)算交易。
早在 2011 年 4 月,Bitcoin 的第一個(gè)代碼分支 Namecoin 被推出,它通過(guò)比特幣技術(shù)實(shí)現(xiàn)了去中心化的域名注冊(cè)(DNS “.bit”)。
Namecoin 的案例——在鏈上存儲(chǔ)“名稱(chēng)-值”對(duì)——首次展示了:比特幣設(shè)計(jì)不僅可用于貨幣交易,也可以用于其他資產(chǎn),盡管可能需要獨(dú)立的區(qū)塊鏈結(jié)構(gòu)。這些理念為后續(xù)的資產(chǎn)代幣化、去中心化交易、以及比特幣的鏈下擴(kuò)展創(chuàng)新奠定了基礎(chǔ)。
穩(wěn)定幣:在比特幣生態(tài)中究竟有多有效?
穩(wěn)定幣已成為任何 Web3 生態(tài)系統(tǒng)中的關(guān)鍵組成部分,即便是那些與 DeFi 沒(méi)有直接關(guān)系的系統(tǒng)也不例外。它們讓用戶(hù)得以規(guī)避波動(dòng)性風(fēng)險(xiǎn),在轉(zhuǎn)賬時(shí)無(wú)需擔(dān)心資產(chǎn)價(jià)格的變動(dòng)。如前所述,比特幣網(wǎng)絡(luò)始終在功能簡(jiǎn)潔性與可記錄數(shù)據(jù)量之間尋找平衡。有趣的是,比特幣上最早的資產(chǎn)發(fā)行嘗試,是通過(guò)“彩色幣”(Colored Coins)的開(kāi)發(fā)實(shí)現(xiàn)的,這種方式在某種程度上類(lèi)似于 NFT。
早在 2012 年,J.R. Willett 就提出了在比特幣上發(fā)行新資產(chǎn)的設(shè)想,并提出了“彩色幣”概念。他隨后幫助創(chuàng)建了 Mastercoin 協(xié)議(后更名為 Omni),為在比特幣上實(shí)現(xiàn)資產(chǎn)代幣化(包括錨定法幣的代幣)奠定了基礎(chǔ)。
由于標(biāo)準(zhǔn)的比特幣 Script 腳本中并沒(méi)有直接的“token”操作碼,開(kāi)發(fā)者只能借助 OP_RETURN 將代幣元數(shù)據(jù)嵌入到交易輸出中(OP_RETURN 會(huì)使輸出變?yōu)椴豢苫ㄙM(fèi),并附帶數(shù)據(jù))。在 OP_RETURN 標(biāo)準(zhǔn)化之前,甚至連多重簽名腳本都曾被“曲線救國(guó)”地用來(lái)編碼數(shù)據(jù)。
比特幣腳本本身無(wú)法強(qiáng)制執(zhí)行任何代幣規(guī)則——規(guī)則由鏈下軟件維護(hù),這些軟件負(fù)責(zé)解析比特幣交易。
像 Colored Coins、Omni Layer(原 Mastercoin)、Counterparty 和 Open Assets 等協(xié)議,都是通過(guò)“為某些 satoshi 或 UTXO 上色”的方式來(lái)表示代幣。例如,Open Assets 協(xié)議會(huì)使用包含元數(shù)據(jù)的 OP_RETURN 輸出,其中指明了代幣數(shù)量和資產(chǎn) ID。
從本質(zhì)上說(shuō),比特幣區(qū)塊鏈本身并不知道“代幣”的存在——它僅僅是處理數(shù)據(jù)。代幣的有效性(例如供應(yīng)量、歸屬權(quán))由外部錢(qián)包解析 OP_RETURN 數(shù)據(jù)后自行追蹤。
值得注意的是,OP_RETURN 有數(shù)據(jù)大小限制。比特幣核心客戶(hù)端的標(biāo)準(zhǔn)策略規(guī)定:每個(gè) OP_RETURN 輸出最多只能包含 80 字節(jié)的任意數(shù)據(jù)。超過(guò) 80 字節(jié)的數(shù)據(jù)將被視為“非標(biāo)準(zhǔn)交易”,不會(huì)被默認(rèn)轉(zhuǎn)發(fā)。在理論上,一筆交易可以包含多個(gè) OP_RETURN 輸出,以增加附帶數(shù)據(jù)量(每個(gè)最多 80 字節(jié)),但為了防止垃圾交易,比特幣當(dāng)前的標(biāo)準(zhǔn)中繼策略一般只允許每筆交易含有一個(gè) OP_RETURN 輸出。
這種“在比特幣交易中嵌入元數(shù)據(jù)”的能力,使得 2012 年的 Mastercoin 協(xié)議得以誕生,后來(lái)更名為 Omni。Omni Layer 對(duì)早期 Tether 的運(yùn)行起到了關(guān)鍵作用,成為第一批 USDT 轉(zhuǎn)賬的底層傳輸協(xié)議。
在 2010 年代中期的一段時(shí)間里,基于比特幣(Omni)的 USDT 是市場(chǎng)上最主要的穩(wěn)定幣,尤其在 Bitfinex 等交易所中被廣泛使用。Omni 交易實(shí)質(zhì)上是標(biāo)準(zhǔn)的比特幣交易,外加附加的元數(shù)據(jù)。Omni 后續(xù)還發(fā)展出多個(gè)不同實(shí)現(xiàn)類(lèi)別,形成了自己的技術(shù)演進(jìn)路線。






.png)





















