以下內容轉載自 OneKey 中文,略有刪改,原文鏈接:https://x.com/i/web/status/1759039068913197391
幾個月前,Nervos Network 宣布推動 CKB 成為首個「PoW+UTXO」比特幣 L2。
在此前,圈內在談論 BTC L2 的時候,其實深受以太坊的 L2 Rollup 概念影響。此前各種快速搭建的 EVM 版本的 L2,雖然技術成熟、生態發展門檻低,但是其原生安全性一直被詬病。 同時,這類型的 L2 使用起來需要用戶在 BTC 錢包與 EVM 錢包之間來回切換,用戶體驗很不優雅。 總而言之,在這些問題被解決之前,BTC 社區內「挑剔」的 OG 和鯨魚可能沒那麼容易被「FOMO」。種種問題之下,UTXO 同構的 L2 方案能否成為一條新出路,已成為近期熱議的話題。
本文面向入門小白,以「萬惡之源」 UTXO 為起點串起銘文、 CKB 的「無跨鏈橋」 BTC L2 的發展科普。
什麼是 UTXO 和 eUTXO?#
UTXO (Unspent Transaction Output),直譯就是「尚未花費的交易輸出」。比如,你收到了一筆 10 個 BTC 的轉帳,並且沒有花費給其他人,這一筆 10BTC 就是一個 UTXO。
讓我們通過對比和例子來理解。
目前區塊鏈主流的兩個交易記錄模型,也就是 UTXO 模型和賬戶模型。以太坊採用的賬戶模型非常好理解,這個模型就和銀行賬戶、支付寶微信賬戶一樣。這種模型下,賬戶裡的資金總量直觀顯示為一個整體餘額,系統只需要跟蹤用戶賬戶的餘額變化。打個比方:你的賬戶裡有 1000 元的餘額。你購買 600 元的 OneKey Classic 時,系統會在你的賬戶裡計算扣除 400 元,同時在 OneKey 的賬戶裡面增加 400 元。
相比以太坊使用的賬戶模型,比特幣的 UTXO 模型會更像真正的「錢包」和「鈔票」,更像真正的現金交易。 打個比方:想像你有一個錢包袋子,裡面有很多不同面額的鈔票。每一張鈔票都可以看作是一個 UTXO,即一筆你可以使用的錢。在比特幣這樣的系統裡,當你收到別人轉帳的比特幣,這筆錢就像是錢包裡的一張新鈔票,你還沒用它來支付別的東西,所以它是 “未花費的”。
每次你進行一筆交易,比如用一張 1000 元的鈔票買了一個 600 元的 OneKey Classic,你會拿回 400 元的找零。在比特幣系統中,這種操作相當於你用一個 UTXO(1000 元)創建了兩個新的 UTXO:一個是支付給 OneKey(600 元),另一個是找回給自己的(400 元)。你「花費」掉了原來的 UTXO(1000 元),同時「生成」新的 UTXO(600 元和 400 元)。
有了上文,eUTXO(Extended Unspent Transaction Output,即擴展版的尚未花費的交易輸出)的概念,就很好理解了。在 Cardano 這類使用 eUTXO 模型的系統中,它不僅記錄了錢的數量,還能包含更複雜的數據和邏輯(例如,這筆錢只能用來購買特定的商品或服務)。這樣一來,每筆交易不僅是轉移資金,還可以執行一些條件甚至是智能合約的內容。這使得交易變得更靈活,但同時也更複雜。
BRC-20 等銘文與 UTXO 的關係#
如果你對 BRC-20 協議有所了解,你很快就會發現 — — 「卧槽,他們在做的事就是在 UTXO 模型上面跑賬戶模型」。畢竟,協議名字的來源是使用賬戶模型的以太坊的代幣標準 ERC-20。
在 BRC-20 中,代幣的操作,包括部署(deploy)、鑄造(mint)和轉移(transfer),都是通過在比特幣的 UTXO 交易中嵌入 JSON 格式的數據來實現的。這相當於,我們在之前提到的「鈔票」上寫字記錄。這種方式做到比特幣鏈上可以自由發行代幣。可是,比特幣無法管理賬戶模型,且 BRC-20 的內容是放在 Segwit 的 Taproot 腳本中,比特幣無法識別裡面的數字並計算。這就像銀行系統只認鈔票的面額,不會去管你在上面寫了什麼字。
好在,不像中心化的銀行,所有的比特幣交易都是公開的,我們能查到所有的「鈔票」上寫了什麼字。只要我們按照一定的規則(序數理論)去做賬本,在鏈下計算加加減減就行。所以 BRC-20 目前就採取在鏈下構建一個索引伺服器,來實現 BRC-20 代幣的各種賬本計算。但這種方式,顯然會存在中心化的風險 — — 這個維護賬本的服務並沒有 PoW 或者 PoS 的公平博弈機制來保證不做惡。所以這也很好解釋,為什麼 BRC-20 在一些比特幣核心開發者極客的眼裡 — — 這就是畫蛇添足和技術倒退。
所以後面又發展了各種新的銘文協議,來解決 BRC-20 的缺點。比如 ARC-20 和 Runes 採用了一種類似的方法來讓比特幣計算餘額,即直接讓代幣的數量等於 UTXO 中比特幣的數量(單位:聰) — — 1 token = 1 sat,而不是另外計數。這相當於,你在最小面額的鈔票上面打了「特殊記號」,來代表另外一種貨幣。其實也就是幣圈上古歷史出現過的 “染色幣”。
這樣做的好處是,在追蹤交易、計算餘額等方面,不需要任何的鏈下系統。只是需要一個索引伺服器來識別這個「特殊記號」,降低了索引伺服器的成本。
但是這也引入了一個新問題,比特幣網絡為了減少垃圾交易,有一個最小交易輸出限制(546 聰), 導致 ARC-20 這樣的銘文代幣無法拆分出更細顆粒度的交易,導致流動性類似 NFT,不是真正的同質化代幣。但是要引入拆分交易的計算,兜兜轉轉,又不得不進行中心化鏈下索引交易。在這個問題上,ARC-20 卡了很久,幾個月都沒有拆分的方案。目前看起來項目方寄希望於啟發於 BitVM 的 AVM 來實現質押拆分計算,開發難度不小。
CKB 如何實現無跨鏈橋的 L2?#
從技術來講,不少 Meme 型銘文資產發行方案本身給比特幣技術進步的推動有限。銘文創造了許多新的資產,但是應用也止步在了發行資產。
但是其財富效應和 FOMO 讓人們看到了 BTC 生態的想像力。在一次次鏈上玩家的實戰需求中,比特幣網絡 和 UTXO 的種種限制,更刺激了人們對於比特幣擴容和更複雜生態應用的需求。
從擴容的角度,閃電網絡已經是一個足夠棒的 L2,閃電通道通過博弈(基於懲罰的可撤銷承諾交易)實現去信任且運行多年。但閃電網絡的狀態通道架構也基本局限在了支付,無法實現更多複雜的意圖。
前面提到,實現一個相對安全優雅的 L2,走與 BTC 同構的 UTXO 模型,並採用 eUTXO 概念進行擴展,或許是一個出路。公鏈 Ergo 和 Cardano 均已在 eUTXO 模型上有所建樹,都實現了智能合約功能。不過率先想到去實現 L2 解決方案的是 CKB。
CKB 的答案是提出 RGB 的擴展協議:RGB++, 其實與其說是擴展,不如說是「大魔改」。CKB 的拓展繼承了 RGB 協議的核心,但是直接採用不同的虛擬機和驗證方案。RGB 協議作為一個開源智能合約系統協議,其設計目的是在 UTXO 區塊鏈(如比特幣、Liquid)上運行可擴展、穩健和私密的智能合約。目前 v0.11 尚未發布,其虛擬機 AluVM 距離完全落地還有一定的距離(有一說是這一輪牛市結束了都不一定能做出來)。
其技術重點「同構綁定」,是將比特幣 UTXO 映射到 Nervos CKB 的 Cell — — 一種魔改版 UTXO,可以結合實現智能合約能力。對於驗證方案,所有的 RGB++ 交易都會在 BTC 和 CKB 鏈上同步各出現一筆交易。原本的鏈下客戶端驗證被改成了 CKB 的鏈上公開驗證,這對於用戶來說友好了很多,不需要使用獨立的客戶端,不需要自行保存原始交易數據。
粗略地理解,即在比特幣一層發行的 RGB ++ 資產,可以在 CKB 這個二層上使用智能合約實現各種複雜意圖,且不需要使用任何跨鏈橋。
某種意義上,這是一種相對前沿的想法 — — 去做意圖(Intent)跨鏈擴容,而非傳統的資產跨鏈。
L2 們總是在想辦法使用各種方式將 BTC 在 L2 鎖定,但實現擴容和複雜應用,也許只需要在 L2 做面向意圖的應用就行。
目前,RGB++ 已經上線,生態也在快速發展,相信這個方案會給 BTC L2 的正統性探索提供了新的道路,未來可期。