比較以太坊二層擴容方案 Optimistic Rollup 生態 9 個項目的方法和技術設計決策以及其中的各種取捨。

相關閱讀:《以太坊二層擴容之路:Plasma 衰落與 Rollup 崛起

原文標題:《以太坊重要擴容方案 : Optimistic Rollup 現狀報告》(The State of Optimistic Rollup)
撰文:Daniel Goldman,自由軟件工程師、技術顧問、作家
翻譯:Emma、Snow Lu
校對:Samuel

如果不是因爲這篇研究報告是受 MolochDAO 之託而作,我想 DAOSquare 應該不會翻譯如此「技術性」的學術論文(至少現階段不會)。不過,以太坊的擴展性的確是一個重要且熱門的話題,現有的解決方案包括 Optimistic Rollup、ZK Rollup,而 Optimistic Rollup 則是一個提出時間並不長的新興方案,它被認爲是最有前途的擴容方案。那麼時至今日它的發展情況如何?前景又如何?本文作者 Daniel Goldman 通過大量的調研完成了此份報告,現在,DAOSquare 將這份成果分享給大家,不過由於篇幅過於「宏大」,我們將分三期奉上,本篇爲第一、二部分。


以太坊新興 Optimistic Rollup 生態系統的技術概覽

以太坊重要擴容方案 : Optimistic Rollup 現狀報告 (上)Optimistic Rollerball (Daniel Goldman original, 2020)

以下報告由 MolochDAO 授權制作,John Adler 提供相關意見 / 複審;但此篇所有觀點均代表本人。此外,項目評估僅爲該報告發稿時的狀態簡況(2020 年 2 月)。事事均在變化,不做過度承諾。

籠罩以太坊擴容社區的陰霾--Optimsitc Rollup。

2019 下半年,Optimistic Rollups (ORU 或 Optiroll) 作爲以太坊 Layer 2 擴容協議迅速興起大熱。本文旨在概述新興 ORU 的開發生態系統至發稿時的簡況(2020 年 2 月)。我們先將 ORU 理論屬性放於 Layer 2 設計空間大背景下,之後比較不同項目的方法和技術設計決策以及其中的各種取捨。9 個項目包括:

  • Fuel Labs
  • ANON
  • Whitehat, Cellani, Lim ( hereby 「WCL」)
  • Pinkiebell
  • Offchain Labs
  • Interstate Network
  • Optimism
  • IDEX
  • Celer

點擊此處回顧他們的差異性。最後,我們將深入探討一些定性問題,這些問題將圍繞以上項目如何在空間中發揮自己的作用。

背景 & 理論

儘管美名在外,但開放且未授權的區塊鏈也有很多問題:網絡中的所有完整節點必須可見,並驗證系統處理的每筆交易;超低效率(相較中心化數字支付系統而言)是加密貨幣備受爭論的擴容挑戰的核心。

Layer 2 協議是減輕此類負擔的一類方法。將所有的節點全部驗證所有交易,變爲僅由感興趣的各方(例如那些希望獲得自己資金的人)對交易的某些子集進行本地驗證,以此(以某種方式,形狀或形式)來轉移這種負擔 。重要的是,他們保留基本層無需信任的安全模型,同時無需依賴用戶自己運行的軟件以外的資源。

數據可用性:解決

在以太坊 Layer 2 研發的早期階段,研發人員計劃在隱含假設下運作,即基礎層「減輕驗證負擔」就是完全將(某些)交易數據隔離在區塊鏈之外。(請參閱 Josh Stark 2018 年初的文章 Making Sense of Ethereum’s Layer 2 以瞭解當時的思維方式)。

加密貨幣協議有其內在的經濟屬性,可以激勵區塊生產者及時地、廣泛地共享區塊(除非是自私挖礦等邊緣情況 selfish-mining edge cases);區塊鏈基礎層有時被稱爲「數據可用性引擎」。確保數據是(完全)公開的,可以保證其能夠進行驗證,並且無效交易幾乎無法通過。

因此,在 Layer 2 的場景中,如果要將數據完全隔離在鏈外,將不再能保證我們有這種數據可用性;因爲那些擔心數據有效性的人可能會隱瞞數據。因此,我們必須弄清楚,在這種極端情況下,如何以某種方式確保不會發生無效的狀態更新。對於 Layer 2 系統,數據隱瞞問題始終是最難最壞的情況;因爲最糟糕的就是在沒有信息的情況下去探尋事實。

如果我們的定義足夠寬鬆,針對該數據隱瞞問題的所有解決方案都可以分爲兩大類:狀態通道和 Plasma (channels and Plasma)。如果兩方在一個通道中,雙方一致同意後,鏈下數據的更新才真正有效。因此,如果 Alice 選擇保留 Bob 的數據,Alice 將處於最新狀態;保留數據對她沒有好處。相比之下,Plasma 則沒有雙方一致同意的這一要求。這直接導致在 Plasma 中,如果用戶沒有任何直接證據,則可能發生無效更新。即使在這種情況下,Plasma 仍可以保證用戶持有必要的鏈下數據,在交互質疑期中證明並確保其資產所有權。

就實際結果而言,狀態通道已成爲第一個 Layer 2 構造。人們很容易理解,且狀態通道(可能)確實解決了一些基礎的研究挑戰,我們的確也看到狀態通道在比特幣和以太坊上的應用。狀態通道具有一些實用屬性,例如即時交易,這些屬性非常契合一些特定應用程序的需求。儘管是較通用的擴容方案,但在某種程度上仍受限制。從本質上講,通道之間是彼此獨立的,且免信任的連接將導致資本效率低下,及 / 或受制於可用的流動路徑。(我之前在 Bitcoin’s Lightning Network 發表了相關限制以及解決策略。)

Plasma 有望提供一種用途更廣,側鏈式擴容方案,使參與者之間可以更輕鬆地進行信息交互,但是它的發展路程卻更艱難。有關 Plasma 技術挑戰的細節不在本文討論範圍之內。但是,(非常)簡單來說,不能保證數據可用性的這種特質,讓很多特性難以立刻保留,例如:支持任意計價支付,用戶的驗證 / 存儲要求最小化,避免大批量退出方案,以及支持智能合約邏輯 。雖然可以緩解這些問題,但是解決一個障礙的代價往往是加劇另一個障礙。簡而言之,很難做到完全正確,即使這些構造足夠可行,其複雜性也會讓實踐變得困難而緩慢。(我已在此處及此處發表分析了 Plasma Cash 及其變體的合理進展及其帶來的挑戰。

Plasma 的問題讓甚至一些人認爲其會消失(declare its demise)。即使有人認爲這種說法還爲時過早(例如我),但是毫無疑問,Plasma 比預期設想的更加困難複雜,而且傳輸結果的空間速度比最初希望的要慢。隨着 Plasma 的停滯,以太坊社區渴望類似非監管下的、具有側鏈特性的事物。此時,就研究和實施狀態而言,Optimistic Rollup 出現了。

數據可用性: 讓步

我們可以在各種先前的提案中發現目前 Optimistic Rollup 的構造痕跡,比如 Shadowchains, Coinwitness, bulk validation with ZK-SNARKS (現在稱之爲 ZK Rollup), 以及 2015 年初的一場關於 Arbitrum 的學生演講等。

就目前瞭解而言,John Adler 和 Mikerah Quintyne-Collins (又稱「「Bad Crypto Bitch 」)將協議基礎稱爲「合併共識 Merged Consensus」。先前的 Plasma Group 團隊(現爲 Optimism,下文介紹)在一篇博客文章中描述了類似原理,並在 Optimistic Layer 2 遊戲語義分析中將其定爲框架,命名爲 Optimistic Rollup (無論出於何種原因),並最終確定。

Optimictic Rollup 採用前一段中所述的框架並把它翻轉過來;ORU 並不打算在數據隱瞞的情況下保留非監管性,而是採取了一種更直接的方法,即直接要求將交易數據發佈在鏈上,更具體地說,要求將足夠的數據發佈在鏈上,以便任何運行以太坊節點的人都可以重建 ORU 的狀態。擴容的好處在於,Layer 1 僅需發現數據並將其 Merkle 樹化爲區塊根,無需執行任何操作;(理想情況下)計算僅在 Layer 2 執行。因此,交易數據作爲呼叫數據發佈在鏈上,並且不存儲在狀態中;因爲狀態容量增長和計算成本(可能)是以太坊擴容的核心瓶頸,這具有不小的增長空間。

與 Plasma 一樣,基礎層無法直接驗證交易就意味着會有一些無效交易。在 ORU 下,任何當事方都將見證無效交易的更新,然後通過欺詐證據向基礎層展示欺詐證明,欺詐證明將還原欺詐性區塊以及及後續的區塊更新。一旦過了足夠的時間而沒有提交欺詐證明,就可以確定並彙總區塊,從這些區塊中啓動的提款就可以完成。爲了抑制故意發佈無效區塊的行爲對社區的惡意破壞,區塊提交人會發佈一個保證金,如果欺詐證明有效,將大幅削減保證金。這種防欺詐處理的精確方式是任何特定 ORU 結構的核心。

與 Plasma 相比,ORU 有一個不可避免的根本性缺點,那就是它的擴容性相對較低。假設鏈上數據與 ORU 塊中的數據成正比,則 ORU 構造會受到基礎層最大數據量的限制。不過在其他方面 ORU 也有很多益處,包括:

  • 更輕鬆 / 更廣泛地支持智能合約
  • 更容易地支持任意付款面額
  • 無需許可的區塊生產
  • 更簡單的博弈退出機制
  • 相對簡單的操作

正如我們預料,即使是上述因素也需要在不同的 ORU 結構中相互權衡。(有關 ORU 背後的更多信息,請參閱 John Adler 的 「The Why’s of Optimistic Rollup」。)

Projects Overview 項目概覽

以太坊重要擴容方案 : Optimistic Rollup 現狀報告 (上)

本報告採訪了 9 個使用 ORU 設計模式的項目,其中一個項目選擇在發佈時保持僞匿名狀態(以下稱爲「 ANON」)。

僅考慮 Optimistic Rollup 範圍內的項目,也就是說,它們必須都是 「Optimistic」,包括某種假設,即「假設有效,除非或者直到提交欺詐證明」(即,不是 ZK-rollup)幷包括「Rollup」,即,鏈上發佈了足夠的數據,任何觀察者都可以重建狀態並檢測無效性(即,不是 Plasma)。大多數所討論的大多數項目都嚴格符合這些參數,唯一的例外是 IDEX 2.0,其詳細信息將在下面討論。基於 Plasma 或與 Plasma 相鄰的構建上工作的其他各種項目,都屬於研究 ORU 的初期階段,包括 Matic,LeapDAO 和 Cryptoeconomics Lab。

智能合約支持和欺詐證明互動性

ORU 項目之間的核心區別在於它們對智能合約腳本的支持程度,以及它們所需要的驗證和欺詐證明的性質。在本次調研的 9 個項目中,有 5 個項目在其 Rollup 中實現了完整的以太坊虛擬機功能,其中 rollup 側鏈具有 Solidity 智能合約支持,其支持程度(大致)與以太坊基礎層的智能合約支持程度相當,而其餘項目則更偏向於支持更有限的、受限的功能。

廣義上講,除了智能合約功能本身之外,支持完整的 EVM 能夠保證 rollup 和主鏈之間的技術一致性,有望與基礎架構工具更輕鬆地集成,並且讓開發人員更容易過渡,他們已習慣在 Layer1 上使用 Solidity 編譯的智能合約。相反,那些更偏向於支持更有限的、受限的功能項目具有以下優點:成本更低的(或多或少)欺詐證明,驗證更容易,可以針對特定用戶直接實現優化以及總體上的簡化。

完整的 EVM: Layer 2 虛擬機

爲了使 Layer 2 智能合約計算保持無需信任,必須有一個備用方案,即以某種形式在 Layer 1 執行這種計算。由此可見,ORU 支持完整的 EVM,Layer 2 需要自己的虛擬機,該虛擬機可在 EVM 基本層中執行,爲此高性能的創建實現並非易事。簡而言之,EVM 的設計初衷並非旨在自身運行。您可以從 EIP 中瞭解到其中的一些挑戰,它也討論了修改 EVM 以直接合並此功能的可能性,以及 Kelvin Fitcher 在 Plamsa 中對這一問題的概述。

因此,所有五個完整的 EVM 項目都爲 Layer 2 執行創建了自己的 EVM 修正版本。爲了確保欺詐證明的可靠性和可預測性,VMs 的執行必須是確定性的;即,在證明時必須能夠準確再現最初發現欺詐的情況。 因此,非確定性操作必須完全修改或刪除,例如,檢查區塊高度,難度和時間戳。同樣,用於合約創建或銷燬的操作碼也需要刪除,因爲這種邏輯是特殊的。因此,在部署到 ORU 鏈之前,ORU 上 Layer 1 的合約可能需要對 Solidity 代碼進行一些小的修改。

欺詐證明

所有完整的 EVM ORUs 在如何促進欺詐證明方面都具有一些基本的共性:定期排序並提交 ORU 鏈的狀態,計算操作的哈希值也是如此,包括執行狀態轉換。(在所有實踐中,生成和驗證 state-root 的提交責任都落在了運營商身上,而不是用戶身上)。欺詐證明在某種程度上使用了這些數據來表明,所提交的步驟實際上並未正確地將初始狀態轉換爲最終狀態。

完整的 EVM 實踐中主要區別在於它們處理這些欺詐證明的交互程度。 ORU 本質上必須包含足夠的呼叫數據,這樣可以立刻發現欺詐行爲,並最終得到主鏈的共識。但是,執行此欺詐證明的過程因構造而異。

在單輪(有時,會被令人困惑地稱之爲「非交互式」)欺詐證明方案中,欺詐總是可以在單筆交易中證明,也可以在單方的多筆交易中證明。這樣做的好處是可以立即「解決爭議」,沒有麻煩的載體,因此不需要欺詐證明人的保證金,而且操作簡單。在多輪欺詐證明中,欺詐是顯而易見的,但是欺詐證明者和區塊生產者之間需要幾個交互步驟。這樣做的好處是 Gas 成本更低(在某些情況下更低),鏈上數據成本也可能更低。

單輪欺詐證明

Nutberry,Optimism 和 Celer 的 ORU 都支持單輪欺詐證明。這就要求每筆交易都必須提交到序列化的後狀態根(post-state root)。在 Optimism 的模型中,Celer 也直接受到影響,如果檢測到欺詐,欺詐證明者會發布交易的初始狀態和最終狀態的時間(slot),並讓主鏈完全執行交易。(此流程與用於驗證以太坊區塊的無狀態客戶 stateless client 模型非常相似)。理想情況下,交易只需要最少的狀態時間(slot)即可證明欺詐。但是原則上,交易可能需要讀取大量狀態數據。如果欺詐證明需要大量數據和 / 或計算,很難將其放在主鏈區塊上,那麼 Optimism 可將證明拆分爲多個交易(請注意,這些交易仍由欺詐證明者提交。因此,從某種意義上來說,此額外步驟不符合「交互」的條件。)

Nutberry 的方法與此類似,但使用「門控計算(gated computing)」模型執行合約。智能合約被修補以包含檢查點(checkpoint)。 在此模型中,交易會提交多個更細化的中間狀態根,可能需要更多數據,但在較小的數據塊中執行欺詐證明。

多輪欺詐證明

證明者需要與欺詐證明者之間進行多個步驟的交互才能決定多輪欺詐證明是否屬實。按照 ORU 的定義,關鍵是要發佈足夠的數據,讓任何一個誠實的參與者或觀察者都可以從一開始就確定哪一方在說真話,從而預測了質疑期的結果。

在 Interstate One 的例子中,交易包含狀態根,且發佈時提交 Merkle 根至對應執行的步驟,而不是提交至步驟本身。 從某種意義上說,這種提交是一種二級「optimistic」的假設。 只有驗證者提出問題時,操作員纔會將 EVM 消息棧(stack)張貼在呼叫數據中,驗證者可以使用該信息簡要證明欺詐。 在最壞的情況下,此過程總共進行 3 輪,並且要求呼叫數據與所涉及的交易中的步驟數量成線性關係(與單輪欺詐證明相比,在所有情況下都需要線性數據)。

在互動性增強方面最先進的是 Offchain Labs 的 Arbitrum Rollup,可以最大程度地減少鏈上的足跡。 使用 Arbitrum,只有區塊,而非交易,需要提交狀態根。 與 Interstate 一樣,這些也包括了提交哈希值的計算。 如果雙方提出了相互矛盾的主張,則他們將進入爭端;在該爭端中,他們會交互式地找出無效執行的單個計算步驟(如果欺詐,原則上必須至少存在一個無效步驟)。

他們通過在棧(stack)中進行有效的二進制搜索直到欺詐已隔離:即,欺詐證明者通過棧(stack),在中途的一個點請求狀態哈希,然後將棧(stack)二等分並重復已知無效的一半。 此過程將不斷重複,直到只剩下一個無效的操作,然後在鏈上執行該操作。 因此,在最壞的情況下,此過程需要(n)個日誌步驟(其中 n 是操作數),並且需要最少的 Layer 1 計算。

這種方法的一個令人驚訝的特性是,儘管爭議正在進行,但無需暫停系統的其餘部分。用戶和區塊生產者可以繼續照常進行交易。可以將「爭議」視爲可能性樹中的分枝。誠實的用戶可以驗證且確定哪一方是誠實的,並在此基礎上繼續發展,瞭解爭端最終將以何種方式解決。因此,爭議的持續時間不會讓系統的其餘部分延遲。有關更多信息,請參見 How Arbitrum Rollup Works。

應用特定的 Rollups

ORU 項目支持更受限制的功能,同時尋求圍繞更特定的案例進行優化:通證支付、去中心化交易、私人支付和大規模遷移。這四個協議都各不相同,也將分別進行探討。

Fuel (「區塊鏈上的比特幣」)

Fuel 正在實施以支付爲中心的、基於 UTXO 的 ORU 側鏈,其數據模型類似於比特幣。 這種設計需要平衡智能合約的一些功能,以利於實現簡便性以及更便宜的驗證和欺詐證明。 實際上,關於 Fuel 與完整 EVM ORU 的權衡,許多想法與比特幣與和以太坊的權衡相似。

與比特幣一樣,Fuel 鏈的狀態被隱式定義爲所有未花費的交易輸出的集合;不需要狀態根序列化。 支持簡潔欺詐證明的模型與 Greg Maxwell 在 2014 年 Greg Maxwell in 2014 最初爲比特幣提出的模型相似(並在 2019 年由 John Adler 單獨再次發現 and independently rediscovered by John Adler in 2019); 交易與比特幣交易非常相似,但是包含一個額外的數據區,用於指定每個輸入的處理位置。 有了這個數據區,就可以在一個回合中用一個或兩個包含證明(inclusion proofs)來證明所有欺詐案件(雙重支付攻擊,虛假投入等)。 除了低成本的欺詐證明之外,UTXO 模型還有望實現更高性能的驗證-更好的狀態訪問模式和並行空間(與同步完成的驗證 EVM 執行相比)。

Fuel 將使用一種模型來支持 ERC20 和 ERC721 傳輸,該模型可以反映比特幣彩色硬幣提案(colored coins proposal for Bitcoin)。 它還支持某些特殊的交易類型,包括 HTLCs 的原子互換。 該計劃最終支持一種更強大的無狀態謂語腳本語言,其功能類似於比特幣腳本。 (有關更多信息,請參見此處)。

ANON 的 ZK-Optimistic-Rollup (「區塊鏈上的 ZCash」)

另一個獨特的 ORU 項目是 ANON 的 ZK-Optistic-Rollup,它支持 E RC-20 和 ERC-721 支付交易,並具有與 ZCash 隱私地址相同的隱私保證。該設計與 ZCash 本身有很多共同點(有關 ZCash primer,請參見此處);資金索賠採用 UTXO 式的「簽發」形式;支付產生的新簽發和創建的「廢止通知(nullifier)」,記錄該簽發是用於防止未來重複支出。交易也包括 ZK-SNARK,可證明其滿足所有有效性條件,且沒有向觀察者實際透露任何細節。

爲了維護簡潔的欺詐證明,ZK-ORU 擁有 ZCash 中沒有的功能:廢止通知存儲在 Sparse Merkle 樹中,並隨每個新的 ORU 塊進行更新。這樣可以輕鬆證明成員資格(已提交的)和非成員資格(未提交的)。與所有其他 ORU 一樣,計算被樂觀地延遲了,包括 SNARKS 本身的驗證。所有的欺詐情況,包括無效的 SNARK,只需一步就能證明。

注意,生成 SNARK 的重任落在用戶身上;ANON 預計一個客戶會花費 10-30 秒生成 SNARK。

(還要注意,儘管名稱和組成部分相似,但 ZK-Optimistic-Rollup 實際上與 ZK-Rollup 有所不同,後者不一定提供隱私保護,不使用欺詐證明,並且使用運營商生成的 SNARK 證明其有效性。歡迎使用加密貨幣。)

WCL 的 ORU Hub

該 ORU 操作旨在成爲 rollup 鏈之間的批交易標準,是讓用戶自願將其資金遷移到升級合約的一種手段。

該操作本身是一條簡單的,僅基於帳戶支付的鏈,與 Fuel 一樣,它提供廉價的欺詐證明和數據驗證。這種構造的主要目的是建立一種標準架構,以便能夠直接在不同鏈之間進行轉移,即,不必從一條鏈中取出款後再重新存到到另一條鏈上。這可以通過支持批量存款和建立單向鏈間的交叉連接實現。 只要目的鏈上的驗證者發現出發鏈上的欺詐行爲,就可以將付款視爲最終付款,而不會產生任何額外的延遲。這與圍繞 ETH 2.0 交叉分片通信的研究 ETH 2.0 cross shard communication 邏輯相類似。

雖然主要的計劃用例是可升級性,但此機制潛在的其他用例是在單獨的、不同的、實時 rollup 鏈之間遷移,我們需要對此進行更多研究。關於 rollup 鏈間遷移的精確協議,以及需要確認的規範鏈,更多詳細信息尚未公開,日後會在此處附上鍊接。

IDEX 2.0

IDEX 的獨特之處在於,他們將 ORU 作爲已經投入生產的項目的最佳擴容版本,IDEX 合約當前已在主網運行,IDEX 合約使用的狀態模塊(state)比任何以太坊其他應用程序都要多。

IDEX 2.0 的 rollup 鏈支持登記訂單式去中心化交易功能,並且圍繞此特定用例構建而成。 該鏈負責執行訂單,維護用戶餘額,允許設置發生其他功能,例如更高級的訂單類型,自動交易引擎等。

IDEX 的 ORU 中的驗證者必須有 IDEX 通證。驗證者提交收據證明已發佈的區塊,並根據他們在有效區塊上的簽名和有效欺詐證明的簽發而受到獎勵和 / 或懲罰(如果他們選擇接受全部的「風險」驗證)。獎勵是使用一部分的交易費用和自己的通證支付的(加密經濟學模型的分析不在本文範圍內;有關更多信息,請參閱 IDEX 2.0 白皮書 DEX 2.0 whitepaper)。

在協議中,區塊生產者僅上傳區塊的 Merkle 根作爲初始投入,僅在質疑時將區塊內容發佈到呼叫數據中。由於無法在鏈上保證 rollup 區塊數據的可用性,因此,這並不完全符合上述 「Optimistic Rollup」 的定義; 實際上,他們將其稱爲 「優化的 Optimizied Rollup Optimized Optimistic Rollup」。 一旦發佈呼叫數據後,就可以通過一兩個附加步驟來證明欺詐行爲。

來源鏈接:medium.com