Stacks Nakamoto 升級,一個準備脫穎而出的蝴蝶
作者:DeSpread
在比特幣網絡展現新的可能性
2023 年初,"銘文 (Ordinals)" 引入比特幣網絡,引發了新的一場如何應當對待網絡區塊空間的爭論。 同一年 5 月,市場對於 BRC-20 的需求激增,導致比特幣網絡短暫無法處理區塊,迫使了全球最大的中心化交易所幣安暫時停止比特幣提現。
Ordinals 的名字來源於 ordinal 一詞,意思是 "按順序排列的數字",是由 Casey Rodarmor 於 2023 年 1 月創建的一個協議,它對比特幣腳本進行了改編,實現了能夠將任意數據附加到比特幣的最小單位 "聰 (sats)" 上的功能。由於通過銘文能夠在比特幣區塊鏈上存儲文本、圖像、語音、視頻和代碼,自然的導致在比特幣生態上出現了許多 PFP 與 NFT,如同以太坊一樣(了解更多)。
截至 4 月 24 日,市值排名前 10 的 NFT 集合;來源:Coingecko
如今,在 Odinals 出現一年多之後,比特幣網絡上發行的 NFT 項目中有三個進入了所有 NFT 市值的排名前 10 名 (NodeMonkes、Runestone 和 Bitcoin Puppets),表明了作為一個可行的智能合約平台的潛力。
比特幣 L2 和 Stacks
這也導致了比特幣網絡上 L2 項目的激增。根據 defillama 的數據,在撰寫本文時 (4 月 15 日),有 11 個項目被歸類為 "比特幣側鏈",總 TVL 接近 9 億美元。雖然對於這些項目是否實際以比特幣網絡為 L1 等的爭議存在,但正在快速成長的 TVL 和項目數反映出市場對比特幣敘事的興趣越來越大。
在這些項目中,Stacks 近期的發展可謂獨樹一幟。它不僅是 2017 年推出的 OG 項目,也是從 2021 年起就目標將智能合約引入比特幣網絡。以面,我們就來探討 Stacks 的近況,以及即將推出的重大升級 "Nakamoto 升級"。
Stacks 的開始 - Blockstack
Munib Ali 2016 年的 TED 演講視頻;來源:TEDx Talks
2017 年,Muneeb Ali 博士完成了他的學位,發表了關於 Stacks (當時稱為 Blockstack) 的白皮書,並在 CoinList 上的代幣銷售中成功籌集了 5200 萬美元。在此之前,他和他的早期團隊已經直接在比特幣 L1 上構建了一個名為 Onename 的協議和應用程序,可以在比特幣網絡上創建去中心化的身份和檔案頁面。這些經驗助於在 2017 年塑造 Stacks 的想法,並且激勵團隊於創建一個更強大的平台。
Blockstack 注意到現有的互聯網過度依賴於中心化的數據存儲和管理,因此希望利用區塊鏈技術創建一個去中心化的網絡,讓用戶對自己的數據擁有主權,創建一個區塊鏈層,讓開發者可以輕鬆地構建 dApps,類似於以太坊。
而在 2019 年,Blockstack 生態的代幣 Stacks (STX) 獲得了美國證券交易委員會 (SEC) 根據 A+ 法規批准,成功籌集了 2300 萬美元。這是首個獲得美國證券交易委員會批准的代幣銷售,引起了市場相當熱烈的關注。
從 2018 年到 2020 年,Stacks 團隊專注於建設堅實的項目基礎設施。Stacks 是一個跨鏈共識區塊鏈,與比特幣網絡無縫集成,旨在幫助比特幣上的程序編輯功能。該團隊還為 Stacks 開發了定制編程語言 Clarity。在此期間,Stacks 從 Union Square Ventures、Harvard Endowment、Winklevoss Capital 和 Naval Ravikant 等知名投資者處籌集了資金。
Stacks 2.0
"我認為比特幣是最好、最分散的貨幣層。目前,所有流通的比特幣中有 1% 是在以太坊上以封裝比特幣 (wBTC) 的形式發行的,這意味著用戶有需要在智能合約中使用比特幣。與其將比特幣封裝在某個智能合約平台中,為什麼不將智能合約功能移植到比特幣網絡中呢?" -- 摘自 『Bitcoin DeFi? It's a Thing, Says Stacks Founder Muneeb Ali, Decrypt』。
2021 年 1 月,Blockstack 推出 Stacks 2.0 主網,成為 Stacks 網絡。如 Muneeb Ali 的採訪所示,Stacks 2.0 的出發點是在不修改比特幣的情況下,將智能合約功能移植到比特幣網絡中。該鏈的設計繼承了比特幣網絡的去中心化和安全性,同時增加了智能合約功能,以提高網絡的可擴展性。
轉移證明 (Proof-of-Transfer)
轉移證明流程;來源:stacks.co
Stacks 的共識機制 -- 轉移證明 (Proof-of-Transfer, PoX),可以看作是燃燒證明 (Proof of Burn) 的延伸,是繼承比特幣網絡安全的關鍵。燃燒證明指的是工作證明 (PoW) 環境中的一種共識機制,通過燃燒網絡中的加密貨幣來進行挖礦。
與礦工燃燒比特幣的 "燃燒證明" 不同,在 "轉移證明" 中,礦工將比特幣發送給參與 Stacking 過程的 STX 持有者。礦工 (Miner) 可以通過運行 Stacks 節點參與挖礦過程,Stacks 節點使用比特幣網絡作為錨鏈來生成和挖掘區塊。轉移證明機制如下:
- 註冊 (Registration):礦工通過向網絡發送共識數據,註冊成為候選礦工。
- 承諾 (Commitment):註冊礦工通過向 STX 代幣持有者發送比特幣來參與挖礦。
- 選舉 (Election):使用可驗證隨機函數 (VRF) 挑選礦工,當選的礦工在 Stack 區塊鏈上創建新區塊。
- 集結 (Assembly):被挑選的礦工創建區塊,並獲得 STX 代幣作為獎勵。
通過選舉程序選出的礦工需要將 Stacks 鏈上所有新交易的哈希值記錄在比特幣區塊中,並通過遵循轉移證明,來完成為比特幣礦工與為維護 Stacks 鏈的 Stacker 的激勵體系。所謂 "Stacking" 的操作與權益證明 (PoS) 網絡上的 "Staking" 類似,不同之處在於 Stacking 是通過鎖定 STX 獲得錨鏈 BTC 的代幣作為獎勵。礦工和 Staker 的具體角色如下圖所示:
礦工和 Stacker 的角色;來源:stacks docs
[礦工]
- 礦工向 Stacker 發送 BTC,以獲得 Stacks 的交易手續費和區塊獎勵。
- 根據礦工發送的 BTC 的數量比例決定每個礦工通過 VRF 被挑選的機率。
- 當選礦工贏得在 Stacks 鏈上創建新區塊和流播微區塊的權利。
- 當選礦工獲得 STX 和交易手續費作為區塊獎勵。
[Stacker]
- Stacker 將其持有的 STX 鎖定一定的周期。
- 可以選擇獨立 Stacking 或與其他 Stacker 共同 Stacking(進行池化)。
- Stacker 提供自己的 BTC 地址,以領取 BTC 獎勵,領取獎勵的概率與鎖定的 STX 數量成正比。
- Stacking 的 STX 將在一開始設定的鎖定周期結束後解鎖。
比特幣 L2?
Stacks 2.0 的意義在於,讓 Stacks 隨著主網的啟動和轉移證明機制的引入,能夠在比特幣網絡上發揮智能合約平台的功能。然而,在比特幣網絡上稱其為 L2 存在一些爭議。
- Stacks 2.0 有自己的代幣,並且有獨立的安全預算,與比特幣網絡截然不同。
- 安全預算:指為維護網絡完整性而分配的資源,包括採礦獎勵資金、運營成本、網絡費用等。
- 在 L1 中,資產不會被安全和驗證者存入或提取,如以太坊和其他生態系統中的 L2。
基於上述原因,很難將 Stacks 2.0 與傳統的 L2 歸為一類。然而, Stacks 也很難稱作為側鏈,因為 Stacks 鏈上的交易最終都必須在比特幣網絡上結算。Stacks 鏈的這種獨特結構,使得 Stacks 的聯合創始人 Muneeb Ali 在 2021 年接受 Decrypt 采访時將其稱為 "Layer 1.5"。
由於比特幣網絡一開始並不是一個智能合約平台,因此引入智能合約或提高可擴展性的舉措並沒有像以太坊和 EVM 鏈一樣。參考 Spartan Group 在 2023 年 12 月發佈的文章 『BITCOIN LAYERS - Tapestry of a Trustless Financial Era』 就可以更進一步了解如何區別比特幣 L2。
比特幣 L2 的三難困境;來源:BITCOIN LAYERS --- Tapestry of a Trustless Financial Era
如上圖所示,比特幣 L2 三難困境包括:
- 開放網絡 (Open Network):採用開放網絡,而不是聯盟模式。
- 無新代幣 (No New Token):不引入新代幣。
- 完全的虛擬機/全局狀態 (Full VM/Global State):採用 "Global State",而不是有限的鏈下合約形式。
Stacks 可以被視為滿足了條件 1 和 3,但不滿足條件 2 的比特幣 L2 解決方案。作為對比,閃電網絡滿足了條件 1 和 2,但由於採用了 "本地共識" 方法,將交易記錄在有別於主鏈的點對點網絡上,因此未能滿足條件 3。
走向 Stacks 3.0,Nakamoto 升級
Stacks 現有的問題
上述 Stacks 鏈的獨特結構是 Stacks 能夠作為比特幣網絡上的智能合約平台發揮作用的原因,但它也因此給系統帶來一些問題,包括:
- 安全模型
- Stacks 鏈擁有獨立的安全預算,這與比特幣網絡的安全預算不同,前者是由 Stacks 礦工支付的 BTC 定義的。
- 這使得鏈的安全性高度依賴於 Stacks 礦工的預算,意味著安全風險增加的可能性。
- 性能和可擴展性
- Stacks 鏈與比特幣網絡之間的連接結構(如轉移證明機制)有助於提高去中心化和安全性,但限制了鏈上性能和可擴展性。
- 特別是通過礦工選舉創建新區塊的過程,將 Stacks 鏈與比特幣區塊生成周期聯繫在一起,導致交易確認延遲非常高。
- 這不僅是用戶體驗上的漏洞,也是 Stacks dApp 開發困難的根源。
- MEV 問題
- 擁有相當比例比特幣哈希率的比特幣礦工可以在其挖掘的比特幣區塊中,審查其他 Stacks 礦工傳送的承諾 (Commitment) 交易(為了參與 STX 挖礦而傳送 BTC 的交易),從而確保自己獲得 Stacks 獎勵和交易費用。
主要目標和設計變更
主要目標
Nakamoto 版本是計劃在今年對 Stacks 鏈進行的一次重大升級,以解決 Stacks 鏈的上述問題,提高鏈的性能和安全性。
- 快速區塊 (Fast blocks)
- 用戶提交的交易在一個區塊內被挖掘和確認的時間從幾十分鐘縮短到幾秒鐘。
- 在 Nakamoto 升級後,通過分離礦工選舉過程與區塊生成機制,允許礦工在到下一次礦工選舉過程之前,能夠生成多個區塊。
- 通過比特幣的終結 (Finality) 性實現交易安全性
- Stacks 鏈上的交易由比特幣網絡的哈希能力來保障。
- 這意味著交易在比特幣網絡上進行結算,從而保證了交易在最安全網絡上的不可更改性。
- 提高抗 MEV 功能
- 改進了為了獲得 STX 獎勵的 BTC 競標機制,以解決礦工選舉過程中的 MEV 問題。
- 更改了礦工選舉算法,使比特幣礦工不具有 Stacks 矿工的優勢。
更改區塊生成機制和 Stacker 角色
Nakamoto 升級之前,Stacks 鏈上生成的區塊與比特幣區塊的比例固定為 1:1,導致區塊生成時間與交易確認時間緩慢。
Nakamoto 升級後,"Tenure-based block production" 的機制將被引入,以加快區塊生成速度。Stacks 鏈中的一個區塊與比特幣區塊不再是 1:1 對應,而是在當選礦工的任期內(也就是在比特幣區塊生成周期內)礦工能夠生成多個 Stacks 區塊。這種機制將區塊生成和確認時間縮短到 5 秒左右,極大地提高了 Stacks 的可擴展性。
而這時生成的 Stacks 區塊將由 Stacker 進行驗證。在 Nakamoto 升級之前,Stacker 只是鎖定 (Stacking) STX 代幣,為 Stacks 網絡的經濟安全做貢獻,但在 Nakamoto 升級之後,Stacker 將承擔簽名者的角色,負責驗證、存儲、簽名和傳播礦工任期內產生的每個 Stacks 區塊。礦工和 Stacker 之間的相互關係如下圖所示:
Nakamoto 升級後,礦工和 Stacker(或簽名者)如何互動;來源:stacks docs
- 礦工向 Stakers 傳送 BTC,以參與 Stacks 礦工的選舉流程。
- 當新礦工當選時,會發生 "任期變更 (tenure change)" 交易,授予新礦工新的任期。
- 礦工每秒創建和驗證區塊的過程中,都必須收集 Stakers 的簽名。
- 區塊驗證需要至少 70% 的 Stacker 在區塊上簽字認可。
如上圖所示,礦工需要 Stacker 的簽名才能創建下一個區塊,Stacker 需要進行簽名操作才能在轉移證明機制下獲得獎勵,並解鎖自己所 Stacking 的 STX 代幣。
改變鏈式結構,實現比特幣的終極性
簽名者 (Stacker) 在任期變更(或礦工選舉)期間,通過只對最新生成的區塊進行簽名來防止礦工任意分叉 Stacks 鏈。這意味著 Stacker 負責監督礦工,對之前生成的區塊進行驗證,並確保新區塊是基於最新區塊生成的。
此外,礦工在提交交易(任期變更交易)時,必須包含索引區塊哈希值 (indexed block hash),其中包括上一任礦工任期內記錄的第一個 Stacks 區塊的哈希值和區塊本身的哈希值。這確保了 Stacks 區塊鏈的狀態被記錄在比特幣區塊中,每一任礦工相同工作,確保 Stacks 區塊鏈的歷史被持續記錄在比特幣網絡上。
比特幣區塊、Stacks 區塊和庫存位圖之間的關係圖;來源:stacks docs
因此,Stacks 區塊和比特幣區塊之間的關係如上圖所示,Stacks 鏈上在第 N 期間提交的交易,要到下兩個期間,即第 N+2 才會被記錄到比特幣區塊中,代表要經過三次的任期變化,才有辦法讓逆轉 Stacks 交易跟逆轉比特幣區塊一樣困難。從用戶的角度來看,鏈的結構與我們所熟知的 L2 相同,交易在幾秒鐘內就能得到確認,而在比特幣的結算需要較久的 30 分鐘左右。
這一系統也給 Stacks 鏈的安全預算帶來了良好的變化。Stacks 區塊驗證的機制是通過至少 70% 的 Stacker 的簽名來發生的,使得 Stacks 的安全預算提升高達 Stacking 資產的 70%,而一旦交易實現了比特幣的最終結算,該安全預算就可以達到比特幣 51% 的採礦能力。
總結一下 Nakamoto 升級後的 Stacks 機制:
- 礦工在提交任期變更交易時,必須包含一個索引區塊哈希值與上一任期中記錄的第一個區塊哈希值。
- 簽名者將強制礦工根據上一任期內簽署的最後一個區塊生成下一個區塊。
- 第 N 任期內提交的交易被將在第 N+2 個任期內寫入比特幣區塊,具有比特幣終結性。
Nakamoto 升級後,Stacks 鏈的交易速度將大幅提升,並同時實現比特幣的終局性,確保數據的不可篡改性。對於用戶來說,這意味著更快的交易確認速度,而對於系統來說,則是更接近於真正的比特幣 L2,繼承比特幣的安全性。
解決比特幣 MEV 問題
在 Nakamoto 升級之前,Stacks 鏈中的 MEV 問題主要通過以下方式發生。擁有相當比例比特幣哈希率的比特幣礦工,如 F2Pool,能夠審查其他 Staking 礦工在比特幣區塊內提交的提交交易,以調整他們提交的 BTC 出價金額,確保他們能夠獲得 Staking 區塊的區塊獎勵和交易費用。 這種行為減少了 Stakers 的 BTC 獎勵,也破壞了對採礦過程的信任。
Nakamoto 升級引入了幾項新的礦工選擇標準,以提高區塊挖掘過程的公平性。
- 礦工參與近期的區塊
- 礦工必須在近期 10 個區塊都中有參與參與礦工的紀錄,才有資格在任期變更時被選中。
- 該標準可以促進礦工社區的穩定性,並阻止偷取區塊鏈獎勵的企圖。
- 考慮過去出價的中位數 (Median of Past Bids Method)
- 礦工被選中的概率是根據過去 10 個區塊中記錄的所有 BTC 出價的中位數計算得取。
- 該標準可以防止礦工通過提交異常出價獲得區塊獎勵。
- 考慮出價總和的絕對值 (Absolute Bid Total)
- 礦工選擇過程基於穩定的經濟標準,考慮出價總和的絕對值,而不是考慮基於即時採礦環境的出價變量。
通過引入這些防止 MEV 的標準,Nakamoto 升級將提高 Stacks 區塊鏈挖礦過程的透明度和信任度。
規劃 Nakamoto 升級
Nakamoto 升級路線圖; 來源:nakamoto.run
自 2022 年底發布 sBTC 和 Nakamoto 白皮書以來,Stacks 基金會和相關開發人員已經為 Nakamoto 升級工作了很長時間。如上圖所示,自 2024 年 2 月 Nakmoto 的功能最終確定並集成到測試網 (稱為 Nakamoto 里程碑 0.3,代號為 Argon) 以來,Nakamoto 升級的更新一直在緊鑼密鼓地進行。而 Nakamoto 升級的第一階段現已在主網上線,升級將陸續推出。
Nakamoto 升級包括兩個階段,每個階段都會進行硬分叉。該過程分為 "實例化 (Instantiation)" 和 "激活 (Activation)" 兩個階段,目的是在 Nakamoto 更新之後,在全面激活功能之前允許有一段時間進行最後的調整,如修復漏洞,從而排除鏈上環境變化能造成的干擾。
原計劃
- 第一階段:實例化 (4 月 22 日開始)
- POX-4 (傳輸證明機制的升級版) 合約和 Nakamoto 版本中包含的大部分代碼將被應用,但功能不會啟用。
- 為簽名者和合作夥伴至少留出兩個 Stacking 週期,讓他們能夠註冊 POX-4 合約。通過這期間,驗證註冊 POX-4 的簽名者是否正確驗證區塊,並確定是否可以進入激活階段。
- 第二階段:激活 (預計在 5 月 15 日至 5 月 29 日之間進行)
- 這一階段將應用 Nakamoto 更新,包括基於簽名者的系統、快速區塊和比特幣最終性,並激活 Nakamoto 規則。
- Nakamoto 規則是指區分 Nakamoto 升級前後的整體邏輯。
Nakamoto 發布計劃;來源:Nakamoto Launch: Testnet and Mainnet Rollout Overview
計劃的變動
升級的第一階段 (實例化) 已於 4 月 22 日開始,假定沒有發現重大 Bug 並完成實例化,第二階段計劃於 5 月中旬開始。 然而,在第一階段開始之後,發現了簽名者恢復系統 (Signer Resiliency/Recovery) 中的一些缺陷,因此 Stacks 基金會於 5 月 1 日宣布修改原計劃。 要點如下
- Nakamoto 升級最初的激活階段只包括一個基本的簽名者恢復系統。
- 升級到高級簽名者恢復系統的計劃是在 Nakamoto 升級激活後的 2024 年底部署,但在實例化階段簽名者入職並取得進展後,判斷需要高級簽名者恢復系統。
- 因此在 Nakamoto 升級激活階段之前,將增加 8 週的開發時間,簽名者恢復系統代碼於 7 月 15 日完成,Nakamoto 升級版本於 8 月 28 日激活。
- 工作內容
- 增強礦工對簽名超時和簽名者錯誤的恢復能力
- 加強簽名者反應和密鑰丟失情況下的流程
- 改進礦工任期的創建和延長方式
- 改進對於網絡不確定性的預防和閃存塊處理
修正的 Nakamoto 發布時間表; 來源: stacks.org
根據修訂後的計劃,代碼開發將在 8 週後的 7 月 15 日完成,而原定於 5 月中旬的 Nakamoto 升級的激活階段,將在大約 3 個月後的 8 月 28 日開始。好消息是,原定於第三季度進行的 sBTC 升級不會推遲,預計激活階段開始後的第四週進行。
sBTC - 實現 L2 的最後一塊拼圖
Nakamoto 升級預計在 5 月份全面激活,其目的是大幅提高 Stacks 鏈的性能,實現 Stacks 區塊的比特幣終結性。然而,要真正成為比特幣網絡的 L2,Nakamoto 升級只是成功的一半。
區分比特幣 L2 的標準; 來源:light tweet
Nakamoto 升級發布後,Stacks 將擁有類似於 Sovereign Rollup 的環境。然而,只有將比特幣網絡的原生資產 BTC 帶入鏈中並加以利用,它才能作為真正的比特幣智能合約平台和 L2 發揮作用。Stacks 創始人 Muneeb Ali 在同一條推文中表示,將 BTC 移入和移出比特幣 Layer 是最難的部分,並解釋說,sBTC 是最接近無信任橋梁的解決方案,是一個去中心化的公共簽名者群體,在不修改比特幣 L1 的情況下能對 BTC 執行掛鉤機制。
sBTC 基於兩個主要屬性,在比特幣網絡和 Stacks 鏈之間架起了 BTC 資產的橋樑
- 1:1 可贖回性: 除非 Stacks 鏈停止運行,否則 sBTC 和 BTC 始終可以以 1:1 的比率贖回。
- 開放的成員資格:任何人都可以加入 sBTC 協議,任何中心化實體都無法控制 BTC。
此前,Stacker 鏈上有如 xBTC 和 aBTC 等 BTC 的相關資產,如以太坊的 wBTC(wrapped BTC),但它們是基於通過中心化托管機構,需要多方簽名的橋接方式。而 sBTC 則是在轉移證明機制上使用 Stacker 作為一組簽名者,以無信任的方式實現 BTC 桥接。
sBTC 如何工作 (1); 來源:stacks docs
sBTC 如何工作 (2); 來源:sbtc.tech
sBTC 的更新和實施計劃於 2024 年第三季度進行。Nakamoto 升級和 sBTC 的更新是 Stacks 雄心勃勃朝向成為比特幣網絡首選智能合約平台的關鍵里程碑,我們可以持續關注 Stacks,觀察它能否真正成為比特幣 L2,並以一個智能合約平台來有效的利用還在沉睡中的 BTC。