Rollup 解決了 Plasma 等前輩在開發過程中發現的「數據可用性」問題,ZK Rollup 和 Optimistic Rollup 方案成爲了當前以太坊擴容改進的主力軍。讀懂 ZK Rollup 和 Optimistic Rollup,從這篇開始。

撰文:潘致雄,鏈聞研究總監

以太坊 在誕生後遭遇的最多質疑就是 性能 問題,在二層網絡解決方案 Plasma 幾乎全面潰敗後,前沿研究領域又將眼光放在了 Rollup 技術上。

當前以太坊鏈上交易的吞吐量 (TPS) 約每秒可執行不到 30 筆交易,雖然接近比特幣的幾倍,但離大規模應用還有較遠的距離。相比之下,Visa 或支付寶的交易處理能力的峯值至少每秒上萬筆。

加密貨幣經常被提及的一個用戶場景是「跨國匯款或支付」,採用鏈上發行的穩定幣 USDT、USDC 或 PAX 作爲交易媒介,以目前以太坊每秒 20 多筆交易的性能,離滿足全球的需求還有很大差距。

另一個比較熱門的用戶場景是 去中心化金融 (DeFi) ,3 月 12 日「黑色星期四」期間,以太坊網絡在鏈上清算和交易的首次大規模壓力測試中,雖說勉強可用,但交易成本提高了 數百倍 。只有交易成本降到比傳統方式更低之後,區塊鏈才更有實用價值。

以太坊擴容最熱門主力方案 Rollup 學習指南

爲了提升交易性能,以太坊設立了多個研究方向,第二層網絡 (Layer 2) 解決方案 Plasma 曾是其中最重要的一個。但在過去 2 年多的發展中,研究人員逐漸發現 Plasma 以及改進版本 Plasma Cash 存在不少的問題,比如要求用戶定期上線以及數據可用性問題,制約了 Plasma 的發展。

在 Plasma 誕生的一年後,名爲 Rollup 的技術浮出水面。基於此概念,還誕生了多個分支,最主流的是 ZK RollupOptimistic Rollup 兩個方案。

以太坊擴容最熱門主力方案 Rollup 學習指南

Rollup 技術解決了之前 Plasma 暴露出的問題,提供了和以太坊 Layer 1 (也就是以太坊自己) 相同的數據可用性和安全性,而且還能極大提高網絡的吞吐能力,同時降低單筆交易成本。正因如此,雖然很多人在廣義上稱 Rollup 爲 Layer 2 的技術,但事實上卻 介於 Layer 1 和 Layer 2 之間

Rollup 是什麼?

Rollup 的核心理念其實很簡單,就是將原本散佈在區塊中的大量交易數據,打包成一筆「濃縮」的交易,發佈到鏈上。爲確保其中每筆交易的有效性,各種 Rollup 方案設計了不同的機制以確保整個過程的安全性與 Layer 1 保持一致。ZK Rollup 以 零知識證明 zk-SNARKs 的密碼學技術確保安全性,而 Optimistic Rollup 則繼承了 Plasma 的 懲罰機制 ,以確保節點如果作惡將付出很大的代價。

以太坊擴容最熱門主力方案 Rollup 學習指南

當然,Rollup 的各種方案都存在不同的取捨。比如,ZK Rollup 的缺點是支持 通用型智能合約 更難,而且「濃縮」數據 (創建 ZK 證明) 的過程耗時較長;而 Optimistic Rollup 的 整體安全性 略差一些。不過,各個開發團隊具體的實現方案,都針對性優化了上述的這些權衡,部分問題已有顯著改善。

Rollup 技術將有助於提升 鏈上應用 的競爭力,特別是對於高頻交易的場景,有望降低轉賬或交易費用。不過由於本身機制的設計,相比直接的鏈上交易來說,Rollup 類交易可能在 鏈上的結算速度 會慢一些。出於這個原因,Rollup 的具體應用場景可以包括:

  1. 普通轉賬或支付
  2. 提升匿名性的轉賬或支付
  3. 去中心化交易所
  4. 去中心化身份系統
  5. 去中心化社交媒體

Rollup 概念出現還不到兩年,各個 Rollup 實現方案已經陸續上線了測試網,如 Matter LabsFuel Labs 的方案,而應用層的產品也在開發之中,最先上線主網的是由 路印 Loopring 開發的去中心化交易所,其他也宣佈將採用 Rollup 的項目包括 SynthetixDharmaAZTEC 等。

接下來,我們更深入瞭解學習一下。

Plasma 失敗了嗎?

關於區塊鏈擴容的討論起源於比特幣網絡,針對比特幣成爲「全球支付工具」的願景,社區、開發者和礦工最終討論出的一個方案是,將高頻的交易遷移到比特幣之外的一個虛擬層中進行,或可以稱爲「 Layer 2 」,而不是依賴於比特幣自身 (Layer 1) ,不過,最終的結算還是需要依賴 Layer 1 進行。

這就是比特幣「 閃電網絡 」的由來。而 Plasma 曾是以太坊 Layer 2 解決方案中最受矚目的一個,不僅因爲這是由 Joseph Poon 和以太坊創始人 Vitalik Buterin 共同發佈的白皮書,而且還有不少項目宣佈過,將基於 Plasma 技術展開研發。

Plasma 通過將高頻的交易遷移到以太坊網絡之外的 側鏈 之上,定期將批量交易的哈希值發佈到以太坊主網,然後設置一些 防惡意攻擊機制 ,確保資金安全性。最終的目的是爲以太坊擴容,提升交易吞吐量,減少交易成本。Plasma Group、Matic、LeapDAO 和 OmiseGo 等團隊都曾經是 Plasma 技術最主要的研發團隊,有些項目也獲得過以太坊基金會和 Consensys 等機構的資助。

但畢竟這是個試驗性的項目,在項目的研發過程中,很多現實問題被暴露了出來,其中最重要的兩個挑戰是:

  • 數據可用性 :因爲僅將批量交易的整體哈希值發佈到 Layer 1 上,而不是每一筆交易均發佈到底層公鏈,所以具體的交易數據不存在 Layer 1 上,用戶需要自己存儲具體的交易數據。
  • 用戶體驗差 :爲了避免惡意攻擊,Plasma 在設計挑戰期的機制的時候,用戶需要定期上線網絡,否則可能錯過而遭受不必要的損失。

以太坊擴容最熱門主力方案 Rollup 學習指南

雖說 Plasma 也推出過更新版的標準 Plasma Cash,但這些問題也依舊存在,最終導致了 Plasma GroupLeapDAO 兩個研發團隊在今年初決定,放棄 Plasma 技術,並轉向另一個新技術的研發:Rollup。

Matic 依舊堅持在 Plasma 技術的開發中,他們計劃在 5 月 15 日至 5 月底期間啓動主網的上線流程,並逐步進行去中心化,擴展到超過 100 個節點。究竟 Matic 有沒有處理好上述的這些問題,值得更多時間的觀察。

無論如何,研究以太坊擴容技術的開發社區,已經將更多精力切換到研究 Rollup 了。

爲什麼 Rollup 有機會?

在 Plasma 誕生的一年後,一位匿名人士 Barry Whitehat 在 Github 中提出了「Rollup」的概念,試圖以「SNARK」對以太坊進行擴容。

SNARK 是 零知識證明 的一類密碼學技術,全稱是「 簡潔化的非交互式零知識證明 」 (zero-knowledge succinct non-interactive argument of knowledge) 。

關於零知識證明的更多信息,可以參閱:一文說透密碼學歷史、工作原理、零知識證明及潛在影響

Rollup 一詞本身的含義爲「捲曲」或「捲起」,或者可以引申爲「彙總」或「聚合」。在數據庫的標準計算機語言 SQL 中,語法中的「Rollup」可以幫助 Group by 語句,將搜索出的一系列結果以聚合的數據顯示,或許這是他以 Rollup 命名該技術的由來。

在 Barry Whitehat 提出 Rollup 概念時,它是這樣被定義的:

「Rollup 通過 將交易聚合 ,僅需要在鏈上進行一次交易,就可以驗證多筆其他交易。」

而打包交易和驗證交易的方式是通過 zk-SNARK 技術實現的,這樣就能大幅度減少交易成本,確保安全性,也可以解決 Plasma 之前遇到的問題。

以太坊擴容最熱門主力方案 Rollup 學習指南

有人會將 Rollup 歸類爲 Layer 2 技術,但 Vitalik Buterin 卻不這麼認爲。

在 Rollup 概念被提出後,Vitalik Buterin 於同月在以太坊研究論壇中發表文章介紹該技術,他是這麼解釋的:「我們可以將在以太坊上的資產轉賬交易的規模進一步增加,而且不需要使用 Layer 2 技術中引入的『活性假設』 (liveness assumption,如狀態通道和 Plasma) ,只需要使用 ZK-SNARKs 爲大量的交易進行驗證。」

有意思的是,「Rollup」這個名字一開始沒受到重視。2019 年的 1 月, Matter Labs 推出了名爲「 Plasma Ignis 」的技術,因爲在此之前 Layer 2 的主流技術是 Plasma,所以他們以「零知識證明版本的 Plasma」作爲研究方向。但從技術角度來說,這其實不能算是 Plasma 的一類,更像是 Rollup。後來該團隊全面放棄了 Plasma Ignis 這個名字,轉而採用 ZK Rollup 作爲技術的方向,後續也推出了他們自己基於 ZK Rollup 的技術實現方案 ZK Sync ,還進行了更多的深度定製和優化。

以太坊擴容最熱門主力方案 Rollup 學習指南Matter Labs 聯合創始人 Alex Gluchowski 在 2019 年 1 月份發的推特

由於早期 ZK Rollup 的概念中,主要的缺點是生成 SNAKR 證明過程較長,而且也未能支持通用型的智能合約,所以 Fuel Labs 聯合創始人、以太坊二層擴容方案的長期研究者 John Adler 在 2019 年 6 月提出了另一個方案,稱爲 Optimistic Rollup 。該方案吸收了 ZK Rollup 對於數據可用性的優勢,以及 Plasma 的 懲罰機制 ,由於去除了零知識證明,所以可以更方便地支持通用型的智能合約。

以太坊擴容最熱門主力方案 Rollup 學習指南

Optimistic 意思是「樂觀的」,所以在該方案中,不是通過 SNARK 處理後再將數據聚合到鏈上,而是默認「樂觀」相信節點會將 最新且準確的數據 發佈到鏈上,否則其他人在驗證後,如果發現有問題可以發起挑戰,成功後節點會受到懲罰。

以太坊擴容最熱門主力方案 Rollup 學習指南

所以整體來看,Rollup 的技術相比較 Plasma,最關鍵的是解決了 數據可用性 的問題,所有交易數據都是在以太坊鏈上的, 安全 性 也能和以太坊主鏈相同級別。

那既然同樣都是把交易發佈在鏈上,爲什麼 Rollup 比普通的轉賬的吞吐量更高,成本更低呢?

因爲在構建 Rollup 類交易的時候,大量的普通轉賬行爲可以通過某些技巧 進行壓縮 ,最終在通過 零知識證明 SNARK 處理後,雖然 SNARK 生成過程較長且資源消耗 (Gas) 較大,但分攤到每一筆交易中就微不足道了。在 Vitalik Buterin 的初始提案中有具體的數據可以參考,雖然後續有各種不同的實現和差別。

在他的方案中,單筆交易的構成類似於:

以太坊擴容最熱門主力方案 Rollup 學習指南

相比普通鏈上交易所需要的 2.1 萬的 Gas 費用來說,以上這種單筆交易由於縮減了體積 (比如,以太坊地址是 20 bytes,以上這個僅需 3 bytes) ,所以總共僅需 892 Gas

但是由於 SNARK 證明的計算資源消耗較多,約 600k Gas ,以及運行合約所需約 50k Gas,所以這也就意味着,必須要批量處理 很多交易 ,纔可以分攤這幾百 k 的間接成本。

以太坊單個區塊 Gas 上限以 8M 計算的話,如果以純 ETH 交易來說,吞吐量約爲:

8M / 21k / 15 秒 ≈ 25 tps

而該方案中的吞吐量約爲:

(8M - 600k - 50k)/ 892 / 15 秒 ≈ 550 tps

這就是 Rollup 既能保證 Layer 1 數據的可獲得性,也能大幅減少數據需求並減少單筆交易的成本的主要原因。

以太坊擴容最熱門主力方案 Rollup 學習指南

除了上述提到的 Rollup 方案研發團隊之外,不少應用層的項目也看到了 Rollup 的優勢,宣佈將研究或集成 Rollup 技術。從目前公開的項目來看,選擇 Optimistic Rollup 的項目更多一些,包括去中心化交易所、DeFi 協議、匿名服務等,很可能是因爲項目方考慮到 Optimistic Rollup 的優勢爲 支持通用智能合約 ,以及不會像 ZK Rollup 需要花費很多時間生成 SNARK 證明,畢竟在沒有優化方案之前,可能會影響應用的使用體驗。

宣佈採用 ZK Rollup 方案的項目目前並不多,但是 路印 Loopring 的去中心化交易所是當前 Rollup 項目中開發進度最快的一個,早在 2 月底就已經上線以太坊主網,開始了公開測試。雖然後來也遇到了前端頁面的非致命漏洞,但是他們的經驗會爲後續很多其他即將採用 ZK Rollup 的項目提供參考和指導意義。

到底可以減少多少鏈上的交易成本呢?路印給出了重要的實戰數據,在他們採用的方案中,批量處理 4096 筆交易時,單筆交易只需要 375 Gas。也就是在正常的 Gas 費用下,每次交易成本爲 0.09 分人民幣 (注意單位) ,換句話說,100 萬筆交易的成本大約爲 900 元

但曾經研發 Plasma 技術的團隊 LeapDAO 卻認爲 Rollup 技術不是萬靈藥。在他們進行了具體的數據分析後,爲大家提供了很多值得參考的數據。根據他們的估算,整體而言 Rollup 可以爲以太坊網絡提升 略超過 10 倍的吞吐量 ,因爲相比 Plasma 還是犧牲了很多成本的。

除了兩個最流行的 Rollup 衍生版本外,還有一些以太坊二層擴容方案也採用了 Rollup 這個名字,比較常見的兩個是 SKALE Labs 提出的 BLS-Rollup 和 Offchain Labs 的 Arbitrum Rollup

不過 Optimistic Rollup 的提出者 John Adler 認爲,BLS-Rollup 不算是通常意義上的 Rollup,更像是一種批處理技術。而 Arbitrum Rollup 在 2018 年發佈論文和 2019 年發佈白皮書時都未提及 Rollup,他們在今年初上線測試網時才稱之爲 Arbitrum Rollup。

以太坊擴容最熱門主力方案 Rollup 學習指南

ZK Rollup 進展

ZK Rollup 技術研發中最重要的公司是 Matter Labsiden3 ,兩者均已推出測試網。但他們產品的定位略有差異,Matter Labs 更像是 通用型 解決方案,而 iden3 是 專用型 解決方案。

以太坊擴容最熱門主力方案 Rollup 學習指南

Matter Labs 推出的是一套完整的通用型解決方案,叫做 ZK Sync 。該方案考慮到了 ZK Rollup 存在的一些缺點,提出了相應的機制優化,比如之前提及的,生成 SNARK 證明耗時較長,以及較難支持通用智能合約。Matter Lab 聯合創始人兼首席執行官 Alex Gluchowski 表示,「在伊斯坦布爾升級之後,ZK Sync 將處於非常有利的位置,可輕鬆地達到每秒數千的交易量」。

爲了實現通用智能合約這一需求,Matter Labs 還推出了 零知識證明智能編程語言及框架 Zinc ,在今年 2 月推出了首個版本 v0.1 Alpha。Matter Labs 表示,Zinc 是用於創建安全的零知識證明線路以及基於其運行程序的智能編程語言和執行環境,Zinc 遵循 Rust 原理,並基於簡化的 Rust 語法,精通 Rust、C++、Solidity 等語言的開發者可在一天內快速上手。

而 iden3 研究 ZK Rollup 的初衷則是爲了他們原本項目考慮的。iden3 這個名字,可以想象成是 identity (身份) 的 3.0,感受一下,是不是類似於「Web3」?所以 iden3 團隊專注的是爲數字世界提供一種 開源的身份管理系統 ,利用零知識證明 zk-SNARK 提升 隱私特性 ,而 Rollup 則可以增加身份認證系統和應用層在鏈上交互行爲中交易吞吐量。

以太坊擴容最熱門主力方案 Rollup 學習指南

而從應用層來說,路印 Loopring 和 AZTEC 分別解決了用戶鏈上交易和隱私的需求。路印 Loopring 的去中心化交易所是當前 Rollup 項目中開發進度最快的一個,早在 2 月底就已經上線以太坊主網,開始了公開測試。

AZTEC 是一個隱私技術解決方案,在今年 2 月就上線了以太坊主網,但是他們還在考慮採用 Rollup 技術,以顯著降低以太坊網絡中 隱私交易的成本 。他們原本在隱私技術中就採用了零知識證明 ZK,擴容方案選擇的是 ZK Rollup,所以他們給新的這套方案取名爲 ZK ZK Rollup,或 ZK² Rollup 。第一個 ZK 是利用 SNARK 技術中的「 簡潔性 」 (succinctness) 提升網絡的可擴展性,將多筆交易合併爲一筆以減少交易成本,第二個 ZK 是利用 SNARK 作爲隱私技術,將合併前的每一筆普通交易升級爲隱私交易。

Optimistic Rollup 進展

Optimistic Rollup 技術中最重要的公司是 Fuel LabsOptimism (前 Plasma Group) 和 NutBerry ,他們研發的是通用型的 Optimistic Rollup 解決方案。相比 ZK Rollup,由於去除了複雜的零知識證明這類複雜的密碼學技術,所以支持 通用的智能合約 會更容易一些。

Optimistic Rollup 雖然比 Plasma 增加了數據可用性的優點,但也直接吸納了之前 Plasma 的成果,除了都用同一套 博弈和懲罰機制 之外,Optimism 團隊表示,這兩個方案可以共享很多基礎設施和代碼。另外,他們認爲對於一個成熟的 Layer 2 生態系統 ,Rollup、Plasma 和狀態通道應該是可以在同一個客戶端 (智能錢包) 內一起工作的。

其實在 Plasma Group 對外公開放棄 Plasma 技術之前的 2019 年年底,就組建了一家新公司 Optimism ,專注於實施 Optimistic Rollup,該公司目前已經從加密風險基金 Paradigm 和設計公司 IDEO 旗下的 IDEO CoLab Ventures 籌集了 350 萬美元 種子輪融資。新募集的資金主要用於實施 Optimistic Rollup 解決方案和基於該解決方案構建應用程序。儘管這是一家商業公司,但該研究小組表示,希望繼續爲開源項目做貢獻,並與公衆分享自己的研究成果。

以太坊擴容最熱門主力方案 Rollup 學習指南

爲了支持以太坊的智能合約,Optimism 已經發布了虛擬機 Optimistic Virtual Machine (OVM) 的 Alpha 版本。OVM 是嵌入在 以太坊虛擬機 (EVM) 中的副本,允許開發者使用 Optimistic Rollup 時,可使用和 EVM 相同的開發者工具集和智能合約語言。

以太坊擴容最熱門主力方案 Rollup 學習指南

剛開始,Optimistic Rollup 被稱爲「最小可行合併共識」 (Minimal Viable Merged Consensus) ,在 John Adler 於去年 6 月提出了這個概念後,就成立了 Fuel Labs ,以實行他們的擴容方案。

Fuel Labs 將開發一條無需信任的 以太坊側鏈 Fuel ,專門針對以太坊鏈上的支付進行設計,在伊斯坦布爾升級之前,保守估計能將以太坊 ERC-20 代幣 交易成本降低至原來的五分之一

今年 1 月,Fuel Labs 基於 Optimistic Rollup 的以太坊側鏈 Fuel 的公開測試網上線,代碼也已開源。值得注意的是,他們測試網的合約就已經支持所有的 ERC-20 代幣了,畢竟 ERC-20 本就是一種智能合約。後來在 3 月,他們宣佈推出一門新的 以太坊底層語言 Yul+ ,作爲對 Yul 的實驗性升級,爲 Yul (以太坊虛擬機的一種低級中間語言) 添加了各種 QoL 功能。Yul 是由 Solidity 開發者編寫的一門旨在進一步 優化編譯目標 的低級中間語言,簡單且具有實用的低級語法,讓開發人員比 Solidity 更接近原始以太坊虛擬機 (EVM) ,同時具有優化 gas 費使用效率的潛力。

以太坊擴容最熱門主力方案 Rollup 學習指南

NutBerry 相比上述兩個影響力更小一些,但他們的目標是開發一個基於 Optimistic Rollup 的 Layer 2 解決方案,且支持具有狀態 (stateful) 的智能合約。該項目最早被髮布在以太坊研究論壇,其中描述了該項目將分爲四個里程碑:支持 ERC-20 標準、支持 ERC-721 標準、支持無狀態智能合約、支持具有狀態的智能合約 (也就是可以儲存數據的智能合約) 。NutBerry 已於今年 2 月發佈了第二個測試網,已支持 ERC-712 (Ethereum typed structured data hashing and signing) 。

Optimistic Rollup 的應用層產品相對較多一些,可能是因爲支持智能合約更簡單,所以對於這些 DeFiDEX 或隱私服務這些需要智能合約處理邏輯的應用來說,更方便一些。

這些應用將會在後續的一兩個季度內逐步上線,不用多久就能體驗到了。

以太坊擴容最熱門主力方案 Rollup 學習指南

其他 Rollup

雖然其他幾個 Rollup 解決方案和上述的這些項目不太一樣,但是他們都以 Rollup 命名,所以本文也做相關的整理和收集:

以太坊擴容最熱門主力方案 Rollup 學習指南

未來

爲了以太坊鏈上應用生態的發展, 擴容 是一個持續且重要的話題,畢竟,離以太坊 2.0 最終形態至少還有 2-3 年的時間。在此之前,DApp、DeFi、遊戲等各種 鏈上應用生態 是無法規模化的, 計算資源 將成爲重要的瓶頸,任何一個強勢的 DApp 都可能迅速將鏈上的計算資源佔滿。以 3 月 12 日爲例,Maker 協議因以太坊價格暴跌而發起的抵押品拍賣清算流程,就是因爲 整體網絡擁堵 而產生了鉅額損失。

曾經最重要的擴容方案 Plasma,在實現過程中遭遇一些問題之後,開發者社區將更多精力轉移至 Rollup,因爲它解決了前輩在開發過程中發現的「 數據可用性 」問題。雖然有一些取捨,但還是比以太坊 Layer 1 效率高上幾十數百倍。而衍生出兩個最重要的分支 ZK Rollup 和 Optimistic Rollup ,分別選擇了不同的挑戰以確保安全性:是研究困難的 零知識證明密碼學 技術,還是尋找出一套安全且照顧用戶體驗的 博弈機制

不過,那些上百倍的提升目前還是理論值,或許是實驗室環境下的最優情況,在此之前還有很多的 研發工作和配套的優化 。只有這些方案被實現,並且被應用集成且大規模採用之後,才能知道真實的性能,或是否有其他的弱點和問題。

畢竟實踐才能出真知。Rollup 不是第一個擴容方案,也不會是最後一個。雖然我們都知道目標在哪裏,但是實現的路徑依舊是曲折的。