鏈下擴容全面解析:從狀態通道到閃電網絡

鏈下擴容深度解析

1. 擴容的必要性

區塊鏈的未來是一個宏大的願景:去中心化、安全性和可擴展性;但通常區塊鏈只能實現其中兩個,同時滿足這三個要求被稱爲區塊鏈的不可能三角問題。多年來,人們一直在探索如何解決這一難題,如何在保證去中心化和安全性的前提下,提高區塊鏈的吞吐量和交易速度,即解決擴容問題,是當前區塊鏈發展過程中討論的熱點話題之一。

讓我們先籠統地定義區塊鏈的去中心化、安全性和可擴展性:

  • 去中心化:任何人都可以成爲節點參與區塊鏈系統的生產和驗證,節點數量越多,則去中心化程度越高,從而確保網路不受一小羣大型中心化參與者的控制。
  • 安全性:爲了獲取區塊鏈系統控制權所付出的成本越高,則安全性越高,那麼鏈就可以抵抗較大比例的參與者對其的攻擊。
  • 可擴展性:區塊鏈處理大量交易的能力。

比特幣網路的第一次重大硬分叉就是源於擴容問題。隨着比特幣的用戶數量和交易量的增多,每個區塊上限爲 1MB 的比特幣網路開始面臨擁堵問題;2015 年開始,比特幣社區就擴容問題存在分歧,一方是以 Bitcoin BCH 爲代表的支持擴大區塊的擴容派,另一方是以 Bitcoin Core 爲代表的小區塊派,認爲應當使用隔離見證 Segwit 方案去優化主鏈結構。2017 年 8 月 1 日,Bitcoin BCH 自行開發至 8MB 的客戶端系統開始運行,導致了比特幣歷史上第一次重大硬分叉的出現,同時也由此誕生了新幣種 BCH。

同樣,以太坊網路也是選擇犧牲了一部分可擴展性,用來保障網路的安全性和去中心化;雖然以太坊網路並未像比特幣網路一樣通過限制區塊大小來限定交易量,而是變相轉變爲對單一區塊可容納的燃料費設置上限,但是目的都是爲了實現 Trustless Consensus 並確保節點的廣泛分布(無論取消還是提高限額都會淘汰很多帶寬、存儲和計算量不足的較小節點)。

從 2017 年的 CryptoKitties,DeFi summer、再到後來 GameFi 和 NFT 等鏈上應用的興起,市場對吞吐量需求不斷增加,但即使是圖靈完備的以太坊每秒也只能處理 15~45 筆的交易(TPS),這導致的結果是交易成本不斷增加,結算時間變長,大部分 Dapps 難以承受運行成本,整個網路對於用戶而言也變的又慢又貴,區塊鏈擴容問題亟待被解決。理想狀態下的擴容方案是:在不犧牲去中心化和安全性的前提下,還能盡可能提高區塊鏈網路的交易速度(更短的 finality time)和交易吞吐量(更高的 TPS)。

2. 擴容方案的類別

我們按照"是否改變一層主網"作爲標準,把擴容方案分爲鏈上擴容和鏈下擴容兩大類。

2.1 鏈上擴容

核心概念:通過改變一層主網協議達到擴容效果的解決方案,目前的主要方案是分片。

鏈上擴容有多種方案,此篇文章不進行展開,以下簡要列舉兩種方案:

  • 方案一是擴大區塊空間,即增加每個區塊打包的交易數量,但這會提高對高性能節點設備的要求,提高節點的加入門檻,降低了"去中心化"程度。
  • 方案二是分片,將區塊鏈帳本分成若幹部分,不再是每個節點參與所有記帳,而是由不同分片即不同節點負責不同記帳,並行計算可以同時處理多個交易;這樣可降低節點計算壓力和加入門檻,提高交易處理速度和去中心化程度;但這意味着全網算力被分散,會降低整個網路的"安全性"。

改變一層主網協議的代碼可能會產生難以預料的負面影響,因爲底層任何細微的安全漏洞都會嚴重威脅整個網路的安全性,網路可能會被迫進行分叉或中斷修復升級。例如,2018 年的 Zcash 的通脹漏洞事件:Zcash 的代碼是基於比特幣 0.11.2 版本代碼修改的,2018 年一位工程師發現其底層代碼存在高危漏洞,即代幣可無限增發,隨即團隊花了 8 個月的時間進行祕密修補,漏洞修復後才公開這一事件。

2.2 鏈下擴容

核心概念:不改變現有一層主網協議的擴容解決方案。

鏈下擴容方案又可以細分爲 Layer2 和其他方案:

萬字深度研報:全面解析鏈下擴容

3. 鏈下擴容的方案

3.1 State Channels

3.1.1 概要

狀態通道規定只有在通道打開、關閉或解決糾紛時,用戶才需要與主網進行交互,並把用戶與用戶的交互放在鏈下進行,以此來降低用戶交易的時間和金錢成本,並且實現交易次數不受限制。

狀態通道是簡單的 P2P 協議,適合"基於回合的應用程序",例如,兩人國際象棋遊戲。每個通道都由主網上運行的多籤智能合約管理,該合約控制存入通道的資產,驗證狀態更新,並仲裁參與者之間的爭議(根據帶有籤名和時間戳的欺詐證明)。參與者在區塊鏈網路部署合約後,存入一筆資金並鎖定,雙方籤名確認後,通道正式開通。通道允許參與者之間進行不限次數的鏈下免費交易(只要他們的轉帳淨值不超過存入的代幣總額)。參與者輪流發送狀態更新給對方,等待對方的籤名確認。一旦對方籤名確認,這筆狀態更新就算完成。正常情況下,雙方同意的狀態更新不會上傳主網,只有在出現爭議或關閉通道時,才會依賴主網確認。需要關閉通道時,任一參與者可在主網提出交易請求,如果退出請求獲得全員一致籤名批準,則鏈上立即執行,即智能合約根據通道最終狀態下每個參與者的餘額,分發剩餘的鎖定資金;如果其他參與者沒有籤名批準,則所有人需等待"挑戰期"的結束才能收到剩餘資金。

綜上,狀態通道方案可以大大減少主網計算量,提升交易速度,降低交易成本。

3.1.2 時間線

  • 2015/02,Joseph Poon 和 Thaddeus Dryja 發布了閃電網絡白皮書草案。
  • 2015/11,Jeff Coleman 首次系統性總結了 State Channel 的概念,提出比特幣的 Payment Channel 是 State Channel 概念中的一個子案例。
  • 2016/01,Joseph Poon 和 Thaddeus Dryja 正式發表白皮書《The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments》提出比特幣閃電網絡的擴容方案 Payment Channel(支付通道),該方案僅用於處理比特幣網路上的轉帳支付。
  • 2017/11,第一個基於 Payment Channel 框架下的有關 State Channel 的設計規範 Sprites 被提出。
  • 2018/06,Counterfactual 提出了一個非常詳細的 Generalized State Channels 設計, 這是第一個完全與狀態通道相關的設計。
  • 2018/10,文章 Generalised State Channel Networks 提出 State Channel Networks 和 Virtual Channels 的概念。
  • 2019/02,狀態通道的概念擴展到 N-Party Channels,Nitro 是首個基於該想法建立的協議。
  • 2019/10,Pisa 爲了解決所有參與者需要持續在線的問題,拓展了 Watchtowers 的概念。
  • 2020/03,Hydra 提出 Fast Isomorphic Channels。

3.1.3 技術原理

圖 1 展示的是傳統鏈上的工作流程:Alice 和 Bob 與部署在主網上的智能合約進行交互,用戶通過向鏈上發送交易來改變智能合約的狀態。缺點是會帶來上面討論的時間和成本問題。

萬字深度研報:全面解析鏈下擴容

圖 2 展示的是大多數狀態通道協議遵循的一般工作流程:樂觀情況下,Alice 和 Bob 需要執行與之前相同的操作,但這次他們使用狀態通道,而不是與鏈上合約進行交互。

  • 第一步,Alice 和 Bob 通過從其個人 EOA 存入資金到鏈上合約地址(交互 1,2),這些資金被鎖定在合約中,直到通道關閉時才將餘額返回給用戶;二人籤名確認後,二人之間的狀態通道正式開通。
  • 第二步,Alice 和 Bob 通過該通道理論上可在鏈下開展不限次數的交易(藍色虛線),參與者通過加密的籤名消息相互通信(而不是與區塊鏈網路通信)。雙方用戶都需要對每筆交易進行籤名,以防止雙花作惡。通過這些消息,他們提出自己帳戶的狀態更新,並接受對方提出的狀態更新。
  • 第三步,如果 Alice 想關閉通道結束和 Bob 之間的交易,Alice 需要向合約提交自己帳戶的最終狀態(交互 3),如果 Bob 籤名批準,合約則會根據最終狀態將鎖定的資金釋放返回對應用戶(交互 4,5)。如果 Bob 未響應籤名,合約則會在挑戰期結束後將鎖定的資金釋放返回對應用戶。

萬字深度研報:全面解析鏈下擴容

圖 3 顯示的是悲觀情況下狀態通道的工作流程:起初,兩個參與者存入資金(交互 1,2),然後開始交換狀態更新(藍色虛線)。假設在某個時間點,Bob 在他的輪次中不響應 Alice 發送來的狀態更新籤名(交互 3),此時,Alice 可以通過向合約提交自己最後一次的有效狀態來發起挑戰(交互 4),這個有效狀態也包含了 Bob 之前的籤名,從而證明最後一筆交易已經收到 Bob 的批準,最後狀態已經收到 Bob 的確認。然後,合約允許 Bob 在一段時間內通過將下一個狀態提交給合約進行響應;如果 Bob 響應,則二人可以繼續在狀態通道內進行交易;如果 Bob 在該時間段內沒有響應,則合約自動關閉狀態通道並將資金返回給 Alice(交互 5)。

萬字深度研報:全面解析鏈下擴容

3.1.4 優缺點

優點:

  • 即時性:鏈下交易可以立即確認,不需要等待區塊確認
  • 高吞吐量:只有在通道打開和關閉時需要與主網交互,大大提高了吞吐量
  • 低成本:鏈下交易不需要支付礦工費,只有通道開啓和關閉時需要支付少量費用
  • 私密性:鏈下交易內容不會上鏈,只有最終狀態會被提交給主網

缺點:

  • 復雜性:狀態通道的實現和使用較爲復雜
  • 流動性鎖定:需要預先鎖定一定數量的資金
  • 在線要求:參與者需要保持在線以響應最新狀態
  • 適用範圍有限:主要適用於雙方頻繁交互的場景

3.1.5 應用

比特幣閃電網絡:

概述: 閃電網絡是比特幣網路的小額支付通道,其整體技術演變經歷:2/2 多籤構建單向支付通

查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 讚賞
  • 5
  • 分享
留言
0/400
签名焦虑症vip
· 9小時前
人手一个链下 有意思吗
回復0
反向指标君vip
· 07-09 23:05
三角难题哪有那么好解 搞扩容早晚妥协
回復0
GasFeeDodgervip
· 07-08 08:47
又在讨论三角问题 有病吧
回復0
进场姿势研究员vip
· 07-08 08:43
放弃吧 还挣扎啥 不可能三角懂不懂
回復0
链上酱油师vip
· 07-08 08:42
你说半天 谁听得懂?
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)