
破解比特幣瓶頸:BTC Layer2 擴容技術的全面審計指南
TechFlow Selected深潮精選

破解比特幣瓶頸:BTC Layer2 擴容技術的全面審計指南
閃電網絡(Lightning Network)、側鏈(Sidechains)、Rollup 等技術統稱為 BTC Layer2 擴容解決方案。
撰文:Beosin
Bitcoin(BTC)作為全球首個加密貨幣,自 2009 年問世以來,逐漸成為數字資產和去中心化金融的基石。然而,隨著用戶數量和交易量的增加,BTC 網絡的問題日益顯現,主要表現為以下幾點:
-
高交易費用:當比特幣網絡擁堵時,用戶需要支付更高的費用以確保交易能儘快被確認。
-
交易確認時間:比特幣區塊鏈平均每 10 分鐘生成一個新區塊,這意味著鏈上交易通常需要等待多個區塊確認才能被視為最終確認。
-
智能合約的侷限性:比特幣的腳本語言功能有限,難以實現複雜的智能合約。
本文中,我們將閃電網絡(Lightning Network)、側鏈(Sidechains)、Rollup 等技術統稱為 BTC Layer2 擴容解決方案,它們在實現快速、低費用交易的同時,保持了 BTC 網絡的去中心化和安全性。Layer2 技術的引入可以提升交易速度和降低交易成本,優化用戶體驗和擴展網絡容量,為 BTC 的未來發展提供了重要的技術支持和創新方向。
閃電網絡
閃電網絡最早的概念叫「支付通道」,其設計思路是通過交易替換的方式不斷更新未確認的交易狀態,直到最終將其廣播到比特幣網絡上為止。中本聰在 2009 年創造比特幣時,就已經提出了支付通道的想法,並在 Bitcoin 1.0 中包含了支付通道的代碼草稿,這一草稿允許用戶在交易被網絡確認之前更新交易狀態。然而,直到《The Bitcoin Lightning Network: Scalable Off-Chain Instant Payment》白皮書的發佈,閃電網絡才真正誕生並進入大眾視野。
如今,支付通道和閃電網絡的實現方案已經非常成熟。截至目前,閃電網絡共有 13,325 個節點,49,417 條通道,總質押的 BTC 數量達到 4,975。

https://1ml.com/
在閃電網絡中,保證用戶資產在轉移過程中的安全性是十分重要的。下面將根據網絡節點的規模闡述閃電網絡是如何運作以及如何保護用戶資產安全性。
雙方用戶向比特幣主網提交兩筆交易:一筆用於開啟通道,一筆用於關閉通道。大致分為以下三步:
1. 通道開啟:
首先,參與雙方用戶將比特幣質押到閃電網絡在 BTC 上的多重簽名錢包中。一旦比特幣被成功質押並鎖定,支付通道即開啟,雙方可以在此通道中進行鏈下交易。

2. 鏈下交易:
一旦通道開啟,用戶之間的所有轉賬交易都將在閃電網絡中進行處理,並且這些鏈下交易不受次數限制。當然,這些交易不需要立即提交到比特幣主網,而是通過閃電網絡的鏈下機制即時完成。

這種鏈下處理方式顯著提高了交易速度和效率,避免了比特幣主網的擁堵和高額交易費用。
3. 通道關閉與賬本結算:
當任意一方的用戶決定退出通道時,將進行最終的賬本結算。這一過程確保通道中的所有資金按最新狀態進行分配。同時,雙方用戶將從多重簽名錢包中提取結算後的餘額,該餘額反映了通道關閉時的實際資金分配。最終,通道會將最終狀態的賬本交易提交到比特幣主網。

閃電網絡的優勢在於:
-
交易速度提升。閃電網絡允許用戶在鏈下進行交易,這意味著交易可以在幾乎瞬間完成,不需要等待區塊確認時間。這樣可以實現秒級別的交易速度,極大提升了用戶體驗。
-
隱私性增強。閃電網絡的鏈下交易不需要在比特幣主鏈上公開記錄,這提高了交易的隱私性。只有通道的開啟和關閉需要在主鏈上記錄,因此用戶的交易行為不會完全公開。
-
微支付支持。閃電網絡非常適合處理小額支付(微支付),如內容付費、物聯網設備支付等。傳統的比特幣交易因手續費較高,不適合頻繁的小額支付,而閃電網絡則解決了這個問題。
閃電網絡面臨的挑戰:
-
網絡流動性問題:閃電網絡依賴於預先在通道中鎖定的比特幣。這意味著用戶必須提前在他們的支付通道中存入足夠的比特幣,以便進行交易。流動性不足可能導致支付失敗,特別是在較大的支付時。
-
路由問題:找到從支付發送方到接收方的有效路徑可能是一個複雜的問題,尤其是在網絡規模較大的情況下。隨著網絡節點和通道的增加,確保支付順利完成的難度也增加。
-
資金託管信任問題:節點可能會遇到惡意攻擊,用戶需要信任他們所連接的節點不會試圖竊取資金。節點是否可以防止私鑰洩露
-
技術標準和互操作性:不同的閃電網絡實現之間需要有一致的技術標準和協議,以確保互操作性。目前,多個開發團隊在開發閃電網絡的不同實現,這可能導致兼容性問題。
-
隱私問題:雖然閃電網絡提高了比特幣交易的隱私性,但交易信息仍可能被追蹤或分析。此外,網絡節點運營者可以看到通過其節點的交易,從而可能洩露某些隱私信息。
閃電網絡的安全性直接影響比特幣的鏈下擴展能力和用戶資金的安全。因此除了公鏈的通用審計項(具體見本文末尾附錄)以外,閃電網絡還需要關注以下重要安全風險點:
-
通道擁堵:檢查閃電網絡系統的設計的全面性,是否會因為悲傷攻擊導致通道擁堵。
-
通道干擾:檢查閃電網絡通道結構的安全性,是否會遭受通道干擾攻擊。
-
通道資產鎖定與解鎖:審查閃電網絡中資產鎖定和解鎖的過程,確保在開通或關閉支付通道時,資金在鏈上和鏈下的轉移是安全和可靠的。
-
狀態更新與關閉:評估通道的狀態更新流程和強制關閉(force-close)機制,確保在出現異常情況時,能夠正確識別並執行最新狀態。
-
時間鎖與哈希鎖合約(HTLC):評估 HTLC 的實施,確保時間鎖和哈希鎖條件能夠正確執行,防止因時間窗口問題導致的資金損失。
-
區塊鏈時間戳依賴:評估閃電網絡對比特幣區塊鏈時間戳的依賴性,確保鏈上和鏈下時間能夠正確協調,防止時間攻擊。
-
路由算法安全:檢查路由算法的效率和安全性,防止用戶隱私暴露和惡意路由操控風險。
-
通道存儲與數據恢復:檢查通道的存儲機制和數據恢復策略,確保在節點故障或意外斷線時能夠恢復通道狀態,避免資金丟失。
側鏈
與閃電網絡不同,側鏈(Sidechain)是一種獨立的區塊鏈,與主鏈(如 BTC 區塊鏈)平行運行,並通過雙向錨定(Two-Way Peg)與主鏈進行互操作。側鏈的目的是在不改變主鏈協議的前提下,實現更多功能和提高擴展性。
側鏈作為獨立的區塊鏈,擁有自己的共識機制、節點和交易處理規則。它可以根據特定應用場景的需求,採用不同於主鏈的技術和協議。通過雙向錨定機制(2WP),側鏈與主鏈實現通信,確保資產在兩者之間自由、安全地轉移。雙向錨定機制(2WP)運行機制大致如下:

-
用戶在主鏈上鎖定 BTC,受信任的機構 1 獲取並使用 SPV 驗證 2 確保用戶鎖定交易的是否確認。
-
受信任機構會在側鏈上發行等值的代幣給用戶。
-
用戶在自由交易過後,在側鏈上鎖定剩餘的代幣。
-
受信任的機構在驗證交易合法性過後,於主鏈解鎖並釋放相應價值的 BTC 給用戶。
注 1: 受信任的機構在雙向錨定機制中扮演關鍵角色,負責管理資產的鎖定和釋放。這些機構需要具有高度的信譽和技術能力,以確保用戶資產的安全。
注 2: SPV 驗證允許節點在不下載完整區塊鏈的情況下,驗證特定交易的有效性。SPV 節點只需下載區塊頭,並通過 Merkle Tree 驗證交易是否包含在區塊中。
側鏈的代表性項目:
CKB(Nervos Network)
Nervos Network 是一個開源的公共區塊鏈生態系統,旨在利用 BTC 的 POW 共識機制的安全性和去中心化優勢,同時引入更具可擴展性和靈活性的 UTXO 模型來處理交易。其核心為 Common Knowledge Base(CKB),是基於 RISC-V 構建,使用 PoW(工作量證明)作為共識的 Layer 1 區塊鏈。其將 UTXO 模型拓展為 Cell 模型,使其可存儲任何數據,支持任何語言編寫腳本從而作為智能合約在鏈上執行。

Stacks
Stacks 通過其 PoX(Proof of Transfer)機制,將每個 Stacks 區塊與比特幣區塊連接。為了開發智能合約,Stacks 設計了專門的 Clarity 編程語言。在 Clarity 中,get-burn-block-info? 函數允許傳入比特幣區塊高度並獲取該區塊的頭部哈希。同時,burn-block-height 關鍵字能夠獲取比特幣鏈的當前區塊高度。這兩個功能使得 Clarity 智能合約能夠讀取比特幣基礎鏈的狀態,從而使比特幣交易可以作為合約觸發器。通過自動執行這些智能合約,Stacks 擴展了比特幣的功能。
有關 Stacks 的詳細分析,可閱讀 Beosin 之前的研究文章:《什麼是 Stacks?BTC 二層網絡 Stacks 可能面臨哪些挑戰?》

側鏈的優勢在於:
-
側鏈可以採用不同的技術和協議,進行各種實驗和創新,而不會影響主鏈的穩定性和安全性。
-
側鏈可以引入主鏈不具備的功能,例如智能合約、隱私保護、代幣發行等,豐富區塊鏈生態系統的應用場景。
側鏈面臨的挑戰:
-
側鏈具有獨立的共識機制,可能不如 BTC 主鏈那樣安全。如果側鏈的共識機制較弱或存在漏洞,可能會導致 51% 攻擊或其他形式的攻擊,影響用戶資產的安全。BTC 主鏈的安全性依賴於其龐大的算力和廣泛的節點分佈,而側鏈可能無法達到同樣的安全標準。
-
雙向錨定機制的實現需要複雜的加密算法和協議,如果其中存在漏洞,可能導致主鏈和側鏈之間的資產轉移出現問題,甚至可能導致資產丟失或被盜。
-
為了在速度和安全之間找到平衡,大多數側鏈的中心化程度比主鏈更高。
Layer2 是一個完整的區塊鏈系統,因此公鏈的通用審計項也適用於側鏈,具體見本文末尾附錄。
此外,由於其特殊性,側鏈還需要進行一些額外的審計:
-
共識協議安全性:審查側鏈的共識協議(如 PoW、PoS、DPoS)是否經過充分驗證和測試,是否存在潛在的漏洞或攻擊向量,如 51% 攻擊、長程攻擊等。
-
共識節點安全性:評估共識節點的安全性,包括密鑰管理、節點防護和冗餘備份,防止節點被攻破或濫用。
-
資產鎖定與釋放:審查側鏈與主鏈之間的資產雙向錨定機制,確保鎖定和釋放資產的智能合約是安全可靠的,防止出現雙花、資產丟失或鎖定失敗的情況。
-
跨鏈驗證:檢查跨鏈驗證的準確性和安全性,確保驗證過程是去中心化和防篡改的,防止驗證失敗或惡意驗證。
-
合約代碼審計:深入審計側鏈上運行的所有智能合約,檢測可能存在的漏洞或後門,尤其是在處理跨鏈操作時的合約邏輯。
-
升級機制:檢查智能合約的升級機制是否安全,是否有適當的審計和社區共識流程,防止惡意升級或合約篡改。
-
節點間通信:檢查側鏈節點之間的通信協議是否安全,是否使用加密通道防止中間人攻擊或數據洩露。
-
跨鏈通信:檢查側鏈與主鏈之間的通信通道,確保數據的完整性和真實性,防止通信被劫持或篡改。
-
時間戳與區塊時間:驗證側鏈的時間同步機制,確保區塊生成時間的一致性和準確性,防止時間差導致的攻擊或區塊回滾。
-
鏈上治理安全性:審查側鏈的治理機制,確保投票、提案和決策過程的透明性和安全性,防止惡意控制或攻擊。
-
代幣經濟審計:檢查側鏈的代幣經濟模型,包括代幣分配、激勵機制和通脹模型,確保經濟激勵不會導致惡意行為或系統不穩定。
-
費用機制:檢查側鏈的交易費用機制,確保其與主鏈和側鏈用戶的需求匹配,防止費用操控或網絡擁堵。
-
資產安全性:審計鏈上資產的管理機制,確保資產的存儲、轉移和銷燬過程安全可靠,不存在未授權訪問或盜竊的風險。
-
密鑰管理:檢查側鏈的密鑰管理策略,確保私鑰的安全性和訪問控制,防止密鑰洩露或被盜用。
Rollup
Rollup 是一種 Layer2 擴展解決方案,旨在提高區塊鏈的交易吞吐量和效率。它通過將大量交易打包(「Rollup」)並在鏈下處理,只將最終結果提交到主鏈,從而大幅減少主鏈的負擔。
Rollup 主要分為 zk-Rollup 和 op-Rollup。但是與 ETH 不同的是,由於 BTC 的圖靈不完備性,無法在 BTC 上使用合約進行零知識證明驗證。傳統的 zk-Rollup 解決方案無法在 BTC 上進行實現。那麼如何使用 zk-Rollup 實現 BTC Layer2?接下來以 B² Network 項目為例:
為了在 BTC 上完成零知識證明驗證,B² Network 創建了 Taproot 腳本,其同時結合了 zk-Rollup 的零知識證明驗證以及 op-Rollup 的激勵挑戰。其運行機制大致如下:

-
B² Network 首先將所有用戶發起的交易進行 Rollup。
-
使用排序器對 Rollup 交易排序後,將 Rollup 交易使用去中心化存儲進行保存並同時交由 zkEVM 進行處理。
-
zkEVM 同步 BTC 鏈狀態後,處理合約執行等交易,將結果合併打包發送到聚合器。
-
Prover 生成零知識證明併發送到聚合器,經聚合器聚合交易以及證明發送到 B² Nodes。
-
B² Nodes 進行零知識證明的驗證並根據去中心化存儲裡的 Rollup 數據創建 Taproot 腳本。
-
Taproot 是一個 value 為 1 satoshi 的 UTXO,其數據結構中的 B² Inscription 存儲了所有的 Rollup 數據,Tapleaf 中存儲了所有的證明的 verify 數據。通過激勵挑戰機制後,其將作為基於 zk 證明驗證的承諾被髮送到 BTC。
Rollup 的優勢在於:
-
Rollup 繼承了主鏈的安全性和去中心化特性。通過定期將交易數據和狀態提交到主鏈,確保了數據的完整性和透明性。
-
Rollup 能夠無縫集成到現有區塊鏈網絡中,如以太坊,使開發者可以輕鬆利用其優勢,而無需大幅修改現有的智能合約和應用。
-
Rollup 通過將大量交易在鏈下處理並打包成一個批次提交到主鏈,大幅提升了交易處理能力,使得每秒交易數量(TPS)顯著增加。
-
Rollup 交易只需在鏈下處理,大幅減少了鏈上交易所需的計算資源和存儲空間,從而顯著降低了用戶的交易費用。
Rollup 面臨的挑戰:
-
如果鏈下數據不可用,用戶可能無法驗證交易和恢復狀態。
-
Rollup 交易需要批量處理並最終提交到主鏈,可能會導致結算時間較長。尤其在 op-Rollup 中,存在爭議期,用戶可能需要等待較長時間才能最終確認交易。
-
ZK Rollup 雖然提供更高的安全性和即時確認,但其計算和存儲需求較高,生成零知識證明需要大量的計算資源。
由於採用的方案為 Rollup,其重點安全審計項與 ETH Layer2 基本一致。
其他(Babylon)
除了傳統的 BTC Layer2 以外,近來還有一些全新概念的與 BTC 生態相關的第三方協議,例如 Babylon:
Babylon 的目標是將 2100 萬 BTC 轉化為去中心化的質押資產。不像 BTC 的其它 Layer2,Babylon 沒有對 BTC 鏈擴容。其本身是一條獨特的鏈,具有特殊的 BTC 抵押協議,主要目的是為了和 PoS 鏈對接,抵押 BTC 為 PoS 鏈提供更強的安全性,解決諸如來自鏈中遠端的攻擊風險和中心化的問題。
架構分為三層:
-
比特幣層:這是 Babylon 的堅實基礎,利用比特幣眾所周知的安全性來確保所有交易都超級安全,就像在比特幣網絡上一樣。
-
巴比倫層:Babylon 的核心是 Babylon 層,這是一個將比特幣與各種權益證明(PoS)鏈連接起來的定製區塊鏈。它處理交易,運行智能合約,並確保整個生態系統中的一切都順利進行。
-
PoS 鏈層:頂層由多個 PoS 鏈組成,每個 PoS 鏈都因其獨特的優勢而被選中。這賦予了 BabylonChain 驚人的可擴展性和靈活性,讓用戶可以享受不同 PoS 區塊鏈的最佳功能。

運作方式是使用在 BTC 鏈上籤署最終的區塊來保護 PoS 鏈。這實質上是通過額外的簽名輪次擴展了基礎協議。最後 +1 輪中的這些簽名具有一個獨特的特徵:它們是可提取的一次性簽名(EOTS)。目的是把 PoS 檢查點集成到 BTC 上,解決 PoS 的長時間解綁期和遠程攻擊問題。
Babylon 的優勢在於:
-
使 PoS 的解綁期變快
-
由於質押了 BTC,價格與 BTC 掛鉤,能夠減輕對應 PoS 網絡的通脹壓力
-
為 BTC 收益開啟了新的途徑
Babylon 面臨的挑戰:
-
質押回報率等經濟設計對 BTC 質押積極性影響較大
-
缺乏 PoS 鏈之間的獎勵一致性規定
第三方協議根據其實現的不同,所關注的安全點也不一致,僅以 Babylon 為例,需要注意的部分安全審計項如下:
-
智能合約安全:BTC 上的質押合約通過 UTXO 腳本實現,需要關注其安全性。
-
簽名算法安全:合約中使用簽名管理用戶的質押,其算法安全性關係到簽名的生成與校驗。
-
協議經濟模型設計:協議的經濟模型在獎勵和懲罰等方面是否設置合理,是否會導致用戶資產損失。
附錄:
公鏈 & Layer2 通用審計項
-
整數溢出:檢查整數上溢和整數下溢
-
死循環:檢查程序的循環判斷條件是否合理
-
無限遞歸調用:檢查程序遞歸調用的退出條件是否合理
-
競爭條件:檢查在併發狀態下,對共享資源的訪問操作
-
異常崩潰:檢查能讓程序主動退出的異常拋出代碼
-
除 0 漏洞:檢查是否有除以 0 的情況
-
類型轉換:檢查類型轉換是否正確,轉換過程中是否丟失重要信息
-
數組越界:檢查是否訪問超出數組界限的元素
-
反序列化漏洞:檢查反序列化過程中有沒有問題
-
功能實現安全:檢查各 RPC 接口實現是否存在安全隱患,是否與 RPC 接口功
-
能設計相符
-
敏感 RPC 接口權限設置是否合理:檢查敏感 RPC 接口的訪問權限設置
-
加密傳輸機制:檢查是否用加密傳輸協議,比如 TLS 等
-
請求數據格式解析:檢查對請求數據的格式解析過程
-
錢包解鎖攻擊:節點解鎖其錢包的時候,被 RPC 請求竊取資金
-
傳統 Web 安全:檢查是否存在以下漏洞:跨站點腳本 (XSS) / 模板注入 /
-
第三方組件漏洞 / HTTP 參數汙染 / SQL 注入 / XXE 實體注入 / 反序列
-
化漏洞 / SSRF 漏洞 / 代碼注入 / 本地文件包含 / 遠程文件包含 / 命令執行注入等傳統漏洞
-
網絡節點身份認證和識別機制:檢查是否存在節點身份識別機制,節點身份識別機制能否被繞
-
路由表汙染:檢查路由表是否能夠被隨意插入或覆蓋數據
-
節點發現算法:檢查節點發現算法是否均衡且不可預測,比如距離算法不平衡等問題
-
連接數佔用審計:檢查 p2p 網絡連接節點數的限制和管理是否合理
-
日蝕攻擊:評估日食攻擊的成本與危害,必要時提供量化分析
-
女巫攻擊:評估投票共識機制,分析投票資格檢查策略
-
竊聽攻擊:檢查通信協議是否洩露隱私
-
異形攻擊:評估節點是否能識別同類鏈節點
-
時間劫持:檢查節點的網絡時間計算機制
-
內存耗盡攻擊:檢查大內存消耗的地方
-
硬盤耗盡攻擊:檢查大文件存儲的地方
-
socket 壓力攻擊:檢查鏈接數量的限制策略
-
內核句柄耗盡攻擊:檢查內核句柄創建的限制,比如文件句柄等
-
持續性的內存洩露:檢查內存洩露的地方
-
哈希算法安全性:檢查哈希算法的抗碰撞性
-
數字簽名算法安全性:檢查簽名算法安全性,算法實現的安全性
-
加密算法安全性:檢查加密算法安全性,算法實現的安全性
-
隨機數生成器安全性:檢查關鍵隨機數生成算法是否合理
-
BFT 實現安全:評估 BFT 算法的實現安全性
-
分叉選擇規則:檢查分叉選擇規則以確保安全性
-
中心化程度檢測:鑑別系統設計中是否存在過度中心化設計
-
激勵機制審計:評估激勵機制對安全性的影響
-
雙花攻擊:檢查共識是否可以防禦雙花攻擊
-
MEV 攻擊審計:檢查區塊打包節點的 MEV 對鏈公平的影響
-
區塊同步過程審計:檢查同步過程中的安全問題
-
區塊格式解析過程審計:檢查格式解析過程中的安全問題,比如解析錯誤導致奔潰
-
區塊生成過程審計:檢查區塊生成過程中的安全問題,包括 Merkle tree root 構建方式是否合理
-
區塊校驗過程審計:檢查區塊簽名內容項及驗證邏輯是否充分
-
區塊確認邏輯審計:檢查區塊確認算法及實現是否合理
-
區塊哈希碰撞:檢查區塊哈希碰撞的構造方式,及碰撞時的處理是否合理
-
區塊處理資源限制:檢查孤兒區塊池、驗證計算、硬盤尋址等資源限制是否合理
-
交易同步過程審計:檢查同步過程中的安全問題
-
交易哈希碰撞:檢查交易哈希碰撞的構造方式,及碰撞時的處理
-
交易格式解析:檢查格式解析過程中的安全問題,比如解析錯誤導致奔潰
-
交易合法性校驗:檢查各類型交易簽名內容項及驗證邏輯是否充分
-
交易處理資源限制:檢查交易池、驗證計算、硬盤尋址等資源限制是否合理
-
交易延展性攻擊:交易是否可以改變內部字段 ( 比如 ScriptSig) 從而改變交易 hash 而不影響交易的有效性
-
交易重放攻擊審計:檢查系統對交易重放的檢測
-
合約字節碼校驗:檢查虛擬機校驗合約的過程的安全問題,比如整數溢出、死循環等
-
合約字節碼執行:檢查虛擬機執行字節碼的過程的安全問題,比如整數溢出、死循環等
-
gas 模型:檢查交易處理 / 合約執行的各原子操作對應的手續費是否與資源消耗成正比
-
日誌記錄的完整性:檢查關鍵信息是否被日誌記錄
-
日誌記錄的安全性:檢查處理日誌的過程中,是否因處理不當造成安全問題,比如整數溢出等
-
日誌包含隱私信息:檢查日誌是否包含密鑰等隱私信息
-
日誌存儲:檢查日誌是否記錄過多內容,導致節點資源消耗
-
節點代碼供應鏈安全:檢查所有第三方庫、組件及公鏈框架對應版本的已知問題
歡迎加入深潮 TechFlow 官方社群
Telegram 訂閱群:https://t.me/TechFlowDaily
Twitter 官方帳號:https://x.com/TechFlowPost
Twitter 英文帳號:https://x.com/BlockFlow_News














