區塊鏈的擴容問題,是當前區塊鏈發展過程中討論的熱點話題之一。本文從發展時間線、技術原理、優缺點和應用四個方面詳細介紹了當前主流的鏈下擴容方案。

作者(按首字母排序) Ellaine Xu, Hettie Jiang, June Wang, Walon Lin, Yiliu Lin

出品: Cobo Ventures

封面: Photo by Shubham's Web3 on Unsplash

此篇是 Cobo Global 的第 19  篇文章

目錄

1. 擴容的必要性

2. 擴容方案的類別

3. 鏈下擴容的方案

4. 總結展望

參考目錄

1. 擴容的必要性

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

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

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

比特幣網絡的第一次重大硬分叉就是源於擴容問題。隨著比特幣的用戶數量和交易量的增多,每個區塊上限為 1MB 的比特幣網絡開始面臨擁堵問題;2015 年開始,比特幣社區就擴容問題存在分歧,一方是以 Bitcoin ABC 為代表的支持擴大區塊的擴容派,另一方是以 Bitcoin Core 為代表的小區塊派,認為應當使用隔離見證 Segwit 方案去優化主鏈結構。2017 年 8 月 1 日,Bitcoin ABC 自行開發至 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 和其他方案:

注:表格內的術語定義來自以太坊官網,內容由 Cobo Ventures 總結梳理。

下面我們將從發展時間線、技術原理、優缺點和應用對比等方面展開介紹目前主流的鏈下擴容方案。

3. 鏈下擴容的方案

3.1 State Channels

3.1.1 概要

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

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

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

3.1.2 時間線

上圖時間線展示了 State Channels 的發展和演變的主要里程碑。

  • 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 技術原理

Source: LD Negka and GP Spathoulas, “Blockchain State Channels: A State of the Art” in IEEE Access, vol. 9, pp. 160277-160298, 2021, doi: 10.1109/ACCESS.2021.3131419.

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

Source: LD Negka and GP Spathoulas, “Blockchain State Channels: A State of the Art” in IEEE Access, vol. 9, pp. 160277-160298, 2021, doi: 10.1109/ACCESS.2021.3131419.

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

第一步,Alice 和 Bob 通過從其個人 EOA 存入資金到鏈上合約地址(交互 1,2),這些資金被鎖定在合約中,直到通道關閉時才將餘額返回給用戶;二人簽名確認後,二人之間的狀態通道正式開通。

第二步,Alice 和 Bob 通過該通道理論上可在鏈下開展不限次數的交易(藍色虛線),參與者通過加密的簽名消息相互通信(而不是與區塊鍊網絡通信)。雙方用戶都需要對每筆交易進行簽名,以防止雙花作惡。通過這些消息,他們提出自己賬戶的狀態更新,並接受對方提出的狀態更新。

第三步,如果 Alice 想關閉通道結束和 Bob 之間的交易,Alice 需要向合約提交自己賬戶的最終狀態(交互 3),如果 Bob 簽名批准,合約則會根據最終狀態將鎖定的資金釋放返回對應用戶(交互 4,5)。如果 Bob 未響應簽名,合約則會在挑戰期結束後將鎖定的資金釋放返回對應用戶。

Source: LD Negka and GP Spathoulas, “Blockchain State Channels: A State of the Art” in IEEE Access, vol. 9, pp. 160277-160298, 2021, doi: 10.1109/ACCESS.2021.3131419.

圖 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 萬美元,約不到 10 萬用戶使用閃電網絡。
  • 2021 年 6 月,薩爾瓦多宣布採用比特幣作為法定貨幣,9 月發布基於閃電網絡的錢包 Chivo。
  • 2022 年,Cash App 和包括 OKX、Kraken、Bitfinex 在內的 26 個加密貨幣交易平台宣布支持閃電網絡,實現即時且便宜的的 BTC 存取款和轉賬功能。
  • 2022 年 10 月,Lightning Labs 發布了基於 Taproot 的新協議——Taro protocol(alpha 版本),目前正在測試網上進行測試,未來將可用於在比特幣網絡上鑄造、發送和接收資產,並通過閃電網絡執行即時、大容量和低費用的交易。
  • 2022 年 11 月 23 日,根據 1ml.com,閃電網絡共有 76,236 個支付通道,通道資金 5049 $BTC($81.8M)。

生態發展:

Source:https://blog.coinbase.com/is-the-bitcoin-lightning-network-for-real-26e47029687f

如上圖所示,BTC 閃電網絡生態從下到上依次為:底層的 BTC 網絡—核心基礎設施—各種 Dapps。

核心基礎設施包括

  • 閃電網絡解決方案:個人和企業可以運行、連接到閃電網絡的軟件程序,其中所佔市場份額最大的是閃電實驗室 Lightning Labs。
  • 節點和流動性服務:因為用戶獨立運行自己的節點較為複雜,需要提供對用戶較為友好的界面,幫助管理閃電支付渠道。

核心基礎設施之上是各種支付和金融服務以及應用程序,例如,Strike 建立在 LND 解決方案之上允許用戶買賣 BTC,在 Twitter 上使用 BTC 打賞創作者和允許 Shopify 商家接受 BTC 等。

截止 2022 年 11 月,基於比特幣閃電網絡的 Dapps 已增漲至超 20 個類別和 100 多個應用,應用類別主要包括比特幣閃電網絡支付、錢包、節點管理、瀏覽器擴展程序、播客和流媒體等。當前與節點基礎設施相關的技術基礎層已經基本成熟,錢包支持增加,金融服務和支付集成繼續增長,更多的娛樂應用在閃電網絡上構建,閃電網絡生態系統正在蓬勃發展。

以太坊雷電網絡

概述:

雷電網絡是基於以太坊的小額支付通道,與閃電網絡非常相似,都是通過建立狀態通道的方式來對鏈上交易進行拓展,目的是在以太坊上實現近乎即時、低費用和可擴展的 ERC20 代幣支付。

時間線:

  • 2017 年成立,創始人 Heiko Hees 曾是以太坊的核心開發者以及顧問。
  • 2017 年 10 月 17 日以荷蘭拍賣形式為其代幣 $RDN 發起了 ICO,籌集了超過 3000 萬美元。
  • 2020 年 5 月第一個 Raiden Light Client – Alderaan 在以太坊主網上線,是基於 Typescript 的雷電網絡的實現;
  • 2021 年底,由於長時間缺乏開發進展、信息披露和用戶使用情況,多個交易所將 $RDN 摘牌,包括 Bitkub,NiceHash 和 Binance。

目前這項技術未獲得廣泛採用,原因包含:

1)使用門檻過高:以太坊上的 Gas 費用過高時,開啟通道的成本過高,這成為採用 Raiden 網絡的一大障礙。

2)更先進的擴容技術出現:Raiden Network 於 2015 年開始研發,當時是以太坊唯一的擴容方案。但目前出現了 Rollup 等更好的擴容方案,導致 Raiden Network 本身的用例受限。

生態發展:

目前雷電網絡的生態發展緩慢,團隊正在改造 Raiden Network,使其運行在以太坊 Layer2 Rollup 網絡上,從而進一步降低創建 State Channel 的 Gas 費用;2022 年 5 月團隊宣布 Raiden Network 在 Arbitrum 上線,成為一個 rollup native protocol,L2 之上運行的 L2;該方案把初始創建通道的費用降低了 35%,使其更適用於高頻小額支付場景;雷電網絡未來將以 Rollups 為中心進行轉變,作為與 Rollups 共存的補充方案。

Celer Network

概述:

Celer Network 本質上是一個增加了激勵層(代幣 $CELR)的閃電網絡,可通過鏈外擴展技術和激勵性經濟模型構建快速、易於使用、低成本和安全的高頻交互類型的區塊鏈 Dapps,如電子競技平台等。因為其用戶入場費和獎金的發放有極高的交互頻率,非常適合狀態通道技術的應用。

假設 Alice 和 Carl 之間通過狀態通道進行下棋遊戲,二人需要首先在主網存款創建通道,鏈下有一個管理遊戲規則的合約,並且該合約的地址會在有條件的支付中被引用,舉例,“如果合約判定 Carl 贏得遊戲,Alice 將支付 Carl1 美元”;每個鏈下合約都有一個唯一可識別的鏈下地址,只有在需要時合約才在區塊鏈上進行部署,並且由內置的鏈下地址轉換器分配對應的鏈上地址,其他合約或對象可以明確的引用它。二人之間所有的遊戲狀態轉換(賬戶餘額)經雙方簽名確認,也都發生在鏈下,這些狀態在需要時(出現爭議時)可在鏈上驗證。通過 Celer Network 提供的鏈下地址轉換器 OAT(Off-chain Address Translator),每一個鏈下地址可以唯一映射一個鏈上的智能合約;因此,Alice 和 Carl 之間的遊戲,只要雙方持續合作,沒有爭議產生,整個遊戲(合約+狀態)都無需上鍊操作。

Source: https://www.celer.network/doc/CelerNetwork-Whitepaper.pdf

如上圖所示,Celer Network 基於以太坊實現的鏈下擴容框架由三層組成,從下到上為:

  • cChannel:廣義狀態通道和側鏈套件
  • cRoute:鏈下支付路由,使用的創新路由算法 DBR(Distributed Balanced Routing)提高了性能
  • cOS:鏈下應用程序的開發框架和運行環境

時間線:

  • 2018 年創立,團隊成員來自 MIT、Princeton、UCBerkeley 和 UIUC 的計算機博士。
  • 2019 年 3 月,代幣 $CELR 在幣安 Launchpad 發布。
  • 2019 年 7 月,Celer Network 在以太坊主網上線,發布世界上第一個 Generalized State Channel Network;同時上線電子競技遊戲平台 CelerX,CelerX 是 iOS 和 Android 上第一個 L2 Dapp,其用戶可以通過 Celer Pay 進行即時零手續費支付,暢玩各種技能類游戲。

生態發展:

隨著區塊鏈生態系統朝著多鏈發展,狀態通道被賦予橋接 Layer1 和 Layer2 的新使命。Celer Network 擴展了其廣義狀態信道網絡的核心技術,轉變為支持跨鏈的 L2 擴容聚合平台,目前已推出的產品包含 DeFi 協議 Layer2.finance,信息跨鏈協議 Celer IM 和資產跨鏈橋 cBridge。cBridge 已支持多達 139 種 token 和 38 條鏈。

2022 年 11 月 11 日,MetaMask Bridges Beta 集成 cBridge,11 月 17 日 cBridge 的總交易數達到 1M,當日同時宣布 cBridge 和 Celer IM 集成 zkSync 2.0 測試網。

3.1.6 應用比較

3.2 Sidechains

3.2.1 概要

側鏈的概念首次於 2012 年比特幣開發人員在聊天室中被提出,而第一篇關於比特幣的側鏈文章是由一位 Blockstream 的研究員撰寫並於 2014 年出版。

2014 年的論文當中提出,側鍊是為了加快比特幣交易而出現的一種區塊鏈形態,可以使用更複雜的合約,或是通過改善共識機制(如 PoS),或是區塊參數讓側鏈符合特定作用。側鏈的交易結果最終在傳送回主鏈時,會記錄在驗證者端。這種區塊鏈模式並非新的區塊鏈形態,而是附著於主鏈上並協助主鏈解決問題的基礎建設。

3.2.2 時間線

  • 2012/01,比特幣側鏈的概念在聊天室中被提出
  • 2014/10,比特幣側鏈的論文初次發表:Symmetric Pegged and Asymmetric Pegged
  • 2017/04,POA Network 基於以太坊 Proof of Authentication 共識的一條側鏈上線測試網
  • 2017/10,Matic Network 啟動
  • 2017/12,POA Network 主網上線
  • 2018/01,Skales 測試網上線
  • 2018/10,xDai Chain 測試網上線
  • 2020/06,Skale 主網上線
  • 2020/06,以太坊側鏈 Matic PoS Chain 主網上線
  • 2021/02,Matic Network 品牌更名為 Polygon Network
  • 2021/02,Axie Infinity 遊戲側鏈 Ronin 主網開始運行
  • 2021/12,xDai Chain 與 Gnosis Dao 合併成 Gnosis Chain
  • 2022/03,POA Network 合併入 Gnosis Chain

3.2.3 技術原理

在側鏈的技術原理當中,2014 年的論文提到雙向錨定(Symmetric Pegged)與不協調錨定(Asymmetric Pegged)兩種方式讓側鏈可以與主鏈進行溝通。雙向錨定或不協調錨定的訊息傳遞只會在主鏈跟側鏈的代幣進行跨鏈時發生。由於側鏈用到了跨鏈技術,因此,下文會先行討論兩種最根本的跨鏈技術原理,然後討論側鏈技術在應用層面的優缺點。

Symmetric Pegged

雙向錨定(Symmetric Pegged)是指主鏈上(Parent Chains)跟側鏈上的驗證者,彼此都實時記錄對方當前的狀態(區塊頭信息)。在信息傳遞時,雙向錨定會運用雙向 SPV(Simplified Payment Verification)的技術。當主鏈的 token 要發送到側鏈上時,會產出一個 special output(SPV-Locked Output),而只有側鏈上的驗證者可以用 SPV 證明解鎖。SPV 技術是指只保留區塊頭信息,而從全節點獲取 merkle proof 來驗證交易的技術。

主要流程:

1. 用戶將原生資產發送給 SPV-Locked Output(一個特殊地址)。 

2. 等待 confirmation peirod,結束後即可向側鏈提交 SPV 證明,側鏈可以依據此準備發出鏈上資產。                      

SPV 證明用於驗證交易是否已經發生。它包括一個展示工作證明的區塊頭列表以及一個加密證明(Merkle proof),證明一個輸出(SPV-Locked Output)是在列表中的一個區塊中創建的。

3. 用戶繼續等待 contest period,以避免雙花攻擊。如果有人在此期間提交重組證明(reorganisation proof),其中包含了一個有更多總工作的鏈,而不包括創建 SPV-Locked Output 的區塊,則之前的 SPV 證明無效。

4. 所有確認程序完成後,用戶即可在側鏈上使用新鑄的封裝資產。

Source:https://blockstream.com/sidechains.pdf

Asymmetric Pegged

Asymmetric Pegged 是 2014 年最早提出側鏈的論文當中提及的第二個方式,主要分成 forward 端與 backward 端的交易。在 Asymmetric Pegged 中,側鏈的 validators 必需實時監控主鏈的活動,因此當主鏈需要將代幣打給側鏈時,側鏈可以主動記錄(forward transaction)。然而,當側鏈需要將代幣打回主鏈時,則會發生主鏈因為沒有記錄側鏈信息,而無法確認側鏈區塊狀態的問題。

因此,在這個狀況下 Asymmetric Pegged 就必須引入 Certifiers 的機制,將

  1. Smart ContractID,EpochID 與驗證者 ID
  2. Backward 轉移的名單
  3. 驗證者取款名單
  4. 錯誤報告名單
  5. 聚合所有簽名

記錄在 Certifiers 當中,通常 Certifiers 都需要 stake 固定資產以確保 Certifiers 不會破壞系統,這些 Certifiers 就會負責驗證側鏈傳回的 backward transaction,並經由 aggregated signature 簽名後送回主鏈。

然而隨著目前的技術演進,越來越多的側鏈會選擇使用第三方公證人(Proof of Authority, PoA)的機制,讓多個具名節點針對合約鎖定與釋放的通訊(主網的區塊頭信息)驗證,以確代幣鎖定與鑄造價值相等;或是使用 Relayers 建立中間層讓側鏈可以通過中間層確認主鏈的區塊狀態。

簡單來說側鏈的機制可以總結為:

  • 資產從主鏈-> 側鏈:主鏈鎖定資產,側鏈生成 wrapped asset(由共識機制保證所有節點同意生成);
  • 資產從側鏈-> 主鏈:側鏈銷毀 wrapped asset,主鏈解鎖資產。

可見,側鏈上資產的安全性,並非取決於主鏈,而是取決於側鏈的安全性,再進一步說是側鏈的共識機制。如果有人設法 “憑空” 在側鏈上創造了與鎖定在主鏈上的資產不符的資產,繼而在側鏈銷毀這些資產,再向主鏈提出解鎖並不屬於他們的資產,會有竊取資金的風險。

3.2.4 優缺點

3.2.5 應用

xDai (現今更名為 Gnosis Chain)

概述:

代幣 $xDai 的產生來自於以太坊上的 $Dai 被鎖定在代幣橋上,因為 $xDai = 1USD,這使得 xDai 上的交易手續費容易被計算。xDai 的驗證模式採用 PoSDAO 的模式,是通過質押的方式成為節點,質押者可以獲得固定的 APR 15%,即 $xDai 的年通膨率為 15%。

時間線:

  • 2018 年 9 月,xDai 正式主網上線
  • 2021 年 11 月,Gnosis DAO 上的 GIP16 投票通過併購 xDai 的提案
  • 2022 年 4 月,xDai 與 Gnosis 正式合併且更名為 Gnosis Chain(xDai 與 Gnosis 合併的主要原因在於 Gnosis 這間公司希望可以基於 xDai 給自己生態系具備更多開發場景。)
Source: https://forum.gnosis.io/t/gip-16-gnosis-chain-xdai-gnosis-merge/1904

Gnosis Chain 目前的跨鏈的方式是部署節點在主鏈與側鏈上,而主鏈上的驗證者是通過 committee 選舉出來的 certifiers,換言之 Gnosis Chain 目前是採用 asymmetric pegged 的模式並使用 PoA 的選舉完成。

生態發展:

目前 Gnosis Chain 的 TVL 在 Defi Llama 的排名為第二十,擁有~$53mil 的 TVL,讓人最熟悉的項目是 Dark Forest。在 Defi Llama 的收錄中,目前 Gnosis Chain 共有 35 個進行中的項目,其中頭部項目分佈在 Defi 與跨鏈橋領域。

Polygon

概述:

2017 年,Matic Network 成立。2020 年 6 月同時主網發布以太坊側鏈——Matic PoS Chain 和 Matic Plasma Chain(在 3.3.5 有詳述),2021 年品牌升級為 Polygon。其實 Polygon 被定義為是 L2 還是側鏈一直以來都存在較大的爭議,原因是雖然 Polygon 創始人認為他們是一種 L2 擴容方案,但因為 Polygon 擁有自己的驗證模型,其安全性與以太坊主網不同,另外技術上以太坊如果停擺,Polygon 仍然可以運行,所以在此定義 Polygon 是一個側鏈。

但以 Polygon 的未來路線圖來說,創始團隊希望把 Polygon 逐漸往 L2 靠攏。2022 年,Polygon 在 BD 層面迅速與許多 web2 巨頭公司開展合作(如 Reddit,Disney 和 Instagram) 並且開啟 Hermez zkEVM 以及 Polygon Zero 的計劃,逐漸朝著路線圖上的目標邁進。

Polygon 有四層:以太層、安全層、Polygon 層、執行層。

Source:https://research.thetie.io/polygon-matic-research
  1. 以太層:該層是以太坊與 Polygon 溝通層,是信息交換的中間站,讓 Polygon 可以有質押、解決糾紛與傳遞消息。(relayer 的官方性)
  2. 安全層:使用 PoS 的節點對 Polygon 保證安全,並收取費用
  3. Polygon 層:Polygon 運行的最基礎必要層,用來運行區塊並進行交易整理與共識演算。
  4. 執行層:讀取與執行 Polygon 鏈中的移轉和交易,由執行環境進行。

時間線:

  • 2017 年 Matic Network 成立。
  • 2020 年 6 月 Matic Pos Chain 主網發布。
  • 2021 年 2 月品牌更名為 Polygon。
  • 2022 年 Polygon 宣布與 Reddit,Instagram, Disney 和 Starbucks 開展商業合作。

生態發展:

由於 Polygon 的低成本、EVM 兼容與速度快的特性,Polygon 在 2021 年發展迅速,開始在上面出現各種應用,目前的 TVL 從四月的 $110million 到現今已經 $1.07billion。生態系已經有超過 200 個項目部署,但沒有太多的明星項目的誕生。

Ronin

概述:

Ronin 是一條因為 Axie Infinity 遊戲爆紅而產生的側鏈,在 2021 年 3 月時主網上線。Axie Infinity 一開始部署在以太坊主網上,但因為以太坊高成本的交易手續費與時常擁堵的問題讓 Axie Infinity 的進一步發展受到限制,因此 Axie Infinity 就開發出專門的側鏈解決方案 Ronin。

Ronin 的主要特性為:快速與無縫交易,大幅度減少 Gas Fee,會把得到的 Gas Fee 用來作為錦標賽獎金,資產可以退回以太坊主網與錢包訂製化的解決方案。在跨鏈橋被黑客攻擊前,Ronin 有 $1.4billion 的鎖倉量,同時內建的 NFT Marketplace 也緊追在 Looksrare 後面,可以說是承襲了 Axie Infinity 能量的一條側鏈。目前上面的應用只有 Katana DEX 一個,作為 Ronin 上的代幣交換平台。

Ronin 的驗證機制是 PoA(Proof of Authority),有別於 PoS 可以容納 128 個驗證節點,PoA 至多只能包含 25 個節點,相較起來量體更小。節點大部分為戰略性夥伴或是知名 VC:如 Binance,AnimocaBrands,SparqVenture,Ubisoft 等。有別於 PoS,PoA 是以自身名譽為擔保進行的驗證模塊,更像是聯盟鏈通過權威型機構來進行認證,因此驗證速度與 Gas Fee 的 re-allocate 上可以有比較好的分配與調整。

時間線:

  • 2021 年 3 月 Ronin 主網上線。
  • 2022 年 3 月 Ronin 被黑客攻擊,黑客通過控制 9 個節點當中的其中 5 個節點(為 Axie Infinity 母公司)來不斷盜取資金,最終讓 Ronin 陷入整條鏈資產被掏空的困境。
  • 2022 年 4 月幣安領投並註入資產讓 Ronin 能夠重啟。
  • 2022 年 8 月 Ronin 增加 3 個 PoA 節點以提高安全性。

生態發展:

目前僅有 Axie Infinity 相關生態系會需要使用,被黑客攻擊前的 DEX 和 Bridge 基本都是為了 Axie Infinity 的遊戲內需而部署。

3.2.6 應用比較

3.3 Plasma

3.3.1 概要

Plasma

Plasma 本身指的是一個構建可擴展 Dapp 的框架,開發者可以使用其提供的工具進行開發。Plasma 是作為側鏈的演化方案出現的,旨在將用戶對側鏈 Operator 的信任降至最低,即使 Operator 作惡,Plasma 也可以防止用戶資金被盜。Plasma 的基本原則是,如果 Plasma 鏈上出現安全故障,所有用戶的資產仍可以撤出 Plasma 鏈並退回到主網。

Plasma 鏈

Plasma 鏈,也被稱為 “子鏈”,是依賴於另一個區塊鏈(稱為 “根鏈”/“主鏈”/“主網”)構建的獨立運行的區塊鏈,具有獨立共識機制;每個 “子鏈” 具有一個部署在根鏈上可以自定義的智能合約;不同的子鏈在根鏈對應不同的合約,因此,我們可以將不同的子鏈用於不同的任務。在 POS 共識機制下,任何人在主網 Plasma 合約裡質押代幣可成為該 Plasma 鏈的 Operator;通常 Plasma 鏈處理交易的節點很少,往往是項目方自己運營 1 個節點(Operator),這會帶來新的中心化問題。

Plasma 鏈上再部署合約,可構建子子鏈,這些不同的子鏈可形成一層一層樹狀的 Plasma 網絡(如下圖);Plasma 利用 MapReduce 算法,可將大的計算任務拆分成小任務,再分配給各個子鏈計算,最後一層層匯總後向上提交結果,從而可以快速、低成本處理大量複雜的計算。

Plasma 合約

Plasma 合約是指在根鏈如以太坊上運行的智能合約,用於處理用戶資金進出 Plasma 鏈,負責跟踪 Plasma 鏈的狀態承諾(State Commitments),並通過提交欺詐證明懲罰作惡行為。

Plasma 合約內的數據結構包含:

1) 合約所有者(在初始化時設置)

2)Plasma 鏈區塊列表:每個區塊的 Merkle root 和 Merkle root 提交的時間

3)用戶提交的退出 Plasma 鏈的交易請求列表:包含了提交者地址、UTXO 位置(Plasma 區塊編號,txindex,outindex)

關係

Plasma 合約起著橋樑的作用,允許用戶在以太坊主網和 Plasma 鏈之間移動資產。用戶可以將資金從根鏈轉移到子鏈,再由子鏈處理複雜的計算,從而節省 Gas 費用。在子鏈部署的 DApp 不必與根鏈直接交互,子鏈的狀態更新只需提交塊哈希 Merkle Root 給根鏈,這樣根鏈只接收最小數量的數據,且只有在遇到爭議時才需要計算,可大大減少根鏈的計算量。

3.3.2 時間線

  • 2017/08,Plasma 首次在 Vitalik 和閃電網絡作者之一 Joseph Poon 寫的白皮書 Plasma: Scalable Autonomous Smart Contracts 中被提出。
  • 2018/01,Vitalik 提出第一個正式的 Plasma 應用 Plasma MVP,採用 UTXO 模型和 Proof-of-Authority 共識機制。
  • 2018/03,Vitalik 提出 Plasma Cash,旨在解決 Plasma MVP 中的大規模退出問題。為了使得用戶證明自己擁有代幣的所有權更加容易,所有代幣都用 NFT 表示。
  • 2018/06,Dan Robinson 提出 Plasma Debit,與 Plasma Cash 類似,不同點在於每個 Token 是用戶和 Operator 之間的一個支付通道,通道可以像 Token 一樣被轉移,整個設計類似一個大的 Lightning hub。
  • 2018/11,BANKEX Foundation 提出 Plasma Prime,希望利用 RSA accumulators 解決 Plasma Cash 中存在的大量歷史證明的問題。但目前還沒有正式全面的文檔來解釋 Plasma Prime,仍處於構思階段。
  • 2018 年底,ETH 的價格觸底,在加密領域的樂觀情緒消失的背景下,Plasma Cash 雖然比 Plasma MVP 有所改進,但仍並不是以太坊承諾的 Visa 級解決方案,其 MapReduce 算法構想的 “區塊鏈樹” 看起來也難以實現,因此大部分為 Plasma Cash 開發客戶端的公司都停止了工作,目前開發進展都處於半成品狀態,看起來 Plasma 已死。
  • 2019 年起,以太坊社區開始探索一種新的二層擴容方案 “Rollups”,具體內容我們在下文 Rollups 部分展開。

3.3.3 技術原理

三個核心思想:

  • 鏈外執行:Plasma 的假設是主網不需要驗證所有交易,任何不需要從智能合約移入或移出資產的操作都可以在鏈外處理,所以 Plasma 應用的大部分工作都在主網之外處理。Plasma 鏈經常使用單個 Operator 來執行交易,無需等待其他節點的同意,這樣可以降低成本並提高速度,在犧牲一部分去中心化的前提下提高可擴展性。
  • 狀態承諾:狀態承諾是一種存儲 Plasma 鏈狀態壓縮版本的加密方式。在 Plasma 中,狀態承諾是指一個 Plasma 鏈區塊內所有交易組成的默克爾樹(Merkle Tree)的根哈希值(Merkle Root)。Merkle Root 能夠快速地驗證一筆交易是否包含在一個區塊中(通過 Merkle Proof),因此 Operator 可以通過上傳 Merkle Root 來承諾當前區塊狀態。雖然 Plasma 在鏈外執行交易,但是在主網上執行結算的,所以 Operator 需要定期在以太坊上發布 Plasma 區塊的 Merkle Root 作為 “狀態承諾”,以確認鏈外計算的最終狀態,實現鏈外執行鏈上清算。這種依賴於主網驗證的機制確保了 Plasma 繼承了主網的部分安全性。
  • 退出機制:如果用戶想從 Plasma 鏈撤出資金時,需要向主網的 Plasma 合約證明有可提取且數額正確的資金,用戶可以提交 Merkle Proof 作為證明,Merkle Proof 可以由 Operator 提供,不過 Operator 有作惡風險。

使用流程如下圖所示:

1. 存款:要使用 Plasma 鏈,用戶首先需要在以太坊的 Plasma 合約中存入 ETH 或任何 ERC-20 代幣。當用戶存入資金時,將在 Plasma 鏈上創建一個區塊,該區塊僅包括一筆交易,同時負責監控 Plasma 合約的 Plasma Operator 會在 Plasma 鏈創建相同金額的資產發送到用戶在 Plasma 鏈上的地址,用戶在 Plasma 鏈上收到資金後可以在 Plasma 鏈上交易。

2. 交易:用戶在 Plasma 鏈上通過簽署加密消息來確認每筆交易,然後該交易以及對應的簽名會發送給 Plasma 鏈的 Operator 進行打包。

3.Operator: Operator 將接收的交易打包進 Plasma 鏈區塊,一旦 Operator 收到足夠多的交易來填充一個區塊,這些交易將組成一個 Merkle 樹,Operator 提交 Merkle 根作為對該區塊的狀態承諾到以太坊主網,因為只提交數據量小且數據大小恆定的 Merkle 根,可以大大減少提交到主網產生的 Gas 費用。此外,Operator 提交主鏈的 Plasma 鏈區塊哈希值,如果被任一用戶挑戰成功,則 Plasma 鏈上的錯誤區塊會被回滾,而錯誤區塊的創建者會被懲罰。

4. 退出

4.1 發起提款請求:

為了把資產從 Plasma 鏈提出,用戶需要向主網的 Plasma 合約發起退出交易,並和 Merkle Proof 一起提交(Merkle Proof 可通過 Operator 獲取),Plasma 合約會驗證 Merkle Proof 的有效性,以確保金額正確且沒有被雙花。

用戶同時還需要在提款請求中添加保證金,如果有挑戰者證明該用戶的退出請求無效,則筆保證金的一部分將被沒收作為獎勵給挑戰者。

4.2 挑戰提款請求:

雖然以太坊主網有 Plasma 鏈的狀態信息,但它無法驗證該信息是否正確。惡意用戶可能提出惡意提款請求,例如用戶在主網實際上沒有 1000ETH,但聲稱在主網鎖定了 1000ETH,並請求從 Plasma 提出 1000ETH,或者嘗試提取他們已經花費的資產,並通過提供虛假證明來支撐這些虛假請求。

為了防止以上兩種作惡行為,Plasma 引入了 “挑戰期”(通常為一周)。在此期間內,任何人都可以向主鏈提交欺詐證明挑戰提款請求的有效性。例如,因為一筆歷史交易已被簽名,所以可證明作惡用戶的該筆資金在過去已經被花費,已無效。如果挑戰成功,則 Plasma 合約會拒絕作惡的提款請求,挑戰者將獲得獎勵。

然而,如果挑戰期內沒有任何人提供欺詐證明,用戶的提款請求將被視為有效,可以從以太坊的 Plasma 合約中提取資產,會造成 Plasma 鏈其他誠實用戶的損失,這是 Plasma 在安全性上的一大缺陷。

5. 監控 Plasma Chain(缺點)

用戶為了確保 Plasma 鏈上的資金安全,需要不時地監控 Plasma 鏈,通過運行一個軟件,定期自動同步下載 Plasma 鏈的數據,確保一切正確運行;數據同步頻率取決於 Plasma 智能合約裡設置的參數。

如果 Plasma 鏈上發生惡意行為,比如惡意 Operator 試圖竊取資金,那麼用戶的錢包將自動開始從 Plasma 鏈中提取資金來保障用戶的資金安全;由於用戶無法保障全程在線,類似閃電網絡的 watchower 委託人角色的設計就變得很有必要,但目前完整機制和激勵模型暫未出現。

3.3.4 優缺點

出於上述缺點,很多應用最初使用 Plasma 方案進行擴展,但後來又放棄而轉向 Rollups 方案。

3.3.5 應用

Plasma Group → Optimism(Optimistic Rollup)

2017 年,Plasma 被正式提出後,三個以太坊核心開發者和研究者成立了一個非營利研究小組 Plasma Group,致力於 Plasma 框架的研究。

2019 年 1 月,Plasma Group 發布了一份 Plasma Cash 的說明書,一個月後又發布了一種通用型 Plasma 架構嘗試將 Plapps(plasma apps) 在通用型 Plasma 鏈上部署。但隨著研究的深入,Plasma 的缺點變得越發明顯,儘管技術團隊做了很多嘗試,通用型智能合約始終無法運行在 Plasma 上,使得 Plasma 的開發在 2019 年時陷入停滯。

2019 年 6 月,John Adler 提出了一種稱為 “最小可行的合併共識” 的設計,該設計實現了在以太坊上完全可驗證的鏈外共識系統,而無需零知識加密。之後,Plasma Group 發布了一個擴展版的合併共識設計,即現在被大家所熟知的:Optimistic Rollup。

2020 年 1 月,在 Paradigm 和 IDEO CoLab Ventures350 萬美元的支持下,Plasma Group 從一個非盈利的研究組織轉變為一家營利性初創公司,Optimism 正式誕生,這也意味著團隊正式放棄研究 Plasma,轉向專注於 Optimistic Rollup 的研究 (具體內容見下文 Optimistic Rollup 部分)。

OMG Network → Boba Network(Optimistic Rollup)

OMG Network 是最早提出「鏈下擴容」概念的以太坊擴容項目之一,也一度是該領域的龍頭項目。2013 年,泰國金融支付企業 SYNQA 旗下的子公司 Omise 成立,主要業務是 APP 端在線支付。2017 年,Omise 成立了區塊鏈部門 OmiseGO,同年發行 $2500 萬的 $OMG 代幣,發行總量 1.4 億枚。

2020 年 6 月,OmiseGO 更名為 OMG Network 後主網上線,使用 More Viable Plasma 技術來擴充以太坊網絡的容量;More Viable Plasma 設計,是 Minimal Viable Plasma 的擴展,針對用戶和交易所之間的支付結算和價值交換進行了優化。隨後,Bitfinex 宣布支持 OMG 網絡進行 USDT 存款和取款。

2021 年 6 月,Plasma 路線式微後,OMG Network 宣布更名為 OMG Foundation,與 Enya 公司合作一起推出 Boba Network,並發布新代幣 $BOBA。Boba 是基於 Optimistic Rollup 的以太坊 L2 解決方案,從此 OMG 網絡不復存在,BobaNetwork 繼承了 OMG 網絡的社區。(Boba Network 的具體內容見下文 Optimistic Rollup 部分)

Polygon (previously Matic Network) → 全棧 L2 解決方案

2017 年,Matic Network 成立。2020 年 6 月主網同時發布以太坊側鏈 Matic PoS Chain 和以太坊 Plasma 方案 Matic Plasma Chain,後者採用 Plasma 的鏈下擴容方案,並在 Plasma 的基礎上做了一系列的改進。該擴容方案與以太坊主網通過 Plasma 橋進行跨鏈交互,允許用戶將資產從主鏈轉移到 Plasma 鏈,從而實現快速和低成本的交易。Plasma 方案雖然比 Matic PoS 側鏈更安全,但缺點是用戶從 Plasma 網絡中提取資金需要更長的等待時間(7 天),而 Matic PoS 側鏈僅需要約 3 小時;此外,Plasma 鏈也不能運行通用的智能合約。

雖然 Matic 方案改進了 Plasma More VP,但是仍然無法解決 Plasma 最根本的問題,包括無法確保鏈下數據可用性、大規模退出問題和用戶需要經歷挑戰期等,並且原 Plasma 研究團隊也都逐步轉向開發 Rollup,這使 Plasma 方案的突破難上加難。

2021 年 2 月,Matic 品牌升級為 Polygon,向以太坊鏈下擴容方案的聚合器轉變。同年 5 月,發布核心組件 Polygon SDK,一個用 Golang 語言編寫的模塊化和可拓展的框架,能夠與以太坊實現完全的兼容,開發者可以使用 Solidity、Vyper 等語言以及以太坊工具和庫等直接進行開發。這是一個模塊化、靈活的框架,支持開發者自定義構建自己的鏈下擴容方案如 Plasma、Optimistic Rollups、zkRollups、Validium 以及側鏈如 Polygon PoS 鏈,並且讓它們輕鬆跨鏈互通並可以直接共享以太坊的安全性和網絡效應。當前 Polygon Plasma 的擴容方案已逐漸被社區拋棄,Polygon 將重心移至 Rollup 技術的開發。2021 年 Polygon 通過收購 Hermez 和 Mir Protocol 一步到位集成 ZK Rollups,朝著「全棧」鏈下擴容解決方案又近一步。(具體內容見下文 ZK Rollups 部分)

目前 Polygon 已逐步搭建起從 DeFi、Gamefi 到 NFT 等細分領域的多樣化生態體系,擁有 37k+的 Dapp,1.8B 的總交易數和 135M+的用戶。

總結:

Plasma 是一種技術上的過度方案:受制於 Plasma 技術本身存在的問題,Plasma Group 沒有等到上線基於 Plasma 的項目就轉入了 Optimistic Rollup 的研究;OMG Network 和 Polygon 都在主網上線 Plasma 方案後的一年內,也分別快速轉入了基於 Optimistic Rollups 和 ZK Rollups 方案的開發;綜上,基於 Plasma 的應用乏善可陳。

3.4 Rollups

3.4.1 概要

早在 2014 年,Vitalik 就提出了 “將交易數據和狀態放在鏈上,而計算放在鏈下” 的 shadow chain 的概念。這是 Rollups 的雛形,但在當時似乎沒有受到重視。由於 Plasma 受限的智能合約執行能力和大規模退出(mass exit)問題,以太坊研究者們開始尋找一種新的擴容解決方案– Rollups。

2018 年 9 月,V 神提出用零知識證明來解決以太坊擴容問題。2019 年 6 月,Consensys 研究員兼 Celestia 聯合創始人 John Adler 在 Ethereum Research 上發文 “Minimal Viable Merged Consensus”,提出了帶終止時間的欺詐證明的 Optimistic Rollups 擴容方案。隨著 2019 年 12 月以太坊 Istanbul 硬分叉,calldata 存儲成本下降 4 倍,Rollups 吞吐量大大提升,Rollups 上生態和各種應用迅速發展了起來,而 Rollups 也成為了目前主流的二層網絡(Layer2)擴容解決方案之一。

3.4.2 技術原理

Rollups 的核心思想是將計算過程和狀態存儲放在鏈下,而在打包上鍊的是狀態承諾和被壓縮的交易數據。

Layer1 上會有一份智能合約,負責更新 Rollup 交易的狀態根(狀態承諾)和記錄壓縮後的交易內容。任何人都可以收集在二層網絡上的交易,聚合壓縮形成交易批次(batch)後,以 calldata 的形式發送給主鏈的合約。這個 batch 包括了壓縮後的交易集,前一個區塊狀態的默克爾根(Merkle root)和新狀態根(處理交易之後的狀態根)。主鏈合約收到 batch 後,會檢查前狀態根和合約上的狀態根是否匹配,如果匹配,就能證明 Rollup 狀態是前後連接的,合約就會更新自己的狀態根。

由於交易數據是壓縮後存儲在主網的智能合約的 calldata 裡的,任何人都可以從合約裡拿到交易數據,從而在鏈下重建二層網絡的狀態。用戶能隨時提供 Merkle proof 從而取走二層網絡的資產。因此,Rollups 的安全性仍然是由一層的安全性保證的。

Source: https://vitalik.ca/general/2021/01/05/rollup.html

但 Rollups 是怎麼保證上傳的交易批次(batch)的正確性呢?換句話說,如何得知交易批次裡的後狀態根 (post-state root) 是正確的呢?如果某人能夠提交一個具備任意後狀態根的 batch,而無需承擔任何後果,他們完全可以將 Rollups 中的所有代幣都轉移給自己。而這個問題,帶來了兩種解決方案以及其對應的兩種類型的 Rollups:

  1. 欺詐證明(fraud proofs)→ Optimistic Rollups 
  2. 有效證明(validity proofs)→ ZK Rollups

鏈下虛擬機

Rollups 的計算和狀態存儲是在鏈下的虛擬機上完成的。這個虛擬機完成交易的計算和狀態的改變,同時也是 Layer2 應用的執行環境。

以太坊 Layer2 存在的主要目的是擴容 Layer1,因此,Layer2 需要盡可能地去提供和 Layer1 相似的執行環境。而這個相似程度就是由 Layer2 的虛擬機來決定的,也叫做 EVM 兼容性。EVM 兼容意味著創建一個類似 EVM 的代碼執行環境,使以太坊開發者可以很容易地將智能合約遷移到 EVM 兼容的鏈上,而不必重寫代碼。

實現 EVM 兼容,最簡單的方案就是 fork GETH,比如 BNB 鏈。但對於 Rollups 來說,他們還需要兼容證明的驗證(欺詐證明和有效證明)。Optimistic Rollups 能做到比較好的 EVM 兼容性,比如 Arbitrum 的 Nitro 和 Optimism 的 OVM。而對於 ZK Rollups 的協議來說,有效證明(零知識證明)很難做到 EVM 兼容,因為我們需要把智能合約的邏輯轉變成電路邏輯,而電路邏輯本身非常複雜且需要零知識證明相關知識。因此,目前所有生產級的 ZK Rollups 協議都是特定於應用的,如 Loopring,ImmutableX,dYdX,zkSync1.0,zkSwap。

誰能打包區塊?

理論上來說,任何人都可以打包區塊並上傳給主鏈的合約,但為防止作惡,這個人需要在合約裡質押一筆錢。如果很多人同步打包交易,而只有一個區塊生成,這樣會消耗額外的計算和區塊資源。因此,為了提高交易速度,目前大部分 Rollups 項目都是用中心化的排序器(Centralized Sequencer)進行打包交易的;中心化排序器是最有效率的,但會出現單點故障問題。

此外,我們可以進行排序器拍賣,POS 驗證節點隨機抽人或者通過 DPoS 投票的方式決定打包區塊的人。排序器拍賣能捕獲 MEV 價值,但不能解決單點故障的問題。POS 和 DPoS 都需要鎖定資金,這會降低資金使用效率。

交易壓縮

壓縮技巧是 Rollups 實現可擴展性的關鍵之一。壓縮使得鏈上存儲的數據量減少,從而降低成本。

一筆簡單的 ETH 轉賬交易在以太坊需要~110 字節,而在 Rollups 中只需要~12 字節。其中一部分原因來自於編碼,還有一部分原因來自於巧妙的壓縮技巧。比如,我們可以在主鏈合約上存儲一個地址和索引的映射表,而 20 字節的地址就可以用 3~4 個字節的索引來替代了。此外,BLS 集合算法可以將多個簽名壓縮成一個簽名,從而減少簽名大小(在 ZK Rollups 裡,零知識證明替代了簽名)。

下面這個圖片顯示了以太坊上一筆簡單交易的具體壓縮情況:

https://vitalik.ca/general/2021/01/05/rollup.html

交易成本

我們知道了通過交易壓縮可以減少 Rollup 交易在鏈上的存儲成本,那 Rollup 交易成本到底由什麼組成呢?

Rollups 交易成本 = L1 數據存儲成本+ L2 計算處理成本

其中,L1 存儲成本遠遠大於 L2 計算的成本,所以要節約成本,我們需要找到 L1 上性價比最高的存儲空間。以太坊上有三種數據存儲位置:memory,storage 和 calldata。calldata 是一個不可修改的、非持久性的區域。calldata 可以被用來保存函數的輸入數據。它不會改變以太坊網絡本身的狀態,因此 calldata 的存儲成本是最便宜的。為了減少成本,Rollups 把交易數據存在 L1 合約的 calldata 裡。

Rollups 要解決的核心問題就是如何在不降低安全性和去中心化下,盡可能地增大以太坊的吞吐量,從而減少用戶交易成本。從 EIP 的提案中,我們也可以看到以太坊在減少 Rollups 鏈上存儲成本上做出的努力:

  1. EIP2028:calldata gas 成本從 68gas 單位/byte 減少到 16gas 單位/byte
  2. EIP4488:calldata gas 成本從 16gas 單位/byte 減少到 3gas 單位/byte
  3. EIP4844:data blobs:這是一個用戶定義的數據片斷,其承諾可以被 EVM 訪問。blobs 由所有信標節點下載,並在一個相對較短(一個月)的延遲後刪除。Rollups 的交易數據會被放在 data blobs 上,這將極大程度上減少 L1 存儲成本。  

交易吞吐量

以太坊是有區塊大小限制的。每個區塊的目標大小為 1,500 萬單位的 gas,如果網絡需求增大,區塊限制可以階梯性上升至 3,000 萬單位 gas(2 倍目標區塊大小)。這裡我們用常規的 1,500 萬區塊限制。目前以太坊的平均出塊時間是 12~15 秒,簡單的轉賬交易需要花費 21,000 單位 gas,在接下來的計算中,我們假設以太坊出塊時間是 15 秒。

對以太坊主網而言,受限於區塊空間,理論 TPS(每秒交易量)可以達到 15,000,000(Gas Limit)/21,000/15=47.6。

對於 Optimistic Rollups 而言,我們需要把壓縮後的交易數據上傳到主網合約。前面提到,目前一筆 Rollup 轉賬交易大概是 12 個字節。目前的 calldata gas 成本是 16 單位/字節。那麼一個區塊就可以有 15,0000,000/12/16=78,125 筆交易。延續上文假設,以太坊出塊時間是 15 秒,那麼 Optimistic Rollups 每秒能處理 78,125/15=5,208 筆轉賬交易。

對於 ZK Rollups 而言,我們還需要考慮零知識證明在鏈上的驗證成本,大概是 500,000 gas 單位。同樣的邏輯,ZK Rollups 每秒能處理 (15,000,000-500,000)/12/16/15=5,034 筆轉賬交易。

以上是一個相當樂觀的估計(理論吞吐量),因為 Rollups 不可能佔用以太坊的整個區塊,且不可能所有交易都是轉賬交易。但在同樣尺度下,我們可以看到,Rollups 對交易速度的提升為 100 多倍。

目前而言,Rollups 能實現的 TPS 極限是 2,000 筆交易左右。Rollups 的實際吞吐量取決於一批交易能被壓縮成較小摘要的幅度。由於 ZK Rollups 不需要像 Optimistic Rollups 一樣上傳所有的交易內容,ZK Rollups 的 TPS 往往高於 Optimistic Rollups。

3.4.3 優缺點

3.4.5 Optimistic Rollups

3.4.5.1 概要

Optimistic Rollups(OPRUs)是 Rollups 的一種,依靠欺詐證明(Fraud proofs)來保證鏈下執行交易的正確性。正如它的名字,Optimistic Rollups 上打包的交易被樂觀地假設為正確的,因此不用做額外功;只有發生爭議時,主鏈才會執行 Rollups 區塊上的每筆交易,確認是否發生了欺詐。

3.4.5.2 時間線

  • 2018 年 8 月,Offchain Labs(Arbitrum)在 Usenix 安全會議上發表論文,提出將交易由放在鏈下的 AVM(Arbitrum Virtual Machines)來執行,而鏈上只保留虛擬機狀態的加密哈希值。這個方案的交易數據是在鏈下的,因此不算完全的 Optimistic Rollup。
  • 2019 年 6 月,Celestia 聯合創始人 John Adler 在 Ethereum Research 上發布了 “最小可行的合併共識” 的提議,揭開了 Optimistic Rollup 的序幕。不同於 14 年 Vitalik 提出的 Shadow Chain(L2 狀態放在鏈上),這個方案中 L2 狀態是完全鏈下的。
  • 2020 年 12 月,Fuel Network 主網上線,成為第一個上線的 Optimistic Rollup,被用於支付應用。
  • 2021 年 1 月,Optimisim alpha 主網軟啟動,採用了逐步開放主網的方式。同時,合成資產協議 Synthetic 宣佈在 Optimism 上線。
  • 2021 年 8 月,Arbitrum One 主網發布。這是一個完全的 Optimistic Rollup 解決方案,即交易數據會被放在鏈上的合約裡,允許任何人發起挑戰。
  • 2021 年 9 月,Boba 主網發布,計劃支持混合計算,使 Solidity 智能合約能夠與任何外部 API 互動。
  • 2021 年 11 月,Metis Andromeda 主網上線,提供一個 EVM 等效的 Optimistic Rollup,一個無代碼的中間層 Polis 以及去中心化自治公司(Decentralized Autonomous Companies,DAC)。
  • 2021 年 12 月,Optimism 開放主網,允許任何人部署 L2 合約。
  • 2022 年 8 月,Arbitrum Nitro 主網上線,帶來更低的手續費以及更好的 EVM 兼容性。

3.4.5.3 技術原理

Optimistic Rollups(OPRUs)採用欺詐證明,樂觀地默認所有交易的計算是正確的,除非有人提出爭議。在 Aggregator 上傳交易批次後,Optimistic Rollups 會有一個 7 天左右的爭議窗口期。在此期間,任何人都可以對狀態轉換提出異議。只要其中有一人誠實,對錯誤的狀態變化發起挑戰,Optimistic Rollups 協議的安全性就能得到保證。

Optimistic Rollups 主要有以下兩個技術角色:

用戶流程

  1. 用戶通過在主網合約上鎖定資產的方式,將錢存入二層網絡。
  2. 用戶向 Aggregator 發送 L2 交易。
  3. Aggregator 收集並排序交易(先進先出),執行交易,更新內部狀態,並將交易打包成 batch,壓縮後提交給 L1 的合約。
  • Batch 內容:壓縮的交易數據,前狀態根,後狀態根
  1. L1 合約檢查 batch 中的前一個狀態根是否與其當前的狀態根相匹配(確保 L2 狀態的連續性);如果匹配,則將狀態根切換到新的狀態根。
  2. Validator 可以從 L1 合約上下載交易數據,並在本地重建 L2 狀態併計算新的狀態根。
  3. 如果 Validator 發現本地的狀態根和 Aggregator 上傳的不一致,Validator 可以發起挑戰。此時,Validator 需要質押一筆錢,並且向主網 Rollups 合約提供有效的 Merkle Proof。
  4. 如果主網 Rollup 合約驗證確實存在錯誤,主網合約就會對錯誤 batch 及其之後的 batches 進行回滾。作惡的 Aggregator 會受到懲罰,其押金將會被沒收,一部分押金會獎勵給挑戰者,一部分押金銷毀掉。反之,如果 Aggregator 是正確的,Validator 挑戰失敗,質押的錢將會被銷毀。
  5. 如果一段時間(挑戰期)內沒有挑戰,之前打包好的 batch 將會在 L1 上被確認。

欺詐證明

驗證者從 L1 合約下載交易數據後,可以在本地重建(L2 狀態的)merkle tree。驗證者可以通過比較本地和合約的 merkle root(狀態根)確認是否存在作假行為。如果發現作假,驗證者需要向 L1 合約提供 merkle proof,也就是圖中的綠色部分,從而發起挑戰。

  • 如果有多個不對的 batch,最好找最早的 batch 發起挑戰。因為,最早交易批次的錯誤會導致後續不正確的批次全部回滾,從而使後續區塊的挑戰失效。
  • 如果一個 batch 的構建是正確的,那麼就永遠不可能創建一個顯示該 batch 無效的欺詐證明。
Source: https://vitalik.ca/general/2021/01/05/rollup.html

爭端解決(Dispute Resolution)

目前處理糾紛的方法是重新執行交易(re-executing transactions)和互動證明(interactive proving)。

重新執行交易依賴於 L1 來執行整個 L2 區塊的交易,實現即時驗證。因為需要執行一個 L2 區塊內所有交易,這種方式成本高。此外,重新執行交易需要單一區塊能容下整個 L2 的交易,這導致了 L2 的交易存在上限。採用此方式的有 Optimism,Metis 等。

互動證明通過不斷拆分存在爭議,來回移動爭議點以縮小爭議點來解決爭端。具體來說,Aggregator 首先把爭議一分為二,Challenger(發起挑戰的 Validator)選擇其中一個有爭議的。然後 Aggregator 再把這個爭議一分為二,直到找到最後的爭議點,後由鏈上的合約判斷勝負。由於拆分爭端這個過程是在鏈下進行的,L1 只需要執行爭議點交易,而不是在鏈上重新處理全部交易,此方式通常手續費更低。但是,由於需要互動,此方式生成證明的時間更長,Challenger 和 Aggregator 需要同時在線去完成多輪的爭議拆分。Arbitrum 和 Optimism Cannon(未上線)採用的都是互動證明。

值得注意的是,和重新執行交易相比,互動證明在 L1 上執行的數據更少,因此會有更高的吞吐量上限。

為什麼驗證者的挑戰期是 7 天

理論上來說,挑戰期越長,就更有可能檢查到錯誤並發起挑戰,因此系統也就越安全。

假設一個挑戰期是 C 個區塊長度,Rollup 鏈上的價值(攻擊者在 L2 上能得到的最大值)是 V。通常情況下,區塊越多(更多時間受到挑戰),攻擊者能夠獲得的利潤也就越小。因此,我們可以假設攻擊者利潤隨著區塊數量(C)的增加而指數下降,即攻擊者利潤= V exp(-AC),其中 A 是一個常數,A 值越大,區塊長度的增加帶來的利潤降低效果越明顯。

攻擊者往往是 Aggregator,因為只有他們能發布錯誤的狀態根,因此 Optimistic Rollups 需要 Aggregator 質押一筆錢才能打包交易。為了減少從經濟層面發起攻擊的可能性,這筆錢需要遠遠大於攻擊者能獲得的收益,使得攻擊者的損失遠遠大於收益。假設 Aggregator 質押金額是攻擊者價值的 10 倍(足夠大),那麼 Aggregator 的質押金額= 10V exp(-AC) ,遠遠大於攻擊獲利。

但對於誠實的 Aggregator 而言,這帶來了質押的時間成本。我們把資本利率記作 I,那麼 Aggregator 的時間成本= 10V exp(-AC) I。挑戰時間越長(C 值越大),Aggregator 的時間成本就會越高,使得 Aggregetor 的運營成本上升。

對於退出用戶而言,過長的挑戰期會導致用戶提款週期變長,從而帶來不好的用戶體驗。假設每個區塊的平均取款比率為 W,那麼每個區塊的提款金額是 VM,每個時間點處於提款鎖定狀態的資金為 CWV,利息 CWVI。挑戰時間越長(C 值越大),用戶取款的時間成本也就越高。

因此,最優的挑戰期應該是 Aggregator 質押的時間(運營)成本和取款用戶的時間成本總和(10V exp(-AC)I + CWVI)的最小值。求最小值就等於對 C 求導=0,得到 C'=ln(10A/W)/A,其中 C' 是最優挑戰期。

計算

  1. 假設 1:一個區塊時間後攻擊者能獲得高達 99.99% 的最大利潤,A=-ln(攻擊者利潤/V)/C,那麼 A = -ln(0.9999) = 0.0001。
  2. 假設 2:每天有 1% 的取款,每 15 秒一個 block,一天有 4*60*24= 5,760 個區塊,那麼 w = 0.01/5760 ≈ 0.000002。也就是說每個區塊的平均取款比率為 0.000002。
  3. 計算結果:C' = ln(10*0.0001/0.000002) / 0.0001 = 62146 個區塊= 10.79 天。

由此可以得出,最佳的挑戰時間是 10.79 天左右,和大多數協議的 7 天挑戰時間差不多。核心思路就是聚合者(Aggregator)質押和取款用戶時間成本總和的最小值。

思路來源:https://medium.com/offchainlabs/optimizing-challenge-periods-in-rollup-b61378c87277

3.4.5.4 優缺點

3.4.5.6 應用

Arbitrum

概述:

Arbitrum 是 Offchain Labs 開發的 L2 可擴展性解決方案:採用多輪交互式挑戰協議的 Optimistic Rollup。目前 Arbitrum 在以太坊主網上有兩條鏈:Arbitrum One(Optimistic Rollup)以及 Arbitrum Nova(AnyTrust)。

時間線:

  • 2018 年 8 月,Arbitrum 在 Usenix 安全會議上發表論文,提出將交易放在鏈下的 AVM(Arbitrum Virtual Machines)來執行,而鏈上只保留虛擬機的狀態的加密哈希值。一個固定數量的驗證者群體將會被選擇來運行 AVM。只要有一個誠實的驗證者,對不正確的鏈上狀態發起挑戰(互動證明),AVM 就能正常運行。
  • 2021 年 8 月發布 Arbitrum One 主網。這是一個完全的 Optimistic Rollup 解決方案,即交易數據將會被放在鏈上的合約裡,允許任何人發起挑戰。
  • 2021 年 9 月,Arbitrum Sequencer 下線,持續了 45 分鐘。原因是 Sequencer 一次性收到太多交易而產生的 BUG。雖然排序器中斷了,但是網絡未中斷,用戶還是可以繞開排序器直接向 L1 合約發送交易。
  • 2021 年 10 月,提出 Arbitrum Nitro,即 Arbitrum One 的升級版本。Nitro 會把 AVM 改成 WASM(Web Assembly),同時把自製的 EVM 仿真器(emulator)換成了 Geth,提高了 EVM 兼容性和處理速度。此外,他們用 Go 重寫了 ArbOS,提供改進的 batch 處理和壓縮系統,從而減少交易成本。
  • 2022 年 3 月,提出 Any Trust Chain,將交易數據放在鏈下,由 DAC 委員會保管。只有一定數量的委員會成員簽名或者交易數據在鏈上,主網合約才存 batch 哈希值。Any Trust 鍊主要應用在遊戲賽道,可提供更低的手續費和更快的交易速度。
  • 2022 年 8 月,基於 Anytrust 技術的 Arbitrum Nova 主網上線。
  • 2022 年 8 月 31 日,Arbitrum Nitro 主網上線,帶來更低的手續費以及更好的 EVM 兼容性。

技術特點:

1. 採用多輪交互式挑戰協議,可減少 L1 鏈上解決爭議的成本。
2. EVM 等效:基於 Geth 構建的虛擬機,可以執行任何以太坊字節碼,Gas 費用的計算也是等效的。
3. Rollup 設計:驗證者需要對新的狀態質押,並提出區塊。這是一個額外的確認。更具體的說,驗證者需要去 sequencerInbox 合約中下載交易數據,在本地的虛擬機(WAVM)上執行交易,更新本地 L2 狀態,並通過對新的狀態質押,提出新的區塊,然後等待 7 天的挑戰期,最終確認區塊。

生態發展:

截止 2022 年 11 月,Arbitrum 佔 Layer2 的市場份額 52% 左右,TVL$2.3B,位居第一。目前生態內 TVL 排行前三的項目是 GMX,Stargate 和 Uniswap V3。其中比較有特色的項目有:

  1. GMX 是一個去中心化的現貨和永續合約交易所,通過發行指數基金的方式,使得基金持有者成為槓桿交易者的對手方。目前部署在 Arbitrum 與 Avalanche 網絡。
  2. Dopex 是一個去中心化期權平台,通過期權池為交易方提供流動性。
Source: https://news.cryptorank.io/arbitrum-ecosystem-overview/

Optimism

概述:

Optimism,是 OP Labs(前身 Plasma Group)開發的 Optimistic Rollup 項目,目前的主流 Optimistic Rollups 應用之一。

時間線:

  • 2019 年 10 月,Plasma Group 和 Uniswap 聯合發布 Unipig.exchange 測試版,一個基於 Optimistic Rollup 的 DEX。
  • 2020 年 1 月,在 Paradigm 和 IDEO CoLab Ventures350 萬美元的支持下,Plasma Group 從一個非盈利的研究組織轉變為一家營利性初創公司,Optimism 正式誕生,意味著正式放棄研究 Plasma,轉向專注於研究 Optimistic Rollup。
  • 2021 年 1 月,Optimism alpha 主網軟啟動,採用了逐步開發主網的方式。同時,合成資產協議 Synthetic 宣佈在 Optimism 上線。
  • 2021 年 10 月, Optimism 發布 EVM 等效主網。
  • 2021 年 12 月, Optimism 開放主網,允許任何人部署 L2 合約。
  • 2022 年 3 月, Optimism 提出一個新版的欺詐證明 Cannon。這和 Abitrum 實現的方式十分類似,是一個多輪交互式的欺詐證明,解決單輪證明需要 L1 合約驗證所有交易帶來的成本高的問題。
  • 2022 年 5 月,Optimism 提出 Bedrock,一個更便宜更快更先進的 Optimistic Rollup 架構。Bedrock 會將共識和執行客戶端分離,使 Optimism 能夠無縫整合成本最小化的 EIP-4844。
  • 2022 年 6 月, Optimism 代幣 OP 發行。Optimism 將治理權分給了 Token house 和 Citizens' house 兩個群體。Token house 持有代幣,能夠對作為治理基金一部分的項目獎勵的分配、協議升級等進行投票。Citizens' house 用不可轉讓的 NFT 代表公民身份,負責可追溯性的公共產品資金的分配。

技術特點:

  1. Optimism 採用了重新執行交易的方式處理爭端,後面會用多輪交互證明(Optimism Cannon)。
  2. EVM 等效:為了更好的 EVM 兼容性,Optimism 首先 fork 了 geth,將區塊生成和執行分開並定義了自己的 L2 區塊生成函數;其次,Optimism 用一個具有更簡單指令集的 VM 把 EVM 包裝起來,並通過運行這個 VM 生成欺詐證明。

生態發展:

截止 2022 年 11 月,Optimism 佔 Layer2 的市場份額 29% 左右,TVL$1.26B,位居第二。目前生態內 TVL 排行前三的項目是 AAVE,Synthetix 和 Velodrome。其中比較有特色的項目有:

  1. Synthetix 是一個合成資產協議。通過去中心化預言機跟踪資產價格,Synthetix 可以在鏈上創造合成資產(數字貨幣和外匯)。
  2. Perpetual Protocol 是一種 DEX 衍生品協議,它開創了 vAMM 架構,不需要訂單薄,也能提供槓桿交易。目前,Perpetual Protocol 佔據 Optimism 60% 以上的日交易量。
  3. Lyra 是一種期權協議,旨在通過 Optimism 提供的快速交易確認時間和低 gas 費用來改善期權交易的體驗。
Source:https://twitter.com/Coin98Analytics/status/1569640055165325314/photo/1

Metis

概述:

Metis 是由 Elena Sinelnikova、Kevin Liu 和 Yuan Su 於 2018 年共同創辦的以太坊擴容解決方案。Metis 開始於對 Optimism 的硬分叉,將 Optimistic Rollup 和 DAO 基礎設施結合起來,旨在為 WEB3 公司提供一個成本低、去中心化、可擴展性強的基礎設施,以滿足去中心化商業運營對隱私和存儲等方面的需求。

時間線:

  • 2018 年,Elena Sinelnikova、Kevin Liu 和 Yuan Su 創辦 Metis。
  • 2021 年 4 月,Metis Alpha 測試網發布,帶來第一個測試產品 Prologue,以展示其 Rollup 設計的高速度和低成本。
  • 2021 年 11 月,Metis Andromeda 主網上線,提供一個 EVM 等效的 Optimistic Rollup,一個無代碼的中間層 Polis 以及去中心化自治公司(Decentralized Autonomous Companies,DAC)。

技術特點:

  1. DAC,一個新的 DAO 結構,涵蓋許多開源工具(企業軟件, 薪資管理工具、信息傳遞平台,IPFS 去中心化存儲等),作為基本單元支持去中心化應用、社區和業務的運營和管理。
  2. 改進的 Rollup 設計:多虛擬機+Ranger+排序器池。多虛擬機並行可以支持不同 DAC 同時運行。Ranger 是一個新引入的驗證者角色。代幣激勵使 Rangers 快速驗證新的區塊交易,從而縮減欺詐證明周期。排序器池(Sequencer Pool)是為了引進社區參與者加入區塊打包的過程,從而使協議更加去中心化。目前 Ranger 和 Sequencer Pool 還未上線。
  3. Polis 中間層:提供智能合約模板,方便 WEB2 開發者使用。
source: https://drive.google.com/file/d/1LS7CmKFt-FkfVXxSNu06hNgoZXxMzTC-/view

生態發展:

截止 2022 年 11 月,Metis 佔 Layer2 的市場份額 2.6%,TVL$90M,位居第五。目前生態內 TVL 排行前三的項目是 Hummus Exchange,Hermes Protocol 和 NetSwap。其中比較有特色的項目有:

  • Hummus Exchange 是一個單邊自動做市商,為 Metis 提供穩定幣交易。
  • Netswap 是部署在 Metis 上的首個原生去中心化交易所(DEX)。

Boba Network

概述:

Boba Network(前 OMG Network)是一個專注於計算的 L2 項目。Boba Network 由 Enya 團隊創建。Boba Network 開始於 Optimism 的分叉,其核心在於混合計算提供的 Web3 和 Web2 的互操作性。

時間線:

  • 2021 年 5 月,Boba Network 發布了公共測試網。
  • 2021 年 9 月,Boba Network 主網發布,為以太坊提供一個 Optimistic Rollup 解決方案。
  • 2022 年 3 月,Boba Network 上線混合計算(Turing Hybrid Compute),使 Solidity 智能合約能夠與任何外部 API 互動。

技術特點:

  1. 自建的 L1<->L2 流動池,方便用戶快速退出和進入 Boba Network。
  2. 混合計算:允許 Solidity 智能合約能夠與任何外部 API 互動。例如,獲取 Twitter 關注信息,調用鏈外的機器學習模型,或使用在鏈下運行的高級數據分析,再將計算結果返回給智能合約。Turing 本身只是一個管道,而不是預言機。也就是說,Turing 不保證計算結果的真實性,但是 Turing 將會把輸入和服務器回复記錄在主網上,其他人就可以通過下載這些數據,去驗證這些數據的真實性了。

       生態發展:截止 2022 年 11 月,Boba Network 佔 Layer2 的市場份額 0.5%,TVL$20M,位居第十,從 21 年 11 月的高點 $600M 下滑了 96%。目前生態內 TVL 排行前三的項目是 OolongSwap,Synapase 和 Connext。OolongSwap 是 Boba Network 上首個原生 AMM 去中心化交易所。Synapase 和 Connext 都是跨鏈轉賬協議。

3.4.5.7 應用比較

在 Rollups 的設計上面,基於 Optimistic Rollups 的協議們大同小異。核心邏輯就是計算和狀態存儲放在鏈下,交易數據和狀態根放在鏈上,並通過欺詐證明確保狀態根的正確性。目前主流的 Optimistic Rollups 協議都是中心化的 Sequencer 在運行整個網絡,且均計劃在未來將這一角色去中心化。除了 Arbitrum(白名單驗證者)外,上面提及的其他應用,欺詐證明的功能均在開發中。也就是說,目前中心化的 Sequencer 是可以發布錯誤的狀態根,而無人能夠提供欺詐證明,從而導致資金被盜。

在 EVM 兼容和等效的開發工作中,可以看到 Optimism、Arbitrum 和 Metis 採用的方式趨同,都通過 fork GETH 致力於降低 L1 和 L2 的執行環境差異,避免因此帶來的風險,並且致力於使得 Layer1 的應用遷移到 Layer2 的體驗更加順滑。

Optimistic Rollups 應用的核心區別點在於針對不同場景進行的差異化定位。Arbitrum 和 Optimism 團隊技術積累深厚,開發的是以太坊通用場景的擴容方案。Metis 和 Boba Network 均始於 Optimism 分叉,但對不同場景進行了對應的適配和調整。Metis 為去中心化自主公司(DAC)做了一系列的工具,方便了公司的鏈上運營。Boba Network 通過 API 提供 web2 和 web3 的互操作性,更適用於計算場景。

3.4.6 ZK Rollups

3.4.6.1 零知識證明

零知識證明是一種讓驗證者相信某些聲明為真,但不透露任何其他信息的方法。

零知識證明通常由兩個角色:證明者和驗證者。證明者計算並生成證明,卻不洩露任何知識;驗證者在不知道知識的情況下,驗證證明。

零知識證明的概念誕生於 1985 年 MIT 學者 Goldwasser、Micali 和 Rackoff 合作發表的論文 The Knowledge Complexity of Interactive Proof Systems(即 GMR85)。在這篇論文裡,零知識證明被定義為只證明問題的正確性而不傳達任何額外信息的證明,而交互性的證明方式可以減少為證明一個定理而必須交流的知識量。

交互式的零知識證明要求驗證者和證明者進行多輪交互而驗證證明的正確性。如何使驗證者能夠獨立完成驗證成了關鍵。1988 年,Manuel Blum、Paul Feldman 和 Silvio Micali 提出了第一個非交互式零知識證明。他們提出,如果證明者和驗證者有一個共享的隨機字符串,證明者可以不需要和驗證者交互,仍能說服驗證者他們對知識的了解。

Source: https://www.notboring.co/p/zero-knowledge

此後的一段時間,零知識證明在學術界得到了進一步的研究,但在實際實施或使用方面卻很少。最早的實際用例之一就是 2000 年出現的用零知識證明來登錄網站而不向服務器洩露密碼信息的方案。

2011 年,Groth 提出了 SNARK(Succinct Non-Interactive Arguments of Knowledge),把零知識證明帶入了實用領域(數字貨幣)。

2013 年,Pinocchio(PGHR13)算法被提出,極大地減少了證明和驗證時間。第一個運用零知識證明的加密貨幣是 14 年推出的 Zcash(最初叫 Zerocash 或 Zerocoin),而 Zcash 最初使用的就是 PGHR13 算法。

2016 年,Groth16 被提出,該算法擁有常數級證明大小和常數級驗證時間,比 PGHR13 算法更快,是目前最為廣泛使用的算法。

2017 年,Bulletproofs(BBBPWM17)被提出;該算法不需要可信設置,和 Groth16 相比,Bulletproofs 證明大小更大和驗證時間更長,因此更適用於簡單關係;Monero 就是使用的 Bulletproofs。

2018 年,ZK-STARKs 由 Starkware 提出;該算法不需要可信設置,且當證詞(witness)的規模較大時,ZK-STARKs 在生成和驗證證明方面比 ZK-SNARKs 更快;但缺點就是證明本身比較大,往往是 kb 級別。

2019 年 1 月,Sonic 問世;該算法需要可信設置,但是可以用於多個電路,且初始字符串可升級。證明大小恆定,驗證證明貴。理論上來說,可以多個證明一起驗證。

2019 年 5 月,微軟研究中心發布 Spartan,一個無需可信設置的 ZK-SNARKs,具有極快的證明和驗證時間(亞線性)。

2019 年 8 月,Aztec 提出 PlonK,並且開展了 176 人參與的初始可信設置。PlonK 是 Sonic 的改進版,證明時間縮短 5 倍。在 L2 項目中採用的最多是 PlonK,比如 Aztec,zkSync,zkSpace,Polygon Hermez。

2019 年 9 月,Zcash 團隊提出 HALO 算法,支持遞歸證明,無需可信設置,線性驗證時間(不簡潔)。

2020 年 9 月,同樣是 Zcash 團隊提出的 HALO2 問世,HALO2 是 HALO 和 PlonK 的結合版,有著更靈活的電路設計且更高效。Scroll 目前採用的就是 HALO2。

2021 年 3 月,Nova(Spartan + Bulletproof)被提出,無需可信設置,支持更高效的遞歸證明,擁有目前最快的證明速度,但證明大小較大(線性)。

2022 年 1 月,Polygon Zero 提出 Plonky2,它結合了 PlonK 和 FRI,具有快速證明和無信任設置的特點,支持遞歸且驗證成本低。

2022 年 10 月,Espresso Systems 團隊發布 HyperPlonk。HyperPlonk 是對 PlonK 的改進,使用了多線性多項式承諾(multilinear polynomial commitments),去掉了 PlonK 裡面的 FFT 部分,減少了證明時間(線性),但證明大小更大。

ZK-SNARKs

  • S-Succinct(簡潔):證明大小和驗證時間遠遠小於原始計算(語句)
  • N-Non-interactive(非交互):證明者和驗證者不需要為每一輪驗證來回通信,但證明者和驗證者需要完成初始設置階段。
  • A-ARguments(論據):具有極大計算能力的證明者可以通過生成錯誤的證明來欺騙驗證者。發生這種情況時,公鑰/私鑰加密也會被破壞。
  • K-Knowledge(知識):證明者需要知道一些秘密才能進行證明。

ZK-SNARKs 是在區塊鏈領域廣泛應用的零知識證明系統。第一個使用零知識證明的區塊鏈應用是 Zcash,一個用於隱私支付的數字貨幣。2014 年成立,Zcash 早期用的是 Pinocchio 算法,在 2018 年 Sapling 升級後使用 Groth16。

傳統 ZK-SNARKs(例如 Groth16)有以下三個問題:

  1. 需要初始化可信設置。初始化可信設置會生成一個參考字符串(reference string)。如果這個字符串洩露,任何人都可以作假證明。
  2. 參考字符串只能被用在一個電路(circuit)裡面。因此單一初始設置不能被用於廣泛的計算。
  3. 參考字符串不能被升級。如果升級,需要重新生成參考字符串。

因此產生了兩種解決方案:透明設置(Transparent Setup)和通用設置(Universal Setup)。

透明設置會生成一個公有的參考字符串。在這種設定下,字符串的洩露不會對證明造成影響,但證明大小會很大,如 Fractal 和 ZK-STARK 證明能達到 250KB,而 Halo 和 SuperSonic 的證明要小一些,不到 10KB。

通用設置會創建一個結構化參考字符串。這個參考字符串需要可信設置,但可以被用於多個電路,通常被用於通用的協議或應用。此外,構建生成的參考字符串可以升級而無需重新完成初始可信設置,以便提高安全性。使用通用設置的算法有 Sonic、PlonK 和 Marlin 等。

3.4.6.2 概要

ZK Rollups 是 Rollups 的其中一種。與 Optimistic Rollups 依靠欺詐證明不同,ZK Rollups 通過有效證明(零知識證明)來證明二層網絡狀態變化的正確性。換句話說,零知識證明以密碼學的確定性證實了執行所有交易的結果等於 Rollups 的狀態變化。由於有效證明可在鏈上得到及時確認,因此用戶能更快的把錢從 Rollups 的合約中取出。和 Optimistic Rollups 相比,ZK Rollups 有更快的交易最終確認時間(Transaction Finality)。

現在的 ZK Rollups 解決方案一般分為兩種:特定應用(Application-Specific)ZK Rollups 和通用(General-purposed)ZK Rollups。

特定於應用的 zk Rollups 協議(如 Loopring, StarkEx 等)會設計專門的證明電路,因此證明效率高且用戶交易成本低。但是,特定電路使得不同 DApps 之間不能交互,而做不到應用之間的可組合性。此外,對於不同 DApps,開發者需要單獨設計電路。這極大地增加了開發難度和周期。

另一個方案就是構建通用(General-purpose)ZK Rollups,例如 Scroll, Polygon Hermez, Starknet,zkSync v2.0 等。也就是說,做一個通用電路(zkEVM)去執行智能合約。這樣的做法,把複雜的電路設計工作留給了 Rollup 項目方,而程序員就可以直接使用 Solidity 編程,無需擔心設計電路的問題。但這樣做會帶來極高的額外損耗,例如只想驗證一個加法,用戶也需要運行整個電路。最近一些技術突破(比如多項式承諾,遞歸證明,硬件加速等)使得通用電路的證明成本大大降低,構建 EVM 通用電路的想法也就更加容易實現。

Source:https://immutablex.medium.com/ground-up-guide-zkevm-evm-compatibility-rollups-787b6e88108e

3.4.6.3 時間線

  • 2018 年 9 月,Vitalik 首次提出用 zk-SNARKs 去驗證 L2 區塊實現擴容。
  • 2020 年 2 月,Loopring v3.0,第一個基於零知識證明的 L2 擴容協議上線。
  • 2020 年 6 月,由 StarkEx 驅動的去中心化交易所 DeversiFi 在以太坊主網上線了。同月,用於支付的 zkSync v1.0 主網上線。
  • 2021 年 2 月,ZKSwap 上線,一個基於 ZK-Rollups 技術的以太坊 L2 DEX。
  • 2021 年 3 月,Hermez 上線,一個支持 ETH 和 ERC20 轉賬的 ZK Rollup。
  • 2021 年 8 月,Polygon 宣布收購 Hermez,形成 Polygon Hermez,計劃提供一個 EVM 字節碼層面兼容的 ZK Rollup。
  • 2021 年 11 月,StarkNet 在以太坊主網上線 Alpha 版本。StarkNet 是一個開放的 zkRollup,任何人都可以部署自己的智能合約,並且和其他智能合約進行交互。
  • 2021 年 12 月,L2 Labs 推出 ZKSpace,具有 ZKSwap v3.0、NFTs 和支付功能。
  • 2022 年 6 月,dYdX 宣布計劃離開 Starkware 並在 Cosmos 上開發自己的區塊鏈,其背後的原因之一是交易吞吐量限制(零知識證明生成的低效率)和 L2 短期內不夠去中心化(角色單一)。
  • 2022 年 7 月,Scroll 宣布開放 pre-alpha 測試網。
  • 2022 年 10 月,zkSync2.0 主網 baby alpha 版本上線,但只用於安全和壓力測試。zkSync 2.0 將會是一個通用的 ZK Rollup,通過 zkEVM 更好地兼容以太坊現有生態應用。

3.4.6.4 技術原理

ZK Rollups 通過鏈上驗證的零知識證明確認狀態變化的正確性。ZK Rollups 能夠擴容的關鍵是零知識證明的簡潔性。由於驗證成本與被證明的交易數量成亞線性(sublinear)關係,驗證證明遠遠小於計算所有交易的複雜程度,因此 ZK Rollups 能極大的減少交易成本。

ZK Rollups 有下述一個技術角色:

Relayers 有時也叫 Aggregators 或 Sequencers。一些項目(計劃)把打包交易和提供證明分兩種角色(Sequencers & Provers)來完成。其中,Sequencers 負責匯總和打包交易;Provers 負責生成證明。

把零知識證明外包給證明者網絡(Prover Network),可以允許更多設備參與零知識證明的生成(外加並行計算和聚合證明),零知識證明的生成速度能顯著提高,從而提高交易速度。此外,協議方也無需承擔證明設備的維護成本(但需要給證明者網絡經濟激勵),且去中心化程度提高。這一做法目前仍在研究和開發過程中,尚未實現。

用戶流程

  1. 用戶通過在主網上合約鎖定資產的方式,將錢存入二層網絡。
  2. 用戶創建交易,並把交易內容髮送給中繼者。
  3. 在接受交易之前,中繼者會驗證交易的合法性(用戶是否有足夠的錢等)。
  4. 在收集到足夠的交易後,中繼者會對交易排序(先進先出),執行交易,更新 L2 狀態,將數據打包(Batch),並生成一個零知識證明,以 calldata 的形式一起上傳至主鏈上 Rollup 合約。
    1. Batch 內容:前狀態根, 後狀態根,交易根,狀態變化,零知識證明
  5. 主鏈上合約
    1. 確認 Batch 內容的格式,不符合格式的內容則拒絕;
    2. 檢查 Batch 中的前狀態根是否與其合約當前狀態根匹配(確保區塊順序);
    3. 驗證上傳的零知識證明,確保證明的正確性;
    4. 驗證通過,把當前狀態根換成 Batch 裡面的後狀態根。

數據可用性

ZK Rollups 並不需要把所有的交易數據都放在鏈上。由於鏈上驗證的零知識證明本身證明了狀態變化的正確性,用戶的狀態是得到 L1 保護的。儘管如此,我們還是需要把一部分的交易數據上傳至主網的 Rollup 合約。有了鏈上數據的可用性,任何跟踪了 ZK Rollups 狀態的節點才能在鏈下重建二層網絡的狀態,進而打包交易,防止 L2 中繼者作惡(如資產凍結和審查)。如果中繼者(Relayers)下線,其他節點也能接力成為中繼者,使 Rollup 網絡繼續運行。

在 ZK Rollups 中,項目方是可以選擇上鍊的數據類型,如原始交易數據,每筆交易的狀態變化,一個交易批次的最終狀態變化。這三種均可使用戶(節點)重建二層網絡的狀態。選擇一個交易批次的最終狀態變化,能夠有效地壓縮鏈上存儲的數據(一個批次內的多筆交易後,某些狀態變化可能會相互抵消),從而減少 Rollups 鏈上存儲成本。

ZK-EVM

如同前文所述,ZK Rollups 面臨的一個很大的挑戰就是 EVM 兼容性。由於以太坊本身良好的生態,為了實現更好的開發者體驗和可組合性,很多 ZK Rollups 項目(如 zkSync v2.0,Polygon Hermez,Scroll 等)都在尋求更好的 EVM 兼容。通過一定程度上犧牲效率,增加靈活性,實現遷移現有以太坊生態的代碼,支持現有以太坊生態的工具(開發者工具&代碼庫「Hardhat, Brownie」,錢包「Metamask」,分析工具「Nansen, Dune」等)。

我們一般把 zkEVM 分成三種層面的 EVM 兼容性:共識層,字節碼層和語言層:

目前來說,StarkNet 和 zkSync 是語言層面兼容,而 Polygon 和 Scroll 是字節碼層面的兼容。在以太坊的路線圖裡,以太坊將整合一個共識級別的 zkEVM。

Source:https://immutablex.medium.com/ground-up-guide-zkevm-evm-compatibility-rollups-787b6e88108e

3.4.6.5 優缺點

3.4.6.6 應用

StarkWare

概述:

StarkWare 成立於 2018 年, 總部位於以色列。公司兩位聯合創始人 Eli Ben-Sasson 和 Alessandro Chiesa 也是 ZCash 創始人。其主要目標是進一步推廣以色列理工學院研發的 zk-STARKs 突破性區塊鏈隱私解決方案。

目前公司有兩個二層擴容產品分別是 StarkEx 和 StarkNet。

StarkEx 是為特定應用提供 Volition 的解決方案,比如 dYdX、ImmutableX、DeversiFi 和 Sorare。Volition 允許用戶對每種資產選擇對應的數據可用性模式:Rollup(鏈上數據)或 Validium(鏈下數據)。這是一個相對封閉的生態,支持 ERC20,ERC721 和 ERC1155。

StarkNet 是一個開放的 ZK Rollups。任何人都可以部署自己的智能合約,並且和其他智能合約交互。

此外,StarkWare 計劃將 StarkEx 平台建立在 StarkNet 上,打造一個 Layer 3 的新概念,方便整個生態的相互操作。

時間線:

  • 2018 年 5 月,StarkWare 成立。
  • 2020 年 6 月,StarkEx 的第一個應用 DeversiFi 上線。DeversiFi 是一個零知識證明驅動的數據在鏈下的(Validium)DEX。
  • 2021 年 11 月,StarkNet 在以太坊主網上線 Alpha 版本,團隊計劃在 2022 年下半年推出正式版。
  • 2022 年 5 月,StarkWare 在 Greenoaks Capital 和 Coatue Management 領導的 D 輪融資中籌集了 1 億美元,估值 80 億美元。
  • 2022 年 6 月,StarkEx 4.5 版本發布。其中,Volition 允許用戶對每種資產選擇對應的數據可用性模式:Rollup(鏈上數據)或 Validium(鏈下數據)。
  • 2022 年 6 月,dYdX 宣布計劃離開 Starkware 並在 Cosmos 上做自己的區塊鏈,其背後主要原因是零知識證明的效率,可定制化和去中心化(Sequencer)程度。
  • 2022 年 7 月,StarkNet 計劃發行代幣。StarkNet 代幣被用於治理,並作為網絡的支付和抵押資產。
  • 2022 年 9 月,編程語言 Cairo 1.0 提出,可為 StarkNet 帶來更好的可用性、安全性和便利性。

技術特點:

  1. 就編程語言而言,StarkEx 和 StarkNet 使用的語言的都是 Cairo。Cairo 本身是和 EVM 不兼容的,但 Starkware 可以藉助 Nethermind 開發的 warp 轉譯器,將 Solidity 語言轉化成 CarioVM 的字節碼,然後運行在定制的智能合約虛擬機 Cairo VM。這是語言層面的 EVM 兼容。Cairo 本身對零知識證明更友好,生成證明效率高,但是 EVM 兼容差。
  2. 就零知識證明而言,Starkware 用的零知識證明算法是 STARK。STARK 不需要可信設置且證明速度快,但證明大小比較大,導致計算和鏈上驗證成本較高。因此,Starkware 引進了 SHARP 聚合證明的解決方案,該服務允許將來自多個應用的 Rollups 批量交易聚合為一筆交易證明,從而降低交易成本。

生態發展:

StarkEx 上,目前有四個託管協議:dYdX、ImmutableX、DeversiFi 和 Sorare。

  • dydx 是訂單簿式期貨 DEX,目前的期貨 DEX 賽道龍頭。但 dydx v4 計劃在 cosmos 上部署,成為一條完全去中心化的 POS 鏈。
  • Immutable X 推出了 Layer2 NFT 交易市場,服務於 GameFi(Gods Unchained 等)。
  • rhino.fi(前 DeversiFi)是一個 L2 DEX,為用戶提供便宜的 DeFi 服務。
  • Sorare 是一款足球遊戲,於 2021 年 7 月上線。

StarkNet 目前是以 DApp 白名單的方式上線主網 alpha。目前的應用不多,已上線的有 ArgentX 錢包,計劃上線的有 JediSwap, Zigzag Exchange 等 DeFi 項目,Orbiter Finance 等跨鏈橋項目,以及 AAVE, zkLend 等借貸項目。

Source:https://mobile.twitter.com/ZK_Daily/status/1527597292634914816

zkSync

概述:

zkSync 是基於零知識證明技術的 Layer2 擴容方案,由 Matter Labs 公司於 2018 年開始開發。Matter Labs 首先實現了 STARK 證明,然後轉了 RedShift,一個 SNARK 和 STARK 的結合,最後決定使用 PlonK 算法。zkSync 2.0 帶來了 zkEVM 和 zkPorter,在更好地兼容 EVM 的同時,將狀態數據放鏈下,極大地提升了交易速度。

時間線:

  • 2018 年,Alex Gluchowski 成立 Matter Labs。
  • 2019 年 12 月,Matter Labs 團隊提出了 zkSync,一個建立在以太坊上的 ZK Rollup。
  • 2020 年 6 月,zkSync 1.0 主網上線,使用 PlonK 算法(通用電路),是第一個支持通用計算的 zkRollup 協議。這一階段,zkSync1.0 只能用於支付功能。
  • 2020 年 8 月,zkSync 1.1 上線,通過遞歸證明,將 TPS 從 300 提升到 3000 左右。同時,zkPorter 被提出,是 Matter Labs 的 Validium 解決方案,將交易數據放在鏈下,從而極大地提高交易吞吐量(20,000 tps)。
  • 2021 年 5 月,zkSync 2.0 測試網 alpha 上線,提出了自定義的 zkEVM,使開發者能將 Solidity 轉換成 zkEVM 的字節碼,進而在 zkEVM 上運行。
  • 2022 年 2 月,zkSync2.0 公共測試網上線。zkSync 2.0 將會是一個通用的 ZK Rollup,通過 zkEVM 更好地兼容以太坊現有生態應用。
  • 2022 年 10 月,zkSync2.0 主網 baby alpha 版本上線,但只用於安全和壓力測試。

技術特點:

  1. 語言層面 EVM 兼容。zkSync 創建了基於寄存器的虛擬機 zkEVM,將 Solidity 轉換成 LLVM IR(編譯器基礎設施)後再轉換成自製的 VM 指令。zkSync 這種方法和 Starkware 的方案類似,都是語言層面的 EVM 兼容,理論上來說更靈活。zkSync 最初創建了類似 Cairo 的 Zink 編程語言,但現在已經把工作重心放在 Solidity 編譯上,致力於給開發者帶來更好的 EVM 兼容體驗。
  2. ZK 算法使用 PlonK。PlonK 會產生一個通用的字符串,但是需要初始信任設置。此外,zkSync 採用遞歸證明,可提高交易速度。

生態發展:

Zksync 目前 2.0 主網已上線 baby alpha 版本。在 1.0 版本中,上線的項目有:1KXprotocol,這是一個將自動做市商(AMM)和去中心化交易平台(DEX)結合、低滑點的 DeFi 聚合平台。還有 Argent 錢包,Zigzag 去中心化交易所,跨鏈橋 Orbiter,Mystiko Network(該協議目前仍處於測試網階段,可以被集成到跨鏈橋、L1 和 L2、錢包和 Dapp,以保證用戶隱私)。隨著即將到來的 zkSync2.0 主網,正式上線的項目會越來越來多。

Source: https://twitter.com/ZK_Daily/status/1537461972920197120/photo/1

Polygon

概述:

Polygon(前 Matic Network)是一個以太坊擴容解決方案聚合器。核心組件是 Polygon SDK,便於開發者快速構建或連接 L2。目前 Polygon 有 3 個 ZK Rollup 相關的產品:Miden,Hermez 和 Zero, 都在開發和測試階段,預計 2022 年底或者 2023 年上線。

時間線:

  • 2021 年 3 月,Hermez 上線,是一個支持 ETH 和 ERC20 轉賬的 ZK Rollup。
  • 2021 年 8 月,Polygon 宣布收購 Hermez,形成 Polygon Hermez,計劃提供一個開源的 EVM 字節碼層面兼容的 ZK Rollup。
  • 2021 年 11 月,基於 zk-STARKs 的 ZK Rollup,Polygon Miden 發布。Miden 創建了與 EVM 兼容(語言層面)的基於 ZK-STARKs 的 Miden VM,支持通用智能合約。
  • 2021 年 12 月,Polygon 宣布收購 Mir Protocol,構建 Polygon Zero。Polygon Zero 利用 Plonky2(遞歸零知識證明系統,PlonK+FRI)的速度來實現可擴展性更強的且更去中心化的 ZK Rollup。它提供了 Rollup 和 Validium 兩種模式,使用戶能夠獲得更高的吞吐量和更低的費用。
  • 2022 年 10 月,Polygon Hermez 公眾測試網上線。

技術特點:

1.Polygon Hermez

  1. Polygon Hermez 實現了字節碼層面的 EVM 兼容。在執行交易時,Aggregator 需要把 EVM 字節碼翻譯成另一套叫 zkASM(Zero-Knowledge Assembly)的字節碼,而驗證者需要對 zkASM 的字節碼進行證明。此方法需要一個字節碼的翻譯器,在 EVM 升級時,Hermez 需要手動更新來保持同步。
  2. Polygon Hermez 使用的是 ZK-STARKs 和 SNARK 結合的零知識證明系統。底層是 ZK-STARKs,被用來證明每個子電路執行的正確性;SNARK(PlonK 或 Groth16)的證明大小更小,且驗證更便宜,因此被用來聚合生成的 ZK-STARKs 證明,最後上傳至主網合約。
  3. 此外,Polygon Hermez 高度重視去中心化實現。Sequencer 的共識機制從 v1.0 的 POD(Proof-of-Donation)過渡到 v2.0 的 POE(Proof of Efficiency),允許每個人都能參與 L2 的區塊打包,但仍擺脫不了算力競賽帶來的證明者中心化問題。

2.Polygon Miden

  1. Polygon Miden 創建了一個基於 ZK-STARKs 的虛擬機 Miden VM 來支持通用智能合約的執行。Miden VM 會將 Solidity 代碼直接編譯成 Miden Assembly(Miden VM 的原生編程語言),實現語言層面 EVM 兼容。此外,Polygon Miden 也在探索對其他語言進行編譯,如 Move。
  2. Miden VM 的底層證明系統是 Winterfell,一個高性能 STARK 驗證器,可以為任何交易生成 STARK 證明。使用 ZK-STARKs 的好處在於它無需可信設置,抗量子計算且證明生成和驗證速度快。

3.Polygon Zero

  1. Polygon Zero 使用 Plonky2 作為其零知識證明系統,PlonK 和 FRI 的結合使零知識證明能在 170mm 內(商用電腦)完成。
  2. Polygon Zero 中,每筆交易都是一個零知識證明。因此很多交易可以同時生成證明,再通過遞歸形成一個最終的證明。也就是說,Polygon Zero 能夠通過增多節點來橫向擴容。

生態發展:

目前 Polygon 旗下的三個 ZK Rollups 方案都在開發和測試階段,生態尚未成型。

Scroll

概述:

Scroll 是由 Ye Zhang 在 2021 年 3 月提出的 zk-rollup 解決方案。Scroll 主要想做兩件事,構建通用的 ZK-EVM 和去中心化的證明者網絡。

時間線:

  • 2021 年 3 月,Ye Zhang 在 Ethereum Research 論壇上提出 Scroll,通過結合兩種不同的零知識證明系統,以提高鏈上和鏈下的效率,從而實現通用的 ZK Rollup。
  • 2022 年 7 月,Scroll 宣布開放 pre-alpha 測試網,有一些智能合約的預部署,比如 Uniswap v2,但目前只對白名單用戶開放。

技術特點:

  1. 第一個版本的白皮書提出用兩種不同的零知識證明系統結合起來,以提高鏈上和鏈下的效率,從而實現通用的 ZK Rollup。在和以太坊基金會交流後,Scroll 決定和以太坊基金會 Privacy Scaling Group 合作完成 zkEVM。此 zkEVM 直接在電路中實現每個 EVM 操作碼(進行過程中)。因此它的 EVM 兼容性是非常好的。
  2. Scroll 的 zkEVM 是字節碼層面的 EVM 兼容,支持原生 EVM 字節碼的執行。因此主網上的 DApps &開發者工具可以直接在 Scroll 上繼續使用,基本不需要改動。
  3. Scroll 擁有等級化零知識證明系統。第一層,有效的證明(電路優化,硬件優化)。第二層,驗證優化(簡潔的證明,EVM 友好的驗證算法)。通過遞歸證明和並行計算的方式,提高交易速度,減少手續費。
  4. 此外,Scroll 計劃分離打包者和證明生產者,構建外包的證明者網絡。然後通過不斷地迭代硬件設備(GPU->FPGA->ASIC),做到 ZKP 生產速度的提高;打包者的去中心化也在構想中。
  5. Scroll 是目前 EVM 兼容性做的最好的 ZK Rollup 項目之一。通過它的設計(zkEVM 迭代,遞歸,並行計算,硬件加速),零知識證明的生成速度能夠達到很快(目前 1m Gas 需要 6 分鐘),從而更好地擴容以太坊 L1。
Source:https://scroll.mirror.xyz/nDAbJbSIJdQIWqp9kn8J0MVS4s6pYBwHmK7keidQs-k

生態發展:

Scroll 目前還處於早期,生態尚未形成。

3.4.6.7 應用比較

對於 ZK Rollups 而言,擴容效果,EVM 兼容性,安全性和生態是我們所認為的重點。目前來說,我們很難對不同 ZK Rollups 協議評價好壞,更多的是協議方面對不同使用場景和自身意願做出的不同解決方案。

目前,ZK Rollups 擴容的主要瓶頸在於零知識證明的生成速度。隨著零知識證明算法的飛速發展(SNARK->STARK->PlonK->HALO2 等),零知識證明的生成和驗證效率會不斷提高。一些新的技術突破(多項式承諾,遞歸證明,硬件加速等),也使得零知識證明系統進一步優化。我們相信在不久的未來,零知識證明生成速度的瓶頸將會得到改善。

由於 EVM 本身並沒有專門為生成零知識證明而設計,其中的一些操作的證明(如哈希函數 Keccak-256,存儲證明等)會有很大的額外損耗。我們知道,為了盡可能做到 EVM 兼容而更好地使用和遷移現有應用和工具,我們就得接受 EVM 本身的 ZK 不友好性,但這會導致較低的證明生成效率。這就是 Scroll 在做的事情,為 EVM 每個操作碼設計電路,容忍一些 ZK 不友好操作,盡可能做到 EVM 兼容。

StarkWare 和 zkSync 選擇了另一條路,打造對零知識證明更友好的虛擬機,來加速證明生成從而擴大交易吞吐量。但隨之而來的,是對 EVM 兼容性不高,項目遷移成本高,生態比較難起來。

所以說,這實際上是 ZK 友好和 EVM 兼容的權衡利弊。隨著以太坊本身往 ZK 友好靠攏,上述兩種方案也在往中間靠攏。

就 Rollups 本身的設計而言,Relayer 的去中心化也是一個問題。如果我們把打包和生成證明分開,那就是 Sequencer 和 Prover 兩個角色,但都需要進行去中心化。

zkSync 和 StarkNet 目前還沒有做到去中心化。他們的 Sequencer 和 Prover 都由官方團隊運營,打包交易和生產證明都是團隊負責,也沒有搭建好去中心化的礦工節點,社區還無法參與。除了中心化本身來帶的單點故障和信任問題,還有一個問題是,所有的算力都控制在團隊自己手裡,意味著團隊要租用機器來持續承擔這部分的成本。把 Sequencer 和 Prover 交給社區,並設置一定的經濟激勵,會是一個更好的做法。Polygon Hermez 和 Scroll 均有把 Sequencer 和 Prover 去中心化的想法,但目前仍處於概念證明(PoC,Proof of Concept)階段。

3.4.7 OP Rollups vs. ZK Rollups

Adapted from https://vitalik.ca/general/2021/01/05/rollup.html

3.5 Validium

3.5.1 概要

Validium 的機制和 ZK Rollups 非常相似,唯一的區別就是數據可用性:在 ZK Rollups 裡,數據是放在鏈上的合約中,而在 Validium 中,數據是交給鏈下的數據可用性委員會(Data Availability Committee,DAC)。

目前 StarkWare 的 StarkEx 和 zkSync 的 zkPorter 都會提供 Validium 的解決方案(但後面均轉向了 Volition)。

3.5.2 技術原理

Validium 核心思路就是將鏈下狀態的承諾(State root)放在主網上,通過主網驗證的零知識證明確保狀態的正確性,並通過鏈下的數據委員會,確保鏈下狀態的可用性。

數據可用性

StarkEx 的 DAC 由 8 個有名望的組織組成,包含 ConsenSys、Infura、Nethermind、Iqlusion 和 Cephalopod 等。所有 DAC 成員需要對收到的鏈外數據(已加密)進行計算,並對新的狀態簽名,以確保他們收到了數據。而鏈上的合約只會接受帶有 DAC 成員簽名的交易批次。

StarkEx 的安全性和一個 POA(Proof of Authority)的網絡非常類似。如果沒有鏈上數據的可用性,Validium 的 Operator 有拒絕用戶移動資產的能力。那麼用戶要是想移動資產,就需要給 Operator 一部分資金。如果遇到緊急情況(如 Sequencer 拒絕提交交易批次),DAC 成員可以將數據重新上傳至鏈上,從而允許用戶從鏈上合約內取錢。

zkPorter 賬戶的數據可用性將由 zkSync 代幣持有者(稱為守護者,Guardians)保障,他們將通過簽署區塊來跟踪 zkPorter 端的狀態,以確認 zkPorter 帳戶的數據可用性。監護人使用 zkSync 代幣參與權益證明 (PoS),因此任何數據可用性故障都將導致他們的資產被燒毀,這為數據可用性提供了加密經濟保證。值得注意的是,守護者參與的 PoS 只是為了支持數據可用,也就是說,他們只能凍結用戶資產,而不能改變用戶資產。因此 zkPorter 的安全性,會高於側鏈的 PoS。

Validium vs. ZK Rollups

3.6 Volition

3.6.1 概要

Volition 是 Starkware 在 2020 年 6 月提出的一個鏈上與鏈下數據混合的擴容解決方案,允許用戶動態地選擇他們的數據存儲位置。如果數據在鏈上,就是 ZK Rollup,可為用戶提供更高的安全性,但交易成本會更高;如果數據在鏈下,就是 Validium,用戶會有更便宜的費用但更低的安全性。Volition 將選擇權交給用戶,提供了更好的靈活性。

Volition 數據可用性的選擇權可以是基於賬戶的,基於資產的,或基於單筆交易的。基於單筆交易可以帶來更多的靈活性,但實現起來會更複雜。

目前 StarkEx,zkSync 和 Polygon Hermez 都計劃或推出了各自的 Volition 解決方案。其中 StarkEx 的 Volition 解決方案是基於單個資產的選擇,zkSync 的 zkPorter 是基於賬戶的選擇,而 Polgon Hermez 暫未詳細展開說明。

3.6.2 技術原理

Volition 可以理解為 ZK Rollup 和 Validium 的結合體,給用戶提供不同安全性和交易費率的選擇。

Source:https://medium.com/starkware/volition-and-the-emerging-data-availability-spectrum-87e8bfa09bb

4. 總結展望

如何解決區塊鏈的不可能三角(可拓展性,安全性和去中心化)這一問題,一直是區塊鏈領域一大難題。隨著區塊鏈使用量的攀升,區塊鏈本身能承載的交易量和用戶交易成本成為了一個迫在眉睫的問題。以太坊每秒能處理的交易在 12~15 筆左右,而 Visa 每秒能處理 2,000+交易。要想區塊鏈能更好地承載經濟和日常活動,區塊鏈就必須在保證一定安全性的同時想辦法擴容。

本文從發展時間線、技術原理、優缺點和應用四個方面詳細介紹了當前主流的鏈下擴容方案,並有以下觀察與想法:

  1. 鏈上擴容和鏈下擴容不是競爭關係,而是共生關係,且 1+1>2。例如,結合分片技術和 Rollups,以太坊能達到很好的擴容效果(20,000+ tps);以太坊路線圖上的許多措施都將為建立在其上的鏈下擴容方案提供更多的效率,隨著以太坊變得更好、更高效,建立在它之上的鏈下方案也會不斷進步。
  2. 不同的鏈下解決方案對應不同使用場景和需求。比如,State Channels 由於手續費低,交易確認速度快,適合日常簡單支付場景。而 Rollups 更加適用於通用的複雜商業邏輯,如 DeFi,GameFi 等。
  3. 從鏈下擴容技術發展的時間線上,我們看到了兩條主旋律:一是應用場景的多元化(從簡單支持場景過渡到特定應用,再到通用場景),二是安全性假設的升級(從依賴鏈外共識到至少一人誠實「經濟激勵」再到現在依靠數學證明)。
  4. Optimistic Rollups 和 ZK Rollups 是目前主流的鏈下擴容解決方案。Opstimistic Rollups 技術比較成熟,生態發展不錯,但仍存在安全性(大多數協議欺詐證明系統未上線)和去中心化程度低的擔憂。ZK Rollups 可能會是鏈下擴容的目前可預判的最優解決方案,因為它本質上解決了一層性能不足的同時,還可以在保障安全(ZKP 算法的保證)的前提下將交易處理外包給可擴展性較高的二層(只存儲狀態變化可以減少鏈上存儲需求)處理。這個解決方案幾乎接近於完美的解決了不可能三角的難題,但是我們也能夠意識到 ZK Rollups 受限於 ZKP 的生成中大量的向量乘法、傅里葉變換等計算,使得它會非常耗內存,對硬件要求較高,所以實際當前實際應用的落地性還待改善;還有目前看到的使用 ZKrollup 協議的去中心化程度較低。這兩個問題是可以解決的。我們相信在不久的未來,ZK Rollups 的潛力將會被完全釋放。
  5. 在 ZK Rollups 虛擬機設計中,EVM 兼容性和 ZK 友好性的權衡只是一種選擇,並非好壞。Scroll 和 Polygon Hermez 設計兼容性更好的 VM 是為了更好地承接以太坊現有生態和工具;Starkware 致力於打造 ZK 友好的虛擬機,能極大程度提高零知識證明生成效率,帶來更好的用戶體驗(低手續費)。
  6. 目前,Rollups 仍是輔助輪模式「training wheel」,存在一定的安全隱患。例如,Rollups 合約的更新權限在項目方手裡,協議可能會有 Bug。我們更多的是相信項目方,而非代碼本身。Vitalik 在 ETH Bogota 演講裡提到的多重證明者係統(fraud provers + zk provers + governance threshold)會是一個不錯的解決方案。不同證明系統之間的低相關性,降低了多個證明系統同時陷入困境的概率,使得 Rollups 更安全。
  7. 鏈下擴容解決方案的生態建設和自身的基礎設施建設是相輔相成的。的確,BD 能力和項目方和投資方背景能在前中期吸引更多的建設者,但從中長期的視角,協議自身素質(性能,安全性和去中心化程度)同樣甚至更重要。建設者們首先考慮的應該是協議能否承載應用的發展,接下來才是社會關係。協議自身素質會吸引優質的應用落地,而鏈上生態的繁榮也反哺協議,為其帶來價值。
  8. 當區塊鏈真正能達到很高的 TPS 時,我們需要一些殺手級 DApps 去承載這些額外的交易量。這個機會,可能在 GameFi 或者 SocialFi。
  9. 使用相同技術的 Rollups 疊加(rollups on top of rollups)不會帶來大幅度的擴容,Layer3 可以是特定應用的 Rollups,也可以是 Validium。目前很難決定,兩層還是多層的鏈下擴容結構更好。
  10. 隨著以太坊合併的完成,以太坊顯卡挖礦時代已經結束,但帶來了 ZKP 類硬件開發和挖礦的新機會。
  11. 通過將 EIP-4337 與 Rollup 技術結合,可以在賬戶抽象化中實現數據壓縮和降低 gas 成本的效果,更好地發揮賬戶抽象的優勢。

一方面,鏈上擴容方案近期迎來重大里程碑——北京時間 2022 年 9 月 15 日 14:44,以太坊 The Merge 正式被激活,標誌著以太坊區塊鏈完成了由工作量證明(PoW)向權益證明(PoS)的過渡。PoS 新時代的正式開啟,消除了過去以太坊對大量挖礦算力的需求,朝著鏈上擴容方案更近一步。然而,以太坊在合併之後,還遠遠未達到 Vitalik Buterin 所設想的最終形態,分片的鏈上擴容方案也還要等待多年。

另一方面,回顧鏈下擴容的方案的演變歷程,經歷了 State Channels, Sidechains, Plasma,到如今的 Rollups(ZK Rollups & Optimistic Rollups) ,未來的擴容方案可能有更多的形式,並不一定局限於 Rollups。

隨著 NFT 和遊戲市場的快速增長,即使在加密貨幣的熊市中,以太坊也需要準備好應對未來新的激增需求。其他陸續出現的新的 L1 雖然有著更高的 TPS,但目前仍然難以達到以太坊所擁有的安全水平。未來 Web3 的大規模採用,即使是每秒 10 萬筆交易,也無法滿足全球需求,所以結合鏈上擴容和鏈下擴容將是以太坊成功的關鍵。隨著未來更多擴容方案的出現,會為更多 web3 爆款應用的誕生創造條件;我們相信不遠的將來,會迎來區塊鏈的大規模商業應用階段。

參考目錄

3.1

https://ethereum.org/en/developers/docs/scaling/state-channels/

https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9627997

https://www.youtube.com/watch?v=yKdK-7AtAMQ&t=542s

3.1.5

https://en.wikipedia.org/wiki/Lightning_Network

https://www.investopedia.com/tech/bitcoin-lightning-network-problems/#citation-14

https://www.defidaonews.com/article/6746958

https://www.panewslab.com/zh/articledetails/q017q0g0j910.html

https://lightning.network/lightning-network-presentation-time-2015-07-06.pdf

https://lightning.network/lightning-network.pdf

https://www.celer.network/doc/Whitepaper_CN_Community.pdf

https://medium.com/celer-network/everything-you-need-to-know-about-celer-network-updating-regularly-7f0c73e00205

3.3

http://plasma.io/plasma.pdf

https://docs.google.com/presentation/d/1RzextrcF7LJFt9pGE-gEN3HyLFlQ_8kbl4nGAvsaAM4/edit#slide=id.g333c27f06c_0_7060

https://www.youtube.com/watch?v=jTc_2tyT_lY

https://www.youtube.com/watch?v=nf1iEbBtbCE

https://ethereum.org/en/developers/docs/scaling/plasma/

https://www.learnplasma.org/en/learn/

https://medium.com/dragonfly-research/the-life-and-death-of-plasma-b72c6a59c5ad

3.4

https://vitalik.ca/general/2021/01/05/rollup.html

https://ethereum.org/en/developers/docs/scaling/optimistic-rollups/

https://ethereum.org/en/developers/docs/scaling/zk-rollups

https://members.delphidigital.io/reports/the-complete-guide-to-rollups/

https://hackernoon.com/optimistic-rollups-and-ethereums-layer-2-solutions-examining-arbitrums-security-mechanism-to3v35hr

https://defillama.com/

https://docsend.com/view/cvivn2th9fbhsfje

https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698

3.4.5

https://ethereum.org/en/developers/docs/scaling/optimistic-rollups/

https://ethresear.ch/t/introducing-arbitrum-a-new-layer-2-solution/3825/20

https://sinoglobalcapital.notion.site/Optimistic-Rollups-In-Practice-3f203064e2bf4754b3c2e17f40559d00

3.4.6

https://www.notboring.co/p/zero-knowledge

https://electriccoin.co/blog/announcing-zip-224-bringing-halo-2-to-zcash/

https://ethereum.org/en/zero-knowledge-proofs/

https://ethereum.org/en/developers/docs/scaling/zk-rollups/

https://vitalik.ca/general/2019/08/28/hybrid_layer_2.html

https://vitalik.ca/general/2022/08/04/zkevm.html

https://z.cash/technology/zksnarks/

https://github.com/matter-labs/awesome-zero-knowledge-proofs#snorks

https://mirror.xyz/fundamentalabs.eth/24i98adRylhjdcqV1TnsT8ZbkIXCulCrDTIrsrziQmY

https://medium.com/coinmonks/comparing-general-purpose-zk-snarks-51ce124c60bd

https://immutablex.medium.com/ground-up-guide-zkevm-evm-compatibility-rollups-787b6e88108e

https://hackmd.io/@yezhang/S1 KMMbGt

https://medium.com/coinmonks/zk-rollup-optimistic-rollup-70c01295231b

https://docs.ethhub.io/ethereum-roadmap/layer-2-scaling/zk-rollups/

https://ethresear.ch/t/on-chain-scaling-to-potentially-500-tx-sec-through-mass-tx-validation/3477

https://hackmd.io/@yezhang/S1_KMMbGt#

https://medium.com/@foresightventures-zh/foresight-ventures-%E8%A7%A3%E8%AF%BB-zk-zkvm-zkevm-%E5%8F%8A%E5%85%B6%E6%9C%AA%E6%9D%A5-6643262505b2

3.5

https://medium.com/starkware/data-availability-e5564c416424

https://medium.com/starkware/starks-over-mainnet-b83e63db04c0

https://blog.matter-labs.io/zkrollup-vs-validium-starkex-5614e38bc263

https://blog.polygon.technology/zkverse-deep-dive-into-polygon-hermez-2-0/

致謝

特別鳴謝:Zenzhe Zhao,Mingyue Liang 兩位同事在研報技術問題上的支持,Discus Fish,Alex Zuo,Serena Yu 等同事在各個其他方面的支持。

誠摯感謝 1 年以來大家對 Cobo Ventures 的支持、認可和陪伴!雖然當下宏觀環境較為低迷,行業也處於相對艱難的時刻,但是 Cobo 依舊會堅持初心專注於構建可擴展的基礎設施,繼續做推動 Web 3.0 發展的 Builder。Cobo MPC 協管產品即將上線,敬請期待!

知識產權及免責聲明

本文由 Cobo Ventures 撰寫並提供,內容僅供參考之用。Cobo Ventures 並不保證所提供內容(無論明示與暗示)的準確性、完整性、可靠性或合理性。

本文之內容並非引導讀者對相關企業或產品進行投資或提供任何建議,Cobo Ventures 對因閱讀本文之內容或牽涉所提供內容而導致的任何損失或支出,不承擔任何法律責任。

Cobo Ventures 始終十分重視知識產權及相關權益的保護。雖已謹慎審查,但對本文之內容或圖片的侵權等行為的發生不具備充分的監控能力。如因本文之內容或圖片侵犯了您的相關權益,請您隨時發出權利通知,屆時 Cobo Ventures 將根據相關法律法規的規定採取相關刪除措施。

免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。文章內的信息僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。