時間:2021-12-29|瀏覽:372
想象一下我們回到了中學的數(shù)學課上。正如中學數(shù)學老師往往冷酷的那樣,我們的老師遞給我們一張表單,上面列著一百道長除法題,每一道都有非常大的數(shù)字。我們被告知,我們的任務是要計算出盡可能多的題目。但棘手的是,我們必須使用同一張紙來寫出答案和進行每一個計算步驟。僅僅幾分鐘后,我們就不得不正視這項任務的荒謬之處:要將這么多完整的解題方案擠進這一張紙上簡直是不可能的。
這個噩夢般的故事和 Rollups 什么關(guān)系?
在這個比喻中,這張紙就好比一個以太坊區(qū)塊,而這些數(shù)學問題就是智能合約交易。以太坊目前極度擁擠。有太多的交易需要被打包進每個區(qū)塊中。更糟糕的是,這些交易中的大多數(shù)都是計算密集型的 (也即需要進行大量計算),比如閃電貸 (flash loans) 或通過聚合器進行的交易。過去 (DeFi 之前的) 那種簡單的轉(zhuǎn)賬和支付的時代已經(jīng)一去不復返。
這就是問題的關(guān)鍵。就像該比喻中的數(shù)學老師要求我們把每一行辛苦的長除法都填到一張紙上一樣,以太坊也必須處理和記錄每一筆交易的每一行計算。
直到 Rollups 的到來。
Rollups 將計算轉(zhuǎn)移至鏈下,而在鏈上只存儲最少的交易數(shù)據(jù)。從這個基本意義上講,Rollups 就像是以太坊計算的「草稿紙」。Rollups 處理所有凌亂的數(shù)據(jù)處理,通過對交易進行批量處理 ("卷起") 的方式來實現(xiàn)單個以太坊區(qū)塊內(nèi)包含的智能合約交易量呈指數(shù)增加。
這個比喻有助于描述 Rollups 要解決的問題 (也即"由于計算超負荷造成的網(wǎng)絡擁塞"),甚至為我們提供了一個關(guān)于 Rollup 解決方案的模糊概念 (也即"將計算轉(zhuǎn)移至鏈下")。但至于 Rollups 是如何工作的,它們是什么樣子的,以及為什么它們讓我們?nèi)巳绱伺d奮,我們還需要深入研究一下。
什么是 Rollup?
本質(zhì)上來說,每個 Rollup 都是一條單獨的區(qū)塊鏈,但進行了一些修改。與以太坊一樣,每個 Rollup 協(xié)議也有一個執(zhí)行智能合約代碼的“虛擬機”。Rollup 的虛擬機獨立于以太坊自己的虛擬機 EVM 而運行,但它是由某個以太坊智能合約管理。這種連接性使得 Rollups 能夠與以太坊進行通信。Rollup 執(zhí)行交易并處理數(shù)據(jù),以太坊接收并存儲結(jié)果。
在技術(shù)層面上,Rollup 鏈和其他更傳統(tǒng)的區(qū)塊鏈之間的關(guān)鍵區(qū)別在于產(chǎn)生新區(qū)塊的方式。
通常,區(qū)塊鏈是一個由多方 (即"礦工" 或 "驗證者",取決于區(qū)塊鏈的共識類型) 組成的分布式網(wǎng)絡維護。這些各方通過共識來共同生產(chǎn)區(qū)塊。簡單地說,各方投票決定如何處理一組交易,或者換句話說,如何構(gòu)建下一個區(qū)塊。獲得多數(shù)支持的區(qū)塊將被永久寫入?yún)^(qū)塊鏈中。
相比之下,Rollup 鏈并不通過多數(shù)決定規(guī)則來運行。相反,監(jiān)控 Rollup 狀態(tài)的某個單一方可以向以太坊 (L1基礎層) 發(fā)送所謂的“斷言”,說明某個批次的交易應該如何被處理。重要的是,以太坊將獨立地接受或拒絕這一斷言,不管該 Rollup 的大多數(shù)其他方是否支持這一斷言。在實踐中,這通常意味著 Rollup 鏈的某個單一方會被指定處理交易和生產(chǎn)區(qū)塊的任務。
等等...Rollups 是中心化的?
Rollup 區(qū)塊生產(chǎn)的這一中心化屬性正是 Rollups 能夠如此高效地處理交易的部分原因。但這也提出了一個明顯且令人擔憂的問題:沒有多數(shù)人的共識,Rollups 如何確保區(qū)塊生產(chǎn)是正確的?如果區(qū)塊生產(chǎn)者碰巧是惡意的,會發(fā)生什么?
這種中心化讓習慣于基于共識的區(qū)塊鏈的加密用戶感到困惑。事實上,如果故事到此結(jié)束,我們可能會 (錯誤地) 得出這樣的結(jié)論:Rollups 只是“由單一方復制的數(shù)據(jù)庫”,正如 Avalanche 聯(lián)合創(chuàng)始人 Kevin Seqniqi 最近在推文中 (誤解的) 那樣。
實際上,這個關(guān)于 Rollup 中心化的指控與其說是錯誤的,不如說是邏輯上的誤解。通常情況下,沒有健全共識機制的中心化區(qū)塊鏈確實容易受到腐敗和敵意接管的影響;然而,在 Rollups 的獨特情況下,這種缺乏去中心化實際上對于它們的安全性或者可靠性并不是一個問題。為了理解為什么會出現(xiàn)這種情況,我們需要更深入地了解。
數(shù)據(jù)可用性的重要性
回顧一下我們一開始的那個不幸的數(shù)學作業(yè)。用于計算的「草稿紙」允許我們在主要表單上僅需寫下題目和答案即可;Rollups 就好比是「草稿紙」,它們“將智能合約計算轉(zhuǎn)移至鏈下,而在鏈上只存儲了最少的交易數(shù)據(jù)?!?br>實際上,這最后一部分,也即 "在鏈上存儲交易數(shù)據(jù)",對于 Rollups 的運作方式至關(guān)重要。在一個 Rollup 鏈中,只有計算 (數(shù)據(jù)處理) 在鏈下進行,而 Rollup 處理的每一筆交易仍會將其輸入數(shù)據(jù) (也即"calldata") 存儲在以太坊上。
在鏈上保存交易數(shù)據(jù)的重要性是什么?在數(shù)學作業(yè)的比喻中,我們最終交給老師的那張紙包括了長除法題目和它們的答案,這使得老師可以檢查我們的作業(yè),即使我們沒有在上面寫出單獨的計算步驟。類似地,鏈上數(shù)據(jù)的持久可用性意味著,Rollup上面的任何計算都可以被以太坊基礎層重復計算。