原文標題:《科普 | Rollups 是中心化的?》
作者:Benjamin Simon
前言
讓我們從一個比喻開始。
想象一下我們回到了中學的數學課上,正如中學數學老師往往冷酷的那樣,我們的老師遞給我們一張表單,上面列著一百道長除法題,每一道都有非常大的數字。我們被告知,我們的任務是要計算出盡可能多的題目。但棘手的是,我們必須使用同一張紙來寫出答案和進行每一個計算步驟,僅僅幾分鐘后,我們就不得不正視這項任務的荒謬之處:要將這么多完整的解題方案擠進這一張紙上簡直是不可能的。
這個噩夢般的故事和 Rollups 什么關系?
在這個比喻中,這張紙就好比一個以太坊區塊,而這些數學問題就是智能合約交易。以太坊目前極度擁擠。有太多的交易需要被打包進每個區塊中,更糟糕的是,這些交易中的大多數都是計算密集型的 (也即需要進行大量計算),比如閃電貸 (flash loans) 或通過聚合器進行的交易,過去 (DeFi 之前的) 那種簡單的轉賬和支付的時代已經一去不復返。
這就是問題的關鍵,就像該比喻中的數學老師要求我們把每一行辛苦的長除法都填到一張紙上一樣,以太坊也必須處理和記錄每一筆交易的每一行計算,
直到 Rollups 的到來,
Rollups 將計算轉移至鏈下,而在鏈上只存儲最少的交易數據。從這個基本意義上講,Rollups 就像是以太坊計算的「草稿紙」。Rollups 處理所有凌亂的數據處理,通過對交易進行批量處理 (“卷起”) 的方式來實現單個以太坊區塊內包含的智能合約交易量呈指數增加,
這個比喻有助于描述 Rollups 要解決的問題 (也即”由于計算超負荷造成的網路擁塞”),甚至為我們提供了一個關于 Rollup 解決方案的模糊概念 (也即”將計算轉移至鏈下”),但至于 Rollups 是如何工作的,它們是什么樣子的,以及為什么它們讓我們人如此興奮,我們還需要深入研究一下,
什么是 Rollup?
本質上來說,每個 Rollup 都是一條單獨的區塊鏈,但進行了一些修改,與以太坊一樣,每個 Rollup 協議也有一個執行智能合約代碼的“虛擬機”,Rollup 的虛擬機獨立于以太坊自己的虛擬機 EVM 而運行,但它是由某個以太坊智能合約管理,這種連接性使得 Rollups 能夠與以太坊進行通信,Rollup 執行交易并處理數據,以太坊接收并存儲結果。
在技術層面上,Rollup 鏈和其他更傳統的區塊鏈之間的關鍵區別在于產生新區塊的方式,
通常,區塊鏈是一個由多方 (即”礦工” 或 “驗證者”,取決于區塊鏈的共識類型) 組成的分布式網路維護,這些各方通過共識來共同生產區塊。簡單地說,各方投票決定如何處理一組交易,或者換句話說,如何構建下一個區塊。獲得多數支持的區塊將被永久寫入區塊鏈中,
相比之下,Rollup 鏈并不通過多數決定規則來運行,相反,監控 Rollup 狀態的某個單一方可以向以太坊 (L1基礎層) 發送所謂的“斷言”,說明某個批次的交易應該如何被處理。重要的是,以太坊將獨立地接受或拒絕這一斷言,不管該 Rollup 的大多數其他方是否支持這一斷言,在實踐中,這通常意味著 Rollup 鏈的某個單一方會被指定處理交易和生產區塊的任務,
等等…Rollups 是中心化的?
Rollup 區塊生產的這一中心化屬性正是 Rollups 能夠如此高效地處理交易的部分原因,但這也提出了一個明顯且令人擔憂的問題:沒有多數人的共識,Rollups 如何確保區塊生產是正確的?如果區塊生產者碰巧是惡意的,會發生什么?
這種中心化讓習慣于基于共識的區塊鏈的加密用戶感到困惑,事實上,如果故事到此結束,我們可能會 (錯誤地) 得出這樣的結論:Rollups 只是“由單一方復制的資料庫”,正如 Avalanche 聯合創始人 Kevin Seqniqi 最近在推文中 (誤解的) 那樣,
實際上,這個關于 Rollup 中心化的指控與其說是錯誤的,不如說是邏輯上的誤解,通常情況下,沒有健全共識機制的中心化區塊鏈確實容易受到腐敗和敵意接管的影響;然而,在 Rollups 的獨特情況下,這種缺乏去中心化實際上對于它們的安全性或者可靠性并不是一個問題。為了理解為什么會出現這種情況,我們需要更深入地了解,
數據可用性的重要性
回顧一下我們一開始的那個不幸的數學作業。用于計算的「草稿紙」允許我們在主要表單上僅需寫下題目和答案即可;Rollups 就好比是「草稿紙」,它們“將智能合約計算轉移至鏈下,而在鏈上只存儲了最少的交易數據。”
實際上,這最后一部分,也即 “在鏈上存儲交易數據“,對于 Rollups 的運作方式至關重要。在一個 Rollup 鏈中,只有計算 (數據處理) 在鏈下進行,而 Rollup 處理的每一筆交易仍會將其輸入數據 (也即”calldata“) 存儲在以太坊上。
在鏈上保存交易數據的重要性是什么?在數學作業的比喻中,我們最終交給老師的那張紙包括了長除法題目和它們的答案,這使得老師可以檢查我們的作業,即使我們沒有在上面寫出單獨的計算步驟,類似地,鏈上數據的持久可用性意味著,Rollup上面的任何計算都可以被以太坊基礎層重復計算,
簡而言之,Rollup 的鏈上數據可用性允許一個內置的審查過程。在將交易永久記入賬本之前,以太坊可以對 Rollup 鏈上處理的交易的完整性進行“再次檢查”(double check) ——幾乎就像美國最高法院的司法審查權力一樣。
局限性是一種優勢
因此,Rollups 的關鍵特性是它們的局限性,Rollups 僅將交易推送到 (以太坊) 基礎層;它們不能強制基礎層接受,因為如果有必要,以太坊可以推翻任何 Rollup 交易,由于它們受到這個審查過程的制約,因此 Rollup 交易被認為是缺乏真正的確定性(finality)。
考慮到 Rollups 的這種局限性,我們可以回到上文未解決的有關 Rollups 中心化的指控,Rollup 的某個單一區塊生產者可能會試圖惡意地處理交易,但如果這樣做,以太坊 (基礎層) 將在審查過程完成后直接拒絕該批次的交易,且該區塊生產者將受到懲罰。
當前,“審查過程”的運作方式取決于 Rollup 是 Optimistic Rollup 還是 ZK Rollup,但對于這兩者來說,審查過程的效率都要比以太坊自己處理交易的效率高得多。
總而言之,Rollup 系統基于“制衡”,這確保了以太坊始終保持作為主權鏈:以太坊自己的共識是真理的最終仲裁者,
然而側鏈就不一樣了。由于缺乏相同的審查過程,側鏈通過自己的、完全獨立的共識機制來處理交易,側鏈交易在某種程度上是“最終的”(finality),而 Rollup 交易不是 (直到它們在以太坊上得到確認)。因此,側鏈需要更大的信任假設,因為它們不能從以太坊自己的去中心化安全性中獲益。事實上,我認為側鏈更類似于 EVM 兼容的 Layer 1,而不是 Rollup,
總結
概括一下:Rollups 將計算移出鏈下,以釋放更多的鏈上空間。鏈上的數據可用性是至關重要的,因為這允許以太坊對 Rollups 交易的可靠性進行再次檢查,這種審查過程反過來又充當了對 Rollup 區塊塊生產的“檢查”,從而消除了對共識機制的需要。
Rollups 最終讓以太坊既能得到蛋糕又能吃掉它:它們在不破壞網路去中心化安全性的情況下釋放出更多的鏈上容量,至少在我看來,這是我們所希望的最優雅的擴容性解決方案。
感謝 t11s 和 Hasu 的評論和建議,