鏈下擴容: 從狀態通道到閃電網絡的技術演進與應用

鏈下擴容深度解析

1. 擴容的必要性

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

區塊鏈的去中心化、安全性和可擴展性定義:

  • 去中心化:任何人都可以成爲節點參與系統的生產和驗證,節點數量越多,去中心化程度越高,確保網路不受少數大型中心化參與者控制。

  • 安全性:獲取系統控制權的成本越高,安全性越高,鏈就可以抵抗較大比例參與者的攻擊。

  • 可擴展性:區塊鏈處理大量交易的能力。

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

以太坊網路也是選擇犧牲部分可擴展性來保障網路安全性和去中心化。以太坊網路雖未像比特幣網路通過限制區塊大小來限定交易量,而是變相轉變爲對單一區塊可容納的燃料費設置上限,但目的都是爲了實現Trustless Consensus並確保節點的廣泛分布。

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

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多籤構建單向支付通道,增加RSMC(Revocable Sequence Maturity Contract)後可構建雙向支付通道,再增加HTLC(Hash Time Lock Contract)後可連接支付通道拓展到多人支付,最終構建支付網絡即閃電網絡。通過鏈下小額支付通道,然後借助中間人構成交易網路,可以解決比特幣網路擴容問題。閃電網絡的整體使用遵循着"存款(建立通道)→閃電網絡交易(更新通道狀態)→退款/結算(結束通道)"的流程;理論上閃電網絡每秒可以處理一百萬筆交易。

時間線:

  • 2015年2月,Joseph Poon和Thaddeus Dryja發布了閃電網絡白皮書的草稿;
  • 2016年1月發布正式版白皮書並成立了Lightning Labs;
  • 2018年3月15日,Lightning Labs發布第一個閃電網絡主網版本Lightning Network Daemon (LND) 0.4版本。
  • 2021年初,閃電網絡的公共容量(TVL)只有約4000萬美元
查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 讚賞
  • 5
  • 分享
留言
0/400
数据酸菜鱼vip
· 07-06 20:42
不可能三角吧 谁都想要完美解
回復0
BridgeTrustFundvip
· 07-04 04:09
无解的三角题吧兄弟
回復0
NotGonnaMakeItvip
· 07-04 04:07
扩容整天扯 有啥用啊
回復0
签名焦虑症vip
· 07-04 04:02
节点多就一定安全?不懂就问
回復0
MEV Huntervip
· 07-04 03:47
一直卡着扩容吃吃吃
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)