自 2024 年第一季度以來,BTC 生態的投機熱情並不及 2023 年,但隨着越來越多的開發者加入並熟悉 BTC 模型,BTC 生態在技術層面的進展可謂神速,特別是在可編程性擴展方案上。之前 Trustless labs 介紹過 BTC 的 L2 與 UTXO 綁定、BTC 再質押,本文將繼續查缺補漏,對關注度極高的 Fractal Bitcoin 以及 BRC 20、CBRC、ARC 20 等 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 解決方案相比,這種形式的虛擬化在主鏈之外通過附加抽象層實現計算可擴展性,同時保持與主鏈的一致性,不引入新的共識機制。因此,現在的 BTC ASIC 礦工和礦池可以無縫的加入 Fractal 網絡。
Fractal 的安全性保證就在於其算力大小。在設計上主要通過三方面來增強 Fractal 的 PoW 機制的安全性。Fractal 引入了聯合挖礦,每三個區塊會有一個區塊通過與 BTC 礦工合併挖礦生成,以幫助保護網絡免受潛在的 51% 攻擊;剩下的兩個區塊由 Fractal 網絡自己的算力產出。由此可見,對於 BTC 礦工的影響是 Fractal 成功的關鍵,其代幣經濟將不可避免地向礦工進行傾斜。
同時,新創建的虛擬化實例鏈在啓動階段會經歷一個初期脆弱期。在啓動新實例時,操作員可以設置特定的區塊高度以提供保護,直到實例達到安全和健康的狀態。未來,擁有大量算力的礦工可以將其資源分配到不同的 BCSP 實例上,從而增強整個系統的魯棒性和彈性。
Fractal 主網幣和 sats 的關係
Fractal 主網幣的挖礦產出是爲了保證鏈運行,fb 鏈和 btc 基本一致,沒有直接運行智能合約的能力,因此複雜的 defi 如 swap 功能是需要額外的基礎設施。Unisat 承諾會將 brc 20 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 的元數據協議,如 BRC 20、ARC 20、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 支持。
BRC 100
文檔:https://docs.brc100.org
BRC-100 是一種基於 Ordinals 理論構建的去中心化計算協議,通過給 brc 20 加入“銷燬”、“鑄造” 等新操作,通過對這些新操作的結合,在索引器中記錄不同地址持有的代幣餘額與狀態,從而實現複雜的 defi 操作。開發者他也可以在 BRC-100 協議的基礎上擴展更多的操作符,來擴展業務。
BRC-100 協議的操作
BRC-100 提供了一些操作: mint 2/mint 3 和 burn 2/bur n3 ,使得 token 可以在 UTXO 模型和狀態機模型之間安全地轉換:
mint 2 :用於生成新的代幣,且會增加整個系統的流通量。通常需要來自某個應用程序或地址的權限才能操作。
mint 3 :與 mint 2 類似,但不會增加流通量。它主要用於將應用中的餘額轉換爲 UTXO(未花費交易輸出),這些餘額可以在其他應用中使用。
burn 2 :用於銷燬代幣,同時更新應用程序的狀態。銷燬的代幣可以在滿足特定條件下通過 mint 2 重新生成。
bur n3:與 burn 2 相似,但不減少流通量,而是將代幣轉換爲應用程序的狀態。銷燬的代幣可以通過 mint 3 重新生成。
擴展和兼容性
計算能力和狀態轉換可以通過 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 協議中,LEB 128 (Little Endian Base 128)是一種用於表示大整數的可變長度編碼方式。LEB 128 編碼被廣泛用於表示協議字段和消息,以節省空間並提高處理效率。每個子協議都有一個唯一的協議標籤,用於區分不同的子協議。這些標籤以 u 128 值表示,並且在 Protostone 中作爲 LEB 128 編碼的值出現。指針用於指定 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 生成投票代幣,每個提案中同一範圍的符文只能生成一次投票代幣。提案在達到法定人數後自動執行,用戶也可以通過將投票代幣轉移到不可支出的地址來撤回投票。整個過程確保了治理的透明和有效性。