本文發表於2021年6 月1 日。 1
介紹
我們先來打個比方。
想像一下,我們回到了初中數學課堂上。 “殘忍” 的初中數學老師給我們每人發了一張卷子,上面列了100 道數字很大的除法題。我們的任務是解出盡可能多的題。但是,這裡面有個陷阱:我們只能將最終的解和每個計算步驟寫在一張答題紙上。幾分鐘後,我們有了一種不祥之感,越想越覺得這個任務荒謬至極。算完幾道題之後,這張答題紙就已經滿滿噹噹了。
這個噩夢般的故事與Rollup 有什麼關係?
在這個故事裡,答題紙就是以太坊區塊,算術題就是智能合約交易。以太坊目前非常擁堵。每個區塊內要包含的交易太多了。更糟糕的是,絕大多數交易都是計算密集型的,例如閃電貸和通過聚合器路由的交易。隨著DeFi 興起,簡單轉賬和支付已經成了過去時。
這就是問題的關鍵所在。就像數學老師要求我們將每個計算步驟都寫在一張答題紙上那樣,以太坊也必須處理並記錄每個事務的每一筆計算。
直到Rollup 出現。
Rollup 將計算轉移到鏈下,只將最少的事務數據存儲在鏈上。從這個基本意義上來講,Rollup 就是以太坊的草稿紙。 Rollup 負責所有復雜的數據處理,讓每個以太坊區塊都能容納(疊卷)成倍多的智能合約事務。
這個比喻不僅直觀呈現了Rollup 旨在解決的問題(“因計算過載而導致的網絡擁堵”),還讓我們大概了解了Rollup 解決方案需要做到什麼(“將計算轉移到鏈下”)。但是,Rollup 的實際運作方式、呈現形式以及魅力所在都是我們需要深入研究的。
什麼是Rollup?
Rollup 本質上是一條獨立的區塊鏈,但是進行了一些修改。和以太坊一樣,Rollup 協議也使用“虛擬機” 來執行智能合約代碼。 Rollup 的虛擬機獨立於以太坊自己的虛擬機(EVM)運行,但是由以太坊上的智能合約管理。因此,這種聯繫可以讓Rollup 和以太坊之間進行通信。 Rollup 負責執行事務並處理數據,以太坊負責接收並存儲結果(譯者註:其實以太坊還儲存Rollup 事務的數據,不僅只儲存結果)。 2
從技術層面來說,Rollup 鍊和傳統區塊鏈之間的主要區別在於出塊方式。
通常來說,區塊鏈由一個分佈式參與者網絡(“礦工” 或“驗證者”,具體取決於鏈的類型)維護。這些參與方通過共識創建區塊。簡單來說,參與方通過投票決定如何處理一組交易(如何創建下一個區塊)。獲得多數支持的區塊將被永遠寫到區塊鏈上。
相比之下,Rollup 鏈不按多數原則運行。監控Rollup 狀態的一方可以將“斷言” 發送至以太坊,來說明交易是如何處理的。重要的是,以太坊將決定是否接受這個斷言,無論這個斷言是否獲得了Rollup 上多數參與方的支持。 3 這通常意味著,在Rollup 上,實際只有一方負責處理交易和生成區塊。 4(譯者註:這一點也不是絕對的)
等等…… Rollup 是中心化的?
Rollup 之所以能夠如此高效地處理交易,一部分原因就在於它在出塊方面的中心化特性。但是,這也提出了一個令人擔憂的問題:在缺乏多數決共識的情況下,Rollup 如何確保出塊的正確性—— 如果區塊創建者作惡怎麼辦?
由於密碼學貨幣用戶已經習慣了基於共識的區塊鏈,這種中心化會令他們感到困惑。確實,如果這篇文章到此結束,我們可能會誤以為Rollup 只是“由單個參與方復制的數據庫”,就像Avalanche 的聯合創始人Kevin Seqniqi 最近在推特上所言。
實際上,我們很快就會明白,與其說人們對Rollup 的中心化特性的擔憂是錯誤的,不如說是一種邏輯誤導。通常情況下,缺乏強大共識機制的中心化區塊鏈確實容易遭到破壞和惡意操控。但是,就Rollup 解決方案而言,缺乏去中心化並不會影響它們的安全性和完整性。 5為了弄清楚背後的原因,我們需要更深入理解Rollup 的原理。
數據可得性的重要性
回想一下文章開頭提到的數學試卷。草稿紙就是我們的救命稻草。只要將計算過程寫在草稿紙上,我們就只需在答題紙上寫下問題和解。 Rollup 就好比是草稿紙,“將智能合約計算轉移到鏈下,只將最少的事務數據存儲在鏈上”。
事實上,後半句話(將事務數據存儲在鏈上)對於Rollup 的運作方式來說至關重要。就Rollup 而言,只有計算(數據處理)會被轉移到鏈下。 Rollup 所處理的每筆事務的輸入數據(即“調用數據”)仍存儲在以太坊上。
將事務數據保存在鏈上為何如此重要?再拿數學試卷的例子來看,我們最後交給老師的答題紙上只有數學題和解。這樣一來,即使我們沒有將每個計算步驟寫上去,老師也可以檢查我們的作業情況。同理,永恆鏈上數據可得性意味著,Rollup 上的任何一個計算都可由以太坊基礎層重複執行(譯者註:吹毛求疵來說,這話是不對的。以太坊單筆事務可執行的計算量是有上限的)。
簡而言之,Rollup 的鏈上數據可得性引入了內置審查流程。在將事務永久寫入賬本之前,以太坊可以再次確認Rollup 上處理的事務的完整性—— 就像是美國最高法院的司法審查權。 6
局限性優勢
Rollup 的主要優勢就是其局限性。 Rollup 只能將交易發送至基礎層,不能強制基礎層接受,因為以太坊可以在必要時推翻任何Rollup 事務。由於存在審查過程,Rollup 事務不具備真正的終局性。
了解了Rollup 的局限性後,我們回到上文提出的中心化問題。 Rollup 的單方出塊機制確實存在做惡的可能性。然而,一旦出現這種情況,以太坊會在完成審查流程後拒絕相關交易,並懲罰出塊者。 7
對於Optimistic Rollup 和ZK Rollup 來說,“審查流程” 的具體運作方式不同(詳情請參見此處)。然而,無論是哪種Rollup,審查流程遠比以太坊自己處理交易(不依賴於Rollup)高效得多。
總之,Rollup 系統以“制衡” 為基礎,從而保證以太坊的主權鏈地位。以太坊的共識是事實的最終仲裁者。請注意,側鏈的情況完全不同。側鏈不像Rollup 那樣存在審查流程,而是另有一套獨立的共識機制來處理交易。側鏈可以直接賦予交易終局性,而Rollup 上的交易要等到以太坊確認後才能獲得終局性。因此,側鏈需要更多信任假設,因為它們無法從以太坊的去中心化安全性中受益。事實上,我認為側鏈更像是兼容EVM 的Layer 1 ,而非Rollup。
結論
總的來說:Rollup 將計算轉移到鏈下,從而釋放更多鏈上空間。鏈上數據可得性很重要,因為它使得以太坊可以復核Rollup 交易的完整性。反之,審查流程可以檢查Rollup 出塊,免去對共識機制的需求。
Rollup 最終可以讓以太坊魚和熊掌兼得:在釋放成倍多鏈上空間的同時不破壞網絡的去中心化安全性。至少在我看來,這正是我們所期望的優雅的可擴展性方案。
感謝t11s 和Hasu 富有見地的評論和建議。
腳註
注:我最近開始在Deribit Insights 上連載關於Rollup 的系列文章。其中,Part 1 探索了ZK Rollup 和Optimistic Rollup 之間的差異。很多讀者希望我能推荐一篇關於Rollup 的非技術入門文章,因為我的文章需要讀者有一定的背景知識。實際上,確實有一些科普性文章會帶來很大幫助(參見文章1、2、3(中譯本見 1、2、3))。但是,我還沒有看到一篇沒有任何技術術語的針對初學者的全面介紹。我寫這篇文章的目的就是為了填補這一空缺。順便一提,這種聯繫是通過某個叫作“狀態根” 的東西在鏈上維護的(狀態根追踪Rollup 的內部狀態,包括賬戶餘額、事務和代碼等等)。關於更多詳細信息,請閱讀Vitalik 的介紹。事實上,在Optimistic Rollup 中,即使其他網絡參與者都反對,出塊一方也可以(正確!)處理事務。這就是Optimistic Rollup 的1/n 誠實參與者假設(如果你想要深入了解這部分內容,請閱讀這篇文章的“Secuirty Considerations” 一節)。 Optimistic Rollup 和ZK Rollup 對出塊者的職責要求不同。如果你想要了解更多相關內容,請閱讀這篇文章的“Secuirty Considerations” 一節。 Haseeb Qureshi 有一篇關於去中心化的文章很發人深省。 Qureshi 的論點是,去中心化本身不一定就是好的,中心化本身也不一定就是壞的。雖然Qureshi 在這篇文章中沒有討論Rollup,他的論據有很高的相關性。在1803 年的馬伯利訴麥迪遜案中,馬歇爾法院判定最高法院有權推翻它認為違憲的國會立法,有效地賦予了最高法院對所有立法事項的最終審查權。事實上,ZK Rollup 通過密碼學方式防止其出塊者在處理事務時作惡,因為相關事務的零知識證明本身是無效的。