自2024年第一季以來,BTC 生態的投機熱情並不及2023年,但隨著越來越多的開發者加入並熟悉BTC 模型,BTC 生態在技術層面的進展可謂神速,特別是在可編程性擴充方案上。先前Trustless labs 介紹過BTC 的L2 與UTXO 綁定、BTC 再質押,本文將繼續查缺補漏,對關注度極高的Fractal Bitcoin 以及BRC20、CBRC、ARC20 等BTC 元資料協定的可程式方案進行介紹。
Fractal
Fractal 是一個基於bitcoin core 用戶端軟體虛擬化,透過遞歸創建樹狀的可擴展框架,每一層區塊鏈都能提高整個Fractal 網路的效能。因為復用主要程式碼,Fractal 與比特幣及其基礎設施即時完全相容,例如在挖礦上就完全通用。不同點在於Fractal 啟動了op_cat 操作符,允許了實作更多的邏輯。
Fractal 由Unisat 團隊開發,Unisat 在2024 年1 月的部落格中就提到了Fractal 的相關開發進度。專案在2024 年6 月1 日上線了Beta 測試網,7 月29 日完成了一次測試階段的重置,主網預計將於2024 年9 月上線。
團隊剛剛發布了其代幣經濟學,Fractal 網路將有自己的代幣,50% 由挖礦產出,15% 用於生態系統,5% 向早期投資者預售,顧問與核心貢獻者佔20% ,10% 的社區補助金用於建立合作關係與流動性。
架構設計
Fractal 完全虛擬化bitcoin core 用戶端,將其封裝成可部署和運行的區塊鏈軟體包(Bitcoin Core Software Package, BCSP)。然後透過遞歸錨定在比特幣主網上,獨立運行一個或多個BCSP 實例。透過現代虛擬化技術,實現高效的硬體效能共享,使多個實例在主系統上運行。簡單來說,類似於電腦(BTC 主網)上開了多個虛擬機器執行個體(Fractal 建構的BCSP 執行個體),也可以遞迴下去。
當大量鏈上互動需求出現時,可以選擇性地將這些需求委派到更深層次。這種系統的動態平衡能力有助於避免任何特定層級的過度擁塞。為了更好的用戶體驗,Fractal 也對bitcoin core 做出了一些修改,區塊確認時間改為30 秒或更短,區塊的大小增大了20 倍到20 MB,這保證了足夠的性能與夠短的延遲。
Fractal 啟動了op_cat 操作符,讓更多BTC 上的擴容方案有了探索測試的可能。
在資產垮鏈層面,由於不同實例都運行在一個物理環境下,可以理解為在同一台BTC 框架下運行了多條bitcoin core 鏈,因此實例鏈之間可以通信,透過構造一個通用的資產轉移接口來實現不同層之間的資產無縫轉移。
比特幣以及BRC-20 和Ordinals 等資產可以透過非中心化橋接。底層機制是具有動態替換的旋轉MPC 簽章機制。目前看應該是包裝一層。在後續迭代中,BTC 和其他主網資產也可以作為brc-20 包裝資產存在於Fractal Bitcoin 上。
與典型的以太坊Layer 2 解決方案相比,這種形式的虛擬化在主鏈之外透過附加抽象層實現計算可擴展性,同時保持與主鏈的一致性,不引入新的共識機制。因此,現在的BTCASIC 礦工和礦池可以無縫的加入Fractal 網路。
Fractal 的安全保證就在於其算力大小。在設計上主要透過三個方面來增強Fractal 的PoW 機制的安全性。 Fractal 引入了聯合挖礦,每三個區塊會有一個區塊透過與BTC 礦工合併挖礦生成,以幫助保護網路免受潛在的51% 攻擊;剩下的兩個區塊由Fractal 網路自己的算力產出。由此可見,對於BTC 礦工的影響是Fractal 成功的關鍵,其代幣經濟將不可避免地向礦工進行傾斜。
同時,新建立的虛擬化實例鏈在啟動階段會經歷一個初期脆弱期。在啟動新執行個體時,操作員可以設定特定的區塊高度以提供保護,直到執行個體達到安全和健康的狀態。未來,擁有大量算力的礦工可以將其資源分配到不同的BCSP 實例上,從而增強整個系統的穩健性和彈性。
Fractal主網幣和sats 的關係
Fractal 主網幣的挖礦產出是為了確保鏈運行,fb 鍊和btc 基本上一致,沒有直接運行智能合約的能力,因此複雜的defi 如swap 功能是需要額外的基礎設施。 Unisat 承諾將brc20 sats 將用於swap 使用,這個swap 在Fractal 上運行,也需要自己的節點,這些節點為了自負盈虧收取的服務費用即為sats。
AVM
AVM(Atomicals Virtual Machine)是Atomicals Protocol 的BTC 智慧合約實作。 AVM 創建了一個模擬BTC 腳本允許的虛擬機,並在虛擬機中開啟了多個BTC 原始操作碼,開發者透過比特幣腳本組合實現智慧合約,定義自己的規則來管理資產的創建和轉移。
中本聰在比特幣的最初設計了一種完全表達性的腳本語言設計,包含了一組豐富的原始操作碼指令,這些腳本具備一定的資料儲存能力,且執行是圖靈完備的。後來比特幣核心禁用了一些圖靈完備性所需的操作碼,例如基本的字串連接運算(OP_CAT)和算術運算子(如乘法OP_MUL 和除法OP_DIV)。
AVM 的想法是最大程度發揮BTC 原始操作碼能力。 AVM 虛擬機器模擬了BTC 腳本,透過雙堆疊PDA(可壓入儲存自動機)實現了圖靈完備。這個虛擬機器運作在一個沙盒中,這個沙盒包含了索引器、指令解析器、全域狀態,從而實現智慧合約的處理與狀態的同步與驗證。
AVM 虛擬機器的指令集包含了完整的BTC 操作碼,因此開發者可以正在主網路上利用許多BTC 未啟動了功能進行程式設計。這讓AVM 看起來像是BTC 生態擴展的原生先行網路。
AVM 是一套架構,任何BTC 的元資料協議,如BRC20、ARC20、Runes、CBRC 都可以對其自定義,由應用程式開發者、服務提供者和使用者共同管理,共同形成了一種自發的共識。因此幾乎適用於任何元資料協議,只需要對虛擬機器下的索引器進行微調即可。
AVM已經發布了一個測試版https://x.com/atomicalsxyz/status/1823901701033934975,相關程式碼https://github.com/atomicals/avm-interpreter。
OP_NET
官網:https://opnet.org/#
OP_NET 於2024年第三季提出,是致力於在比特幣網路上引入類似以太坊的智慧合約功能,但更符合比特幣的特性和架構。在OP_NET 上進行交易,只需使用原生比特幣,無需使用其他代幣來支付節點激勵或交易費用。
OP_NET 提供了一套完整、緊湊且易於使用的開發庫,主要使用AssemblyScript 編寫(類似TypeScript,可以編譯為WebAssembly),其設計目標是簡化比特幣相關技術的創建、讀取和操作,尤其是在智能合約和比特幣智慧銘文(BSI, Bitcoin Smart Inscription)方面。
OP_NET 的核心功能與特性
OP_NET 保留了比特幣的區塊共識和資料可用性,確保所有交易都儲存在比特幣網路上並受到其不可篡改的保護。透過一個執行虛擬機器(OP_VM),OP_NET 可以在比特幣區塊上執行複雜計算,所有提交的OP_NET 交易都標記為「BSI」 字串,並在OP_VM 中執行以更新合約狀態。
OP_NET 節點運行著一個WASM 虛擬機,因此支援AssemblyScript、Rust 和Python 等多種程式語言變成,透過利用Tapscript 啟用高級智慧合約功能,使開發者無需許可即可直接在比特幣區塊鏈上部署和交互智能合約。
這些智能合約的程式碼被壓縮後,寫入了BTC 交易中。這回生產一個UTXO 地址,被視為合約地址,用戶與合約互動需要轉移到這個地址。
在於OP_NET 網路互動時,除去BTC 交易的手續費外,用戶還需要額外為支付至少330 聰的手續費,這是為了確保交易不會被BTC 主網礦工認定為「粉塵攻擊」。用戶可以增加更多的gas 費用,OP_NET 網路中交易的打包順序會根據手續費排序,不完全依賴BTC 區塊打包順序。如果用戶支付的OP_NET 交易費大於250000 sat,超過部分將獎勵OP_NET 節點網路。
為了在DeFi 應用中擴展BTC 的使用,OP_NET 提供了Proof of Authority 系統,允許BTC 封裝為WBTC,主網路BTC 是透過多重簽章的方式被橋接取OP_NET協定。
值得一提的是,OP_NET 與SegWit 和Taproot 相容,並且其代幣設計不綁定到UTXO,避免了將代幣錯誤發送給礦工的風險,進一步提高了系統的安全性和可靠性。透過這些特性,OP_NET 為比特幣生態系統注入了更強的智慧合約功能和去中心化應用支援。
OP_NET 的生態項目
OP_NET 的前身是cbrc-20 協議,多數生態計畫直接延續。生態涵蓋了去中心化交易、借貸、市場做市、流動性提供、跨鏈橋等多個領域:
- Motoswap: 這是一個去中心化交易協議,運行在比特幣Layer 1 上。
- Stash: 這是一個去中心化借貸協議,運行在比特幣Layer 1 上。 Stash 使用OP_NET 的WBTC 作為抵押品,允許用戶進行無許可藉貸,貸款以USDs 穩定幣形式發放。
- Ordinal Novus: 這是OP_NET 生態中的市場做市和流動性提供平台。
- Ichigai: 這是一個去中心化聚合器,整合了多個DeFi 平台,用戶可以在一個介面上管理交易、市場追蹤和投資組合。
- SatBot: 一個整合於Telegram 的交易機器人,支援用戶透過Telegram 即時執行交易、追蹤市場和管理投資組合。
- KittySwap: 一個運作在OP_NET 上的去中心化交易所和永續合約平台。
- Redacted: 提供鏈上私密的合規DeFi 私人銀行服務。
- SLOHM Finance: 在OP_NET 上推出的去中心化儲備貨幣計畫。
- BuyNet: 為比特幣DeFi 生態系統開發的買入機器人。
- SatsX: 一個在OP_NET 上開發多功能特性和工具的項目,擴展生態系統的能力。
- Meme Coins 如Satoshi Nakamoto Inu, Zyn, Unga, Pepe: 這些是基於OP_20 協議的Meme 代幣,均由OP_NET 支援。
BRC100
文件:https://docs.brc100.org
BRC-100 是一種基於Ordinals 理論構建的去中心化計算協議,透過給brc20 加入「銷毀」、「鑄造」 等新操作,透過對這些新操作的結合,在索引器中記錄不同地址持有的代幣餘額與狀態,從而實現複雜的defi 操作。開發者他也可以在BRC-100協議的基礎上擴展更多的操作符,來擴展業務。
BRC-100 協定的操作
BRC-100 提供了一些操作: mint2/mint3 和burn2/burn3 ,使得token 可以在UTXO 模型和狀態機模型之間安全地轉換:
- mint2:用於產生新的代幣,且會增加整個系統的流通量。通常需要來自某個應用程式或位址的權限才能操作。
- mint3:與mint2 類似,但不會增加流通量。它主要用於將應用程式中的餘額轉換為UTXO(未花費交易輸出),這些餘額可以在其他應用中使用。
- burn2:用於銷毀代幣,同時更新應用程式的狀態。銷毀的代幣可以在滿足特定條件下透過mint2 重新產生。
- burn3:與burn2 相似,但不減少流通量,而是將代幣轉換為應用程式的狀態。銷毀的代幣可以透過mint3 重新生成。
擴充和相容性
運算能力和狀態轉換可以透過BRC-100擴展協定進行擴展。所有BRC-100 擴展協議相互相容,即實現BRC-100 及其擴展協議的代幣可以在所有應用中使用。同時,BRC-100協定及其擴展協議可以透過改進協議進行更新和升級。
BRC-100協議及其所有擴展和改進協議統稱為BRC-100協議棧,所有BRC-100 擴展協議相互兼容,即實現BRC-100 及其擴展協議的代幣可以在所有應用中使用,並且支持跨鏈操作。有BRC-101,BRC-102和BRC-104:
- BRC-101是一個去中心化的鏈上治理協議,定義瞭如何治理基於BRC-100協議或其擴展協議的應用程式。
- BRC-102是針對BRC-100資產的自動化流動性協議,它為基於BRC-100協議棧的一對代幣定義了基於「恆定乘積公式」(x*y=k)的自動化做市方法。
- BRC-104是一個流動性質押/ 重質押池協議,定義瞭如何透過質押將BRC-20資產、符文資產和BTC包裝為BRC-100資產,以及如何將BRC-100資產獎勵分配給BRC-100資產、BRC -20 種資產、符文資產或BTC 質押者。 BRC-104是BRC-100協定堆疊的Asset Wrapping協定和Yield Farming協定。
BRC-100生態項目
項目方正在為BRC-100 協定索引器探索一種實現最小索引的方法。需求方可以部署自己的最小索引來取得BRC-100協定棧所有資產的狀態,而無需實作所有擴充協定的複雜計算邏輯。而且,最小索引不需要頻繁更新或升級。
BRC-100生態中有3個項目:
- inBRC (Launched) – 第一個BRC-100 市場和索引器: https://inbrc.org/。
- 100Swap (Launched) – 第一個基於BRC-102 協議的比特幣L1 AMM 銘文去中心化交易所: https://100swap.io/。
- 100Layer (Developing) – 比特幣L1 上的比特幣生態系統的流動性協議,基於BRC-104 協議和BRC-106 協議,由去中心化抵押品支持的穩定幣、包裝代幣和流動性挖礦組成: https://100layer.io/。
可編程RUNES(Protorunes)
符文本質上是一種資料結構,儲存在比特幣的OP_RETURN欄位中。與其他基於JSON的協議(如BRC-20)相比,符文更為輕量化,不依賴複雜的索引系統,保持了比特幣的簡單性和安全性。
可編程符文是符文的擴展層,允許創建帶有符文的可編程資產。引入這些資產可以存在於UTXO中,並支援類似AMM(自動做市商)協議的操作。可程式符文的核心理念是在比特幣區塊鏈上利用數據,透過虛擬機器或類似技術,實現智慧合約的功能。
Proto-Runes Protocol
在可程式符文中,最主要的項目是Proto-Runes Protocol,由oyl錢包創始人@judoflexchop團隊主導開發。目前已開源:https://github.com/kungfuflex/protorune
Proto-Runes Protocol是一種標準和規範,為可編程符文提供了框架,透過在子協議(meta protocols)之間管理和轉移符文資產,可以構建AMM、借貸協議或成熟的智能合約。
例如Proto-Runes Protocol在比特幣網路上實現了類似Uniswap的DEX(去中心化交易所),支援符文資產的原子交換和流動性池的創建。透過原型銷毀和原型訊息的組合,用戶可以在不離開比特幣網路的情況下進行去中心化交易和資產管理。
簡單來說,Proto-Runes Protocol允許符文被Burn成可程式符文Protorunes的形式,從而賦予符文額外的功能和用途。
Protoburn和Protorunes
Proto-Runes的關鍵機制之一是Protoburn,它允許使用者將符文銷毀並轉換為僅供子協議使用的表示形式,這些符文資產透過Runestone的指針或符文協議上的edict(法令)目標化,從而在子協議中產生新的資產形式,也就是可程式符文Protorunes。
原型銷毀透過將符文鎖定在OP_RETURN輸出上來確保其不可花費性。這種機制確保了符文資產能夠安全地從主協議轉移到子協議,從而允許在子協議中進行進一步的操作和交易。
這個過程通常是單向的,即資產從符文協議轉移到子協議中,但無法直接轉回。 Protoburn訊息嵌入在Runestone的Protocol欄位中的Protostone內,其協定標籤為13(符文協定標籤)。訊息包含目標子協定ID以及資產的指標等資訊。此機制為子協議之間的資產管理和轉移提供了基礎,並且允許原子交換(Atomic Swaps)等功能。
Protomessage
在Proto-Runes協定中,Protomessage是指在子協定中執行的操作指令。它透過在Protostone結構中編碼並由索引器解析來實現。 Protomessage通常包括對資產的操作請求,如轉帳、交易或其他協議定義的功能。當索引器解析到Protostone中的消息欄位時,該欄位包含一個位元組數組,通常會透過protobuf或其他子協定預期的序列化器進行解析,然後作為參數傳遞給子協定的執行時間。該訊息可能涉及資產轉移、交易邏輯或其他協議功能。
指標用來指定Protostone的目標位置,這個位置可以是交易輸出中的一個UTXO,也可以是另一個Protostone。如果子協議決定不執行某個輸入,交易失敗時,protorunes會被退還到退款指標(refund_pointer)指向的位置,將未使用的資產退還給原交易的發起方。
Proto-Runes協定的運作機制
Proto-Runes協定的運作機制是:索引器先處理符文協定中的Runestone特性,然後再依序處理子協定的協定訊息。所有的Protostone都依照它們在Runestone的Protocol欄位中出現的順序依序處理。為了避免複雜性和潛在的安全漏洞,Proto-Runes協議禁止遞歸執行原型訊息,即每個原型訊息只能執行一次,任何遞歸指令將導致交易失敗,未使用的資產會被退還。
在Proto-Runes協定中,LEB128(Little Endian Base 128)是一種用於表示大整數的可變長度編碼方式。 LEB128編碼被廣泛用於表示協定欄位和訊息,以節省空間並提高處理效率。每個子協定都有一個唯一的協定標籤,用於區分不同的子協定。這些標籤以u128值表示,並且在Protostone中以LEB128編碼的值出現。指標用來指定Protostone的目標位置,可以是交易輸出中的UTXO,也可以是另一個Protostone,甚至引用原型訊息,以便在子協定中實現複雜的操作邏輯。
最新進展:創世Protorune
QUORUM•GENESIS•PROTORUNE 是第一個Protorrune,它的Protoburn 已成功完成,可以看到ord 索引器的正確運行,其中Protoburn發生在沒有cenotaph 的情況下,因為用了OP_RETURN 輸出QUORUM•GENESIS•PROTORUNE 的餘額,可透過此連結看到:https://mempool.space/tx/eb2fa5fad4a7f054c6c039ff934c7a6a8d18313ddb9b8c9ed1e0bc01d3dc9572。
這個創世Protorune 僅作為參考實現,也不打算用於出售。它旨在作為Protorune 標準的公開論壇,並可整合到協議中,為專案代幣提供治理功能。
@judoflexchop團隊仍在為這個genesis protorune 一個WASM 開發索引器:https://github.com/kungfuflex/quorumgenesisprotorune
這是一個在比特幣L1 上實現鏈上治理的功能模型,作為索引器,允許用戶透過protomessage 產生投票代幣,每個提案中同一範圍的符文只能產生一次投票代幣。提案在達到法定人數後自動執行,用戶也可以透過將投票代幣轉移到不可支出的地址來撤回投票。整個過程確保了治理的透明度和有效性。