CGV:一文梳理比特幣網絡資產發行歷史脈絡,從染色幣、Mastercoin/Omni 到銘文
作者:Cynic,CGV Research
為什麼不轉向以太坊,而一定要在比特幣上把事情重新做一遍?因為這是比特幣。
比特幣,作為第一個成功的去中心化數字貨幣,自 2009 年問世以來,一直是數字貨幣領域的核心。作為一種創新的支付方式和價值存儲手段,比特幣引發了全球範圍內對加密貨幣和區塊鏈技術的廣泛關注。然而,隨著比特幣生態的不斷成熟和擴展,它也面臨著多種挑戰,包括交易速度、擴展性、安全性以及監管問題。
近期,以 BRC20 為首的銘文生態率先引爆市場,多款銘文實現超百倍漲幅,比特幣鏈上交易嚴重堵塞,平均 Gas 最高超過 300sat/vB。於此同时,Nostr Assets 的空投進一步吸引市場關注,BitVM、BitStream 等協議設計白皮書被提出,比特幣生態方興未艾,暗藏爆發之勢。
CGV research 團隊通過全面盤點比特幣生態的當前狀態,涵蓋技術進展、市場動態、法律法規等,對比特幣技術進行深入分析和審視市場趨勢,我們希望提供一個關於比特幣發展的全景視角。文章首先回顧了比特幣的基本原理和發展歷程,隨後深入探討了比特幣網絡的技術創新,如閃電網絡、隔離見證等,同時對其未來的發展趨勢進行預測。
資產發行:從染色幣說起
銘文之火,本質在於其為普通人提供了一種低門檻發行資產的權利,同時享有簡單性、公平性與便利性。比特幣上銘文協議的產生在 2023 年,但是早在 2012 年,就存在利用比特幣實現資產發行的設想,稱之為染色幣(Colored Coin)。
染色幣:早期嘗試
染色幣是指一組使用比特幣系統來記錄除比特幣以外資產的創建、所有權和轉讓的類似技術,可以用於追蹤數字資產以及第三方持有的有形資產,並通過染色幣進行所有權交易。所謂染色,指的是對比特幣 UTXO 中添加特定的信息,使其與其他比特幣 UTXO 進行區分,這樣就為同質化的比特幣之間帶來了異質性。通過染色幣技術,發行的資產具備眾多和比特幣相同的特性,包括防止雙花、隱私性、安全性、透明性與抗審查性,保證交易的可靠。
值得注意的是,染色幣所定義的協議,並不會被一般的比特幣軟件所實現,因此需要使用特定的軟件才能夠對染色幣相關交易進行識別。很顯然,只有在認同染色幣協議的群體中,染色幣才具備價值,否則,異質化的染色幣將失去其上色的屬性,回退到純粹的 satoshi。一方面,小規模社區所共同認可的染色幣可以借助比特幣的眾多優點進行資產發行與流通;另一方面,染色幣協議想要通過軟分叉合併進最大共識的 Bitcoin-Core 軟件幾乎是不可能的。
Open Assets
2013 年底,Flavien Charlon 提出 Open Assets Protocol,作為染色幣的一種實現。資產發行者利用非對稱密碼學計算資產 ID,保證只有持有資產 ID 私鑰的用戶才能發行相同的資產。對於資產的元數據,利用 OP_RETURN 操作碼存儲到腳本中,稱元數據為 marker output,在不污染 UTXO 的前提下存儲了染色信息。由於利用了比特幣的公私鑰密碼學工具,資產發行可以由多簽進行。
EPOBC
2014 年,ChromaWay 提出 EPOBC(enhanced, padded, order-based coloring)協議,協議包含兩類操作,genesis 與 transfer,genesis 用於資產的發行,transfer 用於資產的轉移。資產的類型無法顯示編碼區分,每一次 genesis 交易就發行一個新的資產,發行時就確定總量。EPOBC 資產必須通過 transfer 操作轉移,如果 EPOBC 資產作為非 transfer 操作交易的輸入,資產會發生丟失。
關於 EPOBC 資產的額外信息,是通過比特幣交易中的 nSequence 字段進行存儲的。nSequence 是比特幣交易中的保留字段,由 32bit 組成,其最低六位用於確定交易類型,低 6--12 位用於確定 padding(用於滿足比特幣協議的抗粉塵攻擊要求)。使用 nSequence 存儲元數據信息的優勢在於其不增加額外的存儲。由於沒有資產 ID 進行標識,每個 EPOBC 資產的交易必須追溯到 genesis 交易以確定其類別及合法性。
Mastercoin/Omni Layer
和上述協議相比,Mastercoin 的商業落地更加成功。2013 年,Mastercoin 進行了歷史上第一個 ICO,籌集 5000 BTC,開啟了新的時代。現在人們所熟知的 USDT,最初是通過 Omni Layer 發行在比特幣上的。
Mastercoin 對比特幣的依賴程度更低,更多地選擇在鏈下維護狀態,鏈上只保存最小化的信息。可以認為,Mastercoin 將比特幣視為一個去中心化的日誌系統,通過任意的比特幣交易發布資產的變動操作。而對於交易有效性的驗證,是通過持續掃描比特幣區塊,維護一個鏈下的資產數據庫來進行的,該數據庫保存著地址與資產的映射關係,其中地址復用了比特幣的地址體系。
早期的染色幣,基本使用腳本的 OP_RETURN 操作碼來存儲關於資產的元數據,在 SegWit 與 Taproot 升級後,新的衍生協議有了更多的選擇。
SegWit 是 Segregated Witness 的縮寫,簡單而言,就是將 Witness(交易中的 input scipt)從交易中分離。分離的主要原因在於防止節點通過修改 input script 來進行攻擊,但同時也附帶了一個好處,變相增大了區塊的容量,可以存放更多的 witness 數據。
Taproot 的一個重要特性是 MAST,讓開發者能夠利用 Merkle Tree 在輸出中包含任意資產的 metadata,用 Schnorr 簽名提升間接性、可拓展性,並且能夠通過閃電網絡進行多跳交易。
Ordinals\&BRC20 及仿盤:盛大的社會實驗
從廣義的角度來說,Ordinals 包含四個組成:
- 一個 BIP,為 sats 定序
- 一個 indexer,利用 Bitcoin Core Node 來追蹤所有 satoshi 的位置(序號)
- 一個錢包,進行 ordinal 相關交易
- 一個 block explorer,識別 ordinal 相關交易
當然,核心還是 BIP/協議。
Ordinals 通過定義一套排序方案(根據被挖出的順序從 0 開始排序),為 Bitcoin 中的最小單位 Satoshi 賦予了序號,令原本同質化的 Satoshi 擁有了異質屬性,帶來了稀缺性。
可以復用 BTC 的基礎設施,單簽、多錢、時間鎖、高度鎖等,並且無需顯式創建 ordinal numbers,匿名性好,沒有顯式的鏈上足跡。缺點同樣明顯,大量的小額且不使用的 UTXO 會增加 UTXO 集合的大小,更嚴重的說法可以稱之為粉塵攻擊。此外,索引所占的空間很大,每次花費特定 sat 需要提供
- 區塊鏈頭
- 到創建該 sat 的 coinbase 交易的 Merkle path
- 創建該 sat 的 coinbase 交易
以證明特定的 sat 被包含在特定的 output 中。
銘文,就是對 sats 銘刻任意內容,具體方式是將內容放到 taproot script-path spend scripts 中,完全上鏈。銘刻內容根據 http response 格式序列化,被 OPPUSH 放進 spend scripts 的無法執行的腳本中,被稱為"envelopes"信封。具體而言,銘刻是在條件語句前添加 OPFALSE,將銘刻內容以 json 格式放進無法進入的條件語句中。銘刻內容的大小被 taproot 腳本所限制,總共不能超過 520 bytes。
由於 taproot 支付腳本要求現存的 taproot 輸出才能使用,銘文需要 commit\&reveal 兩步操作才能完成。第一步,創建一個承諾銘文內容的 taproot 輸出;第二步,利用銘文內容和對應 Merkle Path 來花費上一步的 taproot 輸出,在鏈上 reveal 銘文內容。
銘文最初的目的是為 BTC 引入非同質化代幣 NFT,然而新的開發者在其基礎上模仿 ERC20 創造了 BRC20,為 Ordinals 帶來了發行同質化資產的能力。BRC20 具備 Deploy、Mint、Transfer 等操作,而每次操作都需要 commit\&reveal 兩步執行,交易流程更繁瑣,成本更高。
使用真實數據進行舉例:
選中的部分為銘刻內容,進行解序列化後結果如下:
Atomicals 協議衍生的 ARC20 從設計上降低了交易的複雜度,將每單位的 ARC20 代幣與 satoshi 進行綁定,復用比特幣的交易體系。通過 commit\&reveal 兩步發行資產後,ARC20 代幣之間的轉移可以直接通過轉移對應的 satoshi 完成。ARC20 的設計可能更符合染色幣的字面定義,在原有的代幣上添加新的內容,使其具備成為新的代幣,新代幣的價值不會低於原有代幣,類似於金銀首飾。
客戶端驗證與下一代資產協議
客戶端驗證(client-side validation,CSV)是 Peter Todd 在 2017 年提出的概念,與其同時提出的還有一次性密封條(single-use-seals)的概念。簡單來講,CSV 機制就是鏈下數據存儲、鏈上承諾、客戶端驗證。其中的思想,在之前的資產協議中也有部分體現。當前客戶端驗證的資產協議有 RGB 與 Taproot Assets(Taro)。
RGB
除了客戶端驗證的特點之外,RGB 採用 Perdersen 哈希作為承諾機制,還支持輸出盲化,發送支付請求的時候無需公開接收代幣的 UTXO,而是發送一條哈希值,提供更強的隱私性與抗審查行。當然,在代幣被花費時,盲化的密值需要向接收方公開,以便其驗證交易歷史。
此外,RGB 添加了 AluVM 來實現更強的可編程性。當用戶進行客戶端驗證時,除了驗證發來的支付信息,還需要從支付者處接收該代幣所有交易歷史,一直追溯到該資產發行的創世交易,才能確保交易的終局性。驗證所有的交易歷史,才能夠保證所收到資產的有效性。
Taproot Assets
Taproot Assets 是閃電網絡的開發團隊 Lightning Labs 開發的又一項目,發行的資產可以在閃電網絡上即時、大量、低成本轉移。Taproot Asset 完全以 Taproot 協議為中心進行設計,提升了隱私/拓展性。
witness 數據鏈下存儲,鏈上驗證,鏈下存儲可以存在本地,或者在信息倉庫中(稱為"Universes",類似 git 倉庫)。對 witness 的驗證需要從資產發行起的所有歷史數據,該數據通過 Taproot Assets gossip 層進行傳播。客戶端可以通過本地區塊鏈的拷貝進行交叉驗證。
Taproot Assets 採用 Sparse Merkle Sum Tree 來存儲資產的全局狀態,存儲開銷大,但是驗證效率高,通過 proof of inclusion/non-inclusion 能夠驗證交易,而無需回溯資產的交易歷史。
擴容:比特幣的永恆命題
儘管比特幣擁有著最高的市值,最高的安全性與最高的穩定性,但是其離最初的設想"一種點對點的電子現金系統"卻越來越遠。由於區塊的容量有限,交易的 TPS、費用以及確認時間使得比特幣無法處理大量且頻繁的交易,十餘年來有多種協議試圖解決該問題。
支付通道與閃電網絡:比特幣原教旨主義方案
閃電網絡的工作原理是通過建立支付通道來實現的。任意兩個用戶之間可以建立支付通道,支付通道之間可以彼此連接,構成連通性更強的支付通道網絡,不直接具備通道的兩個用戶之間也可以通過多次跳轉來進行支付。
例如,如果 Alice 和 Bob 想要進行多次交易,而不是每次都在比特幣區塊鏈上記錄,他們可以在他們之間打開一個支付通道。他們可以在這個通道中進行無數次交易,而整個過程只需要在區塊鏈上記錄兩次:一次是在打開通道時,另一次是在關閉通道時。這大大減少了等待區塊鏈確認的時間,也減輕了區塊鏈的負擔。
當前閃電網絡節點超 14000,通道數超 60000,網絡中總容量超過 5000 BTC。
側鏈:比特幣中的以太坊路線
Stacks
Stacks 對自己的定位是比特幣的智能合約層,使用自己發行的 token 作為 Gas token。Stacks 使用微塊機制,比特幣和 Stacks 以同步的方式發展,它們的區塊同時被確認。在 Stacks 中,這被稱為"錨定塊"。整個 Stacks 交易塊對應於一個單獨的比特幣交易,實現了更高的交易吞吐量。由於同時產生區塊,比特幣充當了創建 Stacks 區塊的速率限制器,從而防止其對等網絡遭受拒絕服務攻擊。
Stacks 通過 PoX 的雙重螺旋機制實現共識,礦工發送 BTC 給 STX 質押者以競爭出塊資格,成功贏得出塊資格的礦工在順利完成出塊後能夠獲得 STX 獎勵。在這個過程中 STX 的質押者能夠按照比例獲得礦工發送的 BTC。Stacks 希望通過發行原生 token 來激勵礦工維護歷史賬本,但實際上沒有原生 token 也能實現激勵(見 RSK)。
對於 Stacks 區塊鏈中的交易數據,通過 OP_RETURN 字節碼將交易數據的哈希保存至比特幣交易的腳本中,Stacks 節點可以通過 Clarity 的內置功能讀取比特幣中存儲的 Stacks 交易數據哈希。
Stacks 幾乎可以算得上是一條比特幣的 Layer2 鏈,然而,資產的跨入跨出還存在一些瑕疵。在 Nakamoto 升級之後,Stacks 支持發送 Bitcoin 交易完成資產的跨出,但是交易的複雜性導致比特幣鏈上無法進行驗證,只能通過多簽委員會來進行資產跨出的驗證。
RSK
RSK 採用融合挖礦(Merge-Mine)算法,比特幣礦工可以幾乎無成本地幫助 RSK 進行出塊,獲取額外獎勵。RSK 中沒有原生的 token,仍採用 BTC(RBTC)作為 Gas Token。RSK 有自己的執行引擎,對 EVM 兼容。
Liquid
Liquid 是比特幣的一條聯盟側鏈,節點準入為許可制,由十五個成員負責出塊。資產採取 lock\&mint 的方式,通過發送資產到 BTC 上 Liquid 的多簽地址,資產跨入 Liquid 側鏈;跨出時將 L-BTC 發送到 Liquid 鏈上的多簽地址即可。多簽地址的安全性為 11/15。
Liquid 專注於金融應用,為開發者提供了與金融服務相關的 SDK。當前 Liquid 網絡 TVL 為約 3000 BTC。
Nostr Assets:中心化的進一步加強
Nostr Assets 最初項目名為 NostrSwap,是一個 BRC20 的交易平台。2023--08--03,升級為 Nostr Assets Protocol,支持 Nostr 生態系統中的所有資產轉移,資產的結算和安全性由 Lightning Network 處理。
Nostr Assets 使得 Nostr 用戶可以用 Nostr 公私鑰來發送和接受閃電網絡資產,除了 deposit 和 withdrawl,Nostr Assets 協議上的交易都是 0 gas 且加密的,交易細節保存在 Nostr Protocol 的 relay 上,用 IPFS 進行快速和高效的存取,同時支持自然語言交互,不需要複雜頁面。
Nostr Assets 為用戶提供了一種簡單、便捷的資產轉移、交易方式,結合 Nostr 社交協議的流量效應,未來可能有很大的應用場景。然而,從本質上來看,只是一種用 Nostr 消息來控制(托管)錢包的方法。用戶通過在閃電網絡中轉帳將資產存入 Nostr Assets 的 Relay,相當於將資產存入了中心化交易所。當用戶間想要在 Nostr Assets 中進行資產的轉移和交易時,將使用 Nostr 密鑰對簽名的消息發送至服務端,服務端通過驗證後只需在內部賬本上進行記錄,不需要在閃電網絡或是主網真正執行,所以能夠實現零 Gas 與高 TPS。
BitVM:可編程性與無限擴容
"Any computable function can be verified on Bitcoin"
--- --- Robin Linus, creator of BitVM
BitVM 由 ZeroSync 創始人 Robin Linus 提出,運用 Bitcoin 現有的 OP Code(OPBOOLEAN, OPNOT)組成與非門電路,把程序分解成原始的與非門電路組合,將複雜程序的 spend script root 放進 Taproot 交易中,以較低成本鏈上存儲。根據計算理論,所有計算邏輯都能使用與非門電路構建,所以理論上 BitVM 能夠在 Bitcoin 實現圖靈完備,進行所有計算,但是在實際中還有許多限制。
BitVM 仍然採取 P2P 的運行模式,借鑒 OP Rollup 的思路,存在兩個角色,prover 和 verifier,每次 prover 和 verifier 之間共同構建一個交易,存入保證金,prover 給出結果,verifier 如果計算得出不同結果,向鏈上提交 fraud proof,以罰沒 prover 的資金。
"The real killer app is scaling Bitcoin. [Robin Linus isn't] a big fan of smart contracts. He's not a big fan of increasing Bitcoin's expressivity. He really is interested in making it so that Bitcoin can process millions of transactions per second."
--- --- Super Testnet, BitVM developer
BitVM 提供了更好地可編程性,但是怎麼與擴容聯繫起來?實際上,BitVM 從一開始就是為了鏈下計算、鏈上驗證的擴容而服務的,從 prover、verifier 這些命名也能夠看出端倪。
BitVM 的最佳用例,實際上是最小化信任的橋與 ZKP 擴容(ZK Rollup)。BitVM 的提出其實也是無奈之舉,想在比特幣社區中獲得支持,通過提案增加 OPCODE 的難度太高,所以只能退而求其次利用現有的 OPCODE 實現新的功能。
BitVM 提出了擴容的新範式,但是在現實中存在許多挑戰。
• 過於早期:EVM 有一整套 VM 架構,BitVM 卻只有一個能驗證字符串是 0 還是 1 的函數。
• 存儲開銷:用 NAND 門構建程序需要也許幾百 MB 的數據,十億級的 taptree leaves
• P2P:當前仍是兩方交互,prover-challenger 架構存在激勵問題,正在考慮擴展到 1-N 或者 N-N,像理想中的 OP Rollup 一樣(單個誠實假設)。
結語
通過全文的盤點不難看出,由於主網處理能力的限制與計算能力的缺乏,比特幣如果想要培育更加繁榮多樣的生態,必須將計算轉移到鏈下。
一方面,鏈下計算、鏈下驗證的客戶端驗證方案,利用比特幣交易中的某些字段存儲關鍵信息,將比特幣主網視為分佈式的日誌系統,利用其抗審查性與可靠性確保關鍵數據的可用,從某種意義上說類似於主權 Rollup。這種方案不需要修改比特幣的協議層,可以自由構建自己所需的協議,在當前可行性更高,但是不能完全繼承比特幣的安全性。
另一方面,也有人在推進鏈上驗證的工作,嘗試著利用現有的工具,實現在比特幣上的任意計算,進而利用零知識證明技術實現高效的擴容。但是當前方案仍然非常早期,計算成本過高,預計短期無法落地。
當然有人會問,以太坊為首的一眾區塊鏈都擁有高速的計算能力,為什麼不轉向以太坊,而一定要在比特幣上把事情重新做一遍?
Because It's Bitcoin.
因為這是比特幣。