基本介紹
Layer2 是被設計為解決以太坊擴展性問題的關鍵方案之一,透過在以太坊主鏈之上建立額外的網路層,允許處理更多交易的同時保持主鏈的安全性和去中心化特性。
Rollup 是一種透過在鏈下處理交易然後將交易資料「打包」進入主鏈的Layer2 擴容方案,其安全性由Layer1 保證,是目前最主流的Layer2 擴容方案,相比於其他的鏈下交易方案,例如狀態通道、側鏈、Plasma 等,Rollup 有三個特點:
- Layer2 是與Layer1 相對獨立的平台,所有參與用戶也是獨立的Layer2 帳戶,用戶可以在Layer2 平台上與其他Layer2 用戶進行交易,但是Layer1 帳戶與Layer2 帳戶之間的交互需要透過Layer2 運營方部署在Layer1 及Layer2 上的智能合約,最常見的互動就是ETH 等代幣的轉移;
- 所有的交易資訊都需要被完整的記錄在主鏈上,也就是Calldata 或Blob 資料(EIP-4844),即使Layer2 狀態遺失,任何人都可以從主鏈上儲存的資訊中恢復出遺失的狀態,解決了在以往的鏈下交易方案中存在的數據可用性問題;
- 交易執行和狀態變更在Layer2 平台,但是狀態摘要會被發佈到Layer1 鏈上,因此Layer1 鏈能夠透過某種資料有效性驗證方式進行驗證,透過驗證後Layer2 的狀態將在Layer1 主鏈上鎖定;根據其資料有效性驗證方式的不同,Rollups 可以進一步細分為Optimistic Rollups 和ZK Rollups。
Rollup 發展史
側鏈是最早的Layer2 方案之一,顧名思義,側鏈是與主鏈(Layer1)掛鉤(peg)的獨立區塊鏈,有自己的共識模型和區塊參數。當我們將一個區塊鏈掛鉤到另一個區塊鏈時,這意味著我們可以在兩個區塊鏈之間移動資產。當想要更快交易時,可以將資產從主鏈轉移到側鏈並在側鏈上進行交易,完成後,再將資產轉移回主鏈。
Plasma 是2017 年由閃電網路的提出者之一的Joseph Poon 和以太坊創始人Vitalik Buterin 提出的一個Layer2 擴展解決方案,是側鏈的演變方案。
Plasma 鏈是在以太坊外建立的獨立區塊鏈,也稱為子鏈,就像一棵樹的樹枝,以太坊是主幹,也稱為根鏈。每個子鏈可以在以太坊上部署自訂的智慧合約,可用於處理不同的業務。 Plasma 鏈之上可以再建構一層子鏈,形成樹狀的Plasma 網路。 Plasma 的工作原理是將大的計算任務拆分成小任務,並將它們分配給各個子鏈進行處理,處理後的結果結果逐層匯總並提交至上層,從而實現了對大量複雜計算的快速和低成本處理。
Plasma 需要提交Plasma 鏈上發生的交易的Merkle 根,當用戶試圖將他們的資產從Plasma 鏈移回根鏈時,用戶可以提交將資產發送給Plasma 的最新交易的Merkle 分支。這開始了一個挑戰期,任何人都可以嘗試證明用戶的Merkle 分支是欺詐性的。如果Merkle 分支存在欺詐,則可以提交欺詐證明。由於根區塊鏈僅追蹤Merkle 根,因此與那些發生在主鏈上的交易相比,它必須處理的數據要少得多,提升了根鏈的擴展性。
Plasma 是一種無監管的以太坊側鏈技術,無監管是指即使Plasma 鏈受到惡意攻擊或驗證者串謀起來作惡,Plasma 鏈上的資產也可以安全退回根鏈。這也是Plasma 與需要依靠自己的安全模型來保護使用者的資產的側鏈最大的不同。 Plasma 的代表方案是Polygon 1.0(Matic)。
但Plasma 有三個致命的缺點:
- Plasma 鏈需要一個運營商將Merkle 根承諾發佈到根鏈,運營商可以執行“數據可用性攻擊”,即拒絕將某些交易發佈到鏈上。在這種情況下,由於缺乏建構詐欺證明的交易,阻止了用戶資產退出;
- 當用戶試圖從Plasma 鏈中退出資產時,他們必須提交退出交易請求,然後等待一段時間,即所謂的挑戰期。在挑戰期的任何時候,任何用戶都可以透過提供退出無效的證明來挑戰另一個用戶的退出;
- 使用者必須監控和驗證Plasma 鏈上的所有交易,以偵測惡意節點的行為並及時退出,然而交易驗證成本高昂,且這種監控需求為參與Plasma 鏈增加了大量開銷。
正因為Plasma 存在的缺點,從2019年開始Plasma 陷入了發展瓶頸,此時在ConsenSys 擔任Layer2 可擴展性研究員的John Adler 提出了Optimistic Rollup 方案,由於仍然採用欺詐證明,主要解決了Plasma 的數據可用性問題。
另一邊,Vitalik Buterin 於2018 年開創性引入了零知識證明技術證明區塊狀態變化的有效性,這也是ZK Rollup 的雛形。零知識證明(Zero—Knowledge Proof)最早是由S.Goldwasser、S.Micali 及C.Rackoff 在20世紀80年代初提出的。它指的是證明者能夠在不向驗證者提供任何有用的信息的情況下,使驗證者相信某個論點是正確的。也就是說,證明者向驗證者證明並使其相信自己知道或擁有某一訊息,但證明過程不能向驗證者洩漏任何關於被證明訊息的資訊。
zk-SNARK(Zero-Knowledge Succinct Non-interactive Arguments of Knowledge,零知識簡明非互動式知識論證)是一類應用廣泛的通用零知識證明方案,透過將任意的計算過程轉化為若干門電路的形式,並利用多項式的一系列數學性質將閘電路轉化為多項式,進而產生非互動式的證明,可實現各類複雜的業務場景的應用。
但zk-SNARK 繞不開的一個點就是中心化的可信設置,可信設置是指在受信任的設置中,多方各自生成一個部分密鑰來啟動網絡,然後銷毀該密鑰。如果用於建立信任設定的金鑰的保密資訊沒有被銷毀,那麼這些保密資訊可能會被利用透過虛假驗證來偽造交易。
2019年由Aztec 研究團隊提出Plonk 演算法則解決了zk-SNARK 通用性問題,即可信設定與應用無關,僅需要一次可信任設定可以滿足所有應用,而且可信任設定可以任意更新,只要有一個可信參與者,即可確保可信設定的安全性,可以說Plonk 演算法的提出大大加速了ZK Rollup 的發展。
Rollup 賽道
縱覽Rollup 賽道,當下的競爭非常激烈,目前已經上線主網的Layer2 Rollup 中,仍然是Optimistic Rollups 佔據大部分TVL,主要原因是Optimistic Rollups 是最先落地的完全Rollup 方案,但是隨著ZK Rollups 技術的成熟,越來越多的人開始關注並參與ZK Rollups 生態。
Optimistic Rollups
Optimistic Rollups 依賴於一種「樂觀」假設,即大部分交易都是有效的,並允許在發現詐欺行為時進行挑戰和回滾。 Rollup 的Layer1 合約不會直接對Layer2 提交的新狀態進行驗證,而是為每個被提交的新狀態準備一個挑戰期。由於Rollup 會將所有的交易資訊提交到主鏈並公開,因此任何人都可以對該狀態更新進行驗證(特別是當該狀態更新涉及到自己的錢包時)。如果新狀態是錯誤的,那麼驗證者可以針對該錯誤狀態產生一份詐欺證明,並在挑戰期內提交,從而使該錯誤的狀態更新被無效化。
Optimistic Rollups 代表方案是Arbitrum 和Optimism。
Arbitrum 2021年9月正式啟動主網,是目前TVL 最高的Layer2 協定。
目前,在Arbitrum 生態系統中主要有3 個網絡,包括Arbitrum One、Arbitrum Nova、Arbitrum Orbit。
- Arbitrum One 是目前Arbitrum 生態的核心Rollup 鏈,其所有交易資料存放在主網以太坊上,我們平常提到的L2、鏈上生態應用多運行在該主網上。
- Arbitrum Nova 是一個基於AnyTrust 技術構建的、專為遊戲、社交應用程式和高吞吐量的DApp 用例而設計的新網路。此網路的交易資料儲存在鏈下,由資料委員會管DAC 管理。
- Arbitrum Orbit 是用來建構Layer 3 網路的開源工具包,支援開發者部署和創建自己的鏈。開發者可以基於Orbit 工具包搭建自己的Rollup 和AnyTrust 鏈(Layer 3),選擇由Arbitrum One 或Arbitrum Nova 其中一條鏈作為結算層,來實現擴展。
Optimism 2021年8月上線主網,目前擁有Layer2 第二大TVL,上僅次於Arbitrum。
Optimism 實現了EVM 等效性,以太坊上的Solidity 智能合約可以在Optimism 的Layer2 上運行,且不需要建立額外的功能,開發者可以無縫轉接到Optimism 上開發應用。
OP Stack 是Optimism 推出的開源模組化工具包,涵蓋資料可用性層、執行層、結算層、治理層等。開發者可以根據自己的需求場景利用OP Stack 工具包組裝一個客製化的Layer2 網路。正因如此,OP Stack 為Optimism 引入了超級鏈的概念,超級鏈是指構建在OP Stack 上的一組Layer2 區塊鏈(也稱OP 鏈)統稱。目前,基於OP Stack 建構的Layer 網路已有數十條,包含Base,opBNB,Magi,Worldcoin 等重量級項目。
ZK Rollups
ZK Rollups 則使用零知識證明技術來確保鏈外處理的交易是有效且正確的,提供更高的安全性和效率。 Rollup 的Layer2 平台在狀態變更後,要為狀態變更的正確性提供一份零知識證明,並隨著狀態變更一同提交到主鏈上。主鏈上的合約會對該證明進行驗證以確定狀態更新的正確性。相較於Optimistic Rollup 方案,ZK Rollup 不需要設定漫長的挑戰期來最終確定Layer2 交易,同時也不需要依賴錯誤的狀態更新會在挑戰期內被發現的假設。
代表方案是zkSync, StarkNet,Polygon zkEVM 和Scroll。
ZK Rollups 是第一個主線上線的zkEVM 項目,以零知識證明為基礎,允許交易在不透露基礎資料的情況下被驗證。 zkSync 的主要特點之一是使用”樂觀” 轉賬,允許用戶發送和接收交易,而無需等待它們在以太坊區塊鏈上被確認。這大大減少了交易時間,並允許更高的交易吞吐量。除了使用零知識證明和樂觀的轉移,zkSync 還利用其他一些技術來提高可擴展性和安全性。這些技術包括簽名聚合,允許將多個簽名壓縮成一個簽名,以及多鏈支持,這有助於zkSync 與其他區塊鏈網路互動。
StarkNet 使用了zkSTARK 的擴容解決方案,這是一個零知識證明系統,允許使用者證明計算的正確性而不透露底層資料。這使得網路上的隱私和安全性更高,並且能夠在不需要信任第三方的情況下進行複雜的計算。 StarkNet也利用了分片技術,這種技術允許將區塊鏈分割成多個較小的鏈,或稱”分片”,可以並行處理。這允許更大的吞吐量和更快的交易時間,因為每個”分片”可以獨立於其他”分片”進行處理。
Polygon 2.0 推出其ZK Rollups 技術,稱為Polygon zkEVM。這項技術透過使用零知識證明來解決以太坊區塊鏈的可擴展性問題,從而使以太坊網路上的交易更快、更便宜,而這種實現是在字節碼級別而不是語言層面上相容的.
Scroll 是一個與EVM相容的ZK Rollups,可以支援與以太坊相同的程式語言和智慧合約,讓開發人員可以輕鬆地將他們現有的應用程式遷移到Rollup 網絡,而不需要對他們的程式碼進行任何修改。
總結
區塊鏈由於自身的效能問題導致其難以滿足當下需求,基於Optimistic 和零知識的擴容方案將有望解決區塊鏈效能瓶頸,在不犧牲去中心化和安全性的前提下提高交易速度和交易吞吐量。 Rollups 透過將計算轉移到鏈下來提高區塊鏈的吞吐量,即將大量交易打包到一個Rollup 區塊內,並在鏈下為該區塊生成一個有效性證明,Layer1 上的智能合約只需驗證該證明即可直接應用新的狀態,可以實現更低的Gas 和更高的鏈上安全性。
短期內,Optimistic Rollups 很可能在通用的EVM 計算中勝出,而ZK Rollups 則可能在簡單的支付、交易和其他特定應用場景中勝出,主要原因還是Zk Rollups 雖然比Optimistic Rollups 更快、更高效,但並沒有為現有的智能合約提供一個簡單的方式來遷移到Layer2。
但由於近年來區塊鏈、隱私計算等新興技術應用的發展,零知識證明技術成為了構建信任的重要技術,從中長期來看,隨著ZK-SNARK 技術的改進,ZK Rollups 將在所有場景中勝出,成為以太坊擴容方案的最終答案。