現在的 Layer2 夠去中心化嗎?如果答案是否定,那麼我們還要繼續追求去中心化 Rollup 嗎?本文源自 Shivanshu Madan 所著文章 《Rollup Decentralization – Does it matter?》,由 Foresight News 編譯、整理。
(前情提要:比特幣Layer2生態》哪個Rollups擴容方案最有潛力? )
(背景補充:真的需要那麼多Layer2嗎? )
最近 Crypto Twitter 上的很多討論都圍繞 L2 的去中心化。我們正在構建的 Rollup 是否足夠去中心化?它們已經走上了權力下放的道路嗎?這還重要嗎?
我將在這篇文章中探討這些主題。在我深入研究之前,如果你還不瞭解 Rollup 的真正工作原理,建議你快速閱讀一下這篇文章:Rollups for Dummies。
Rollup 的理念其實很簡單:它希望鏈下參與者進行交易,然後可以輕鬆地在鏈上驗證。通過 Rollup,基礎層的「信任」被擴充套件到其區塊鏈之外的活動。作為回報,Rollup 支付少量費用(租金)來使用這種信任。
那麼我們是否需要去中心化 Rollup?
直觀的答案是:肯定需要!這是區塊鏈的精神所在。
但是,我也相信這個問題的答案並不是簡單的是或否。相反,它包含多個方面,必須逐個單獨分析。在接下來的內容中,我將從哲學、技術和經濟三個角度來探討這個問題。
哲學角度
讓我們首先將對話提升一個層次:為什麼我們關心權力下放?
因為我們想要一個促進開放創新的無需許可的未來。我們希望使用者能夠不受任何限制地構建新事物,並且不需要信任任何單個實體。
在區塊鏈短暫的歷史中,我們已經有很多匿名開發者構建了令人驚歎的東西。事實上,比特幣本身是由一個匿名實體建立的,它可能很快就會成為世界上大多數人使用的全球支付貨幣。這就是無需許可的創新的力量!
區塊鏈讓我們能夠與沒有任何共同點的人合作,而且我們知道他們沒有辦法打破這種信任關係。
——Preston Evans
比特幣和以太坊等去信任網路的去中心化基礎使我們能夠構建這樣的未來。很明顯,任何與這些區塊鏈有信任關係的鏈,比如 Rollup,也應該是去中心化的!
事實上,它引出了一個有趣且重要的問題:
如果 Rollup 不是去中心化的,這是否意味著以太坊就不是去中心化的?
看待這個問題的一種稍微樂觀的方式是,在一個無需許可的世界中,應該允許 Rollup 構建它們想要的任何東西,包括(但不限於)許可鏈,並且該 Rollup 的使用者仍然能夠利用基礎層的安全性。只要基礎層是去中心化的,並且 Rollup 已經「完整實現」(我們將在技術部分更多地討論「完整實現」),即使是許可鏈也應該可以安全使用。
但實際情況是,今天的大多數 Rollup 尚未達到完整實現的階段,而且它們沒有為使用者提供所需的安全性和免信任級別。
那麼,Rollup 的正確實現方式是什麼樣的呢?讓我們來看看:
技術角度
要真正理解 Rollup 的去中心化和安全性問題,我們需要從第一性原理來看待它。沒有多少人能比 Sreeram Kannan 更好地解釋區塊鏈的首要原理。
區塊鏈是一種分散式帳本,網路中的不同節點遵循預定的協議規則以獲得對帳本狀態的共識。根據這些節點如何看待網路,它們可以有不同的規則,用於確認自己的帳本網路的正確狀態。
特別是在 Rollup 中,全節點與輕客戶端具有不同的確認規則。在傳統的智慧合約 Rollup(SCR)中,智慧合約(驗證橋)有自己的確認規則。如果沒有不良事件,這些確認規則最終會在所謂的「一致性區域」中重合。顧名思義,在一致性區域中,所有參與者對網路都有相同的看法(以及帳本中相同的歷史記錄)。
如果所有確認規則都是安全的,就不會發生不良事件。正如 Sreeram 在上面的帖子中分享的那樣,5 個屬性主要定義了這些確認規則的安全性。
- 帳本增長 – Rollup 鏈應該不斷增長(活性)
- 抗審查性 – 所有使用者都應該能夠將任何交易包含到基礎層
- 抗重組 – 交易一旦完成就不會被撤回
- 資料可用性 – 交易資料應該在某處發布
- 有效性 – 交易和狀態轉換應該有效
前 2 個屬性定義了系統的「活性」條件,而後 3 個屬性定義了「安全」條件。
讓我們從不同 Rollup 參與者的角度來審視這些問題,看看在不去中心化的情況下,哪些問題可以緩解。
全節點:
如果執行全節點,則可以訪問已發布的資料並可以直接對其進行驗證。然後,你可以使用該資料自行執行交易,並確定交易的有效性以及這些交易後 Rollup 的最終狀態。
因此剩下的安全條件是活性和抗重組性。對於抗重組性,全節點依賴於基礎鏈的驗證器及其使用的共識協議,而對於活性,全節點依賴於排序器和 Rollup 實現。
輕客戶端:
大多數使用者使用輕客戶端獲取區塊鏈資料來與區塊鏈互動。輕節點有多種型別:
- 狀態驗證者 – 驗證狀態轉換的有效性
- 資料可用性驗證者 – 驗證資料可用性
- 共識驗證者 – 驗證基礎層的共識證明
- 完整驗證者 – 驗證以上所有內容
如果執行完整驗證者輕客戶端,可以通過資料可用性取樣來驗證資料是否可用,可以通過有效性證明或欺詐證明來驗證狀態轉換的有效性,還可以驗證狀態是否遵循基礎層的共識(在以太坊上,可以通過遵循同步委員會來完成)。
那麼剩下的安全條件就是活性,輕客戶端依賴於排序器和 Rollup 實現。
內建智慧合約(驗證橋):
在傳統 SCR 中,智慧合約的「確認規則」是強制執行所有 5 個安全屬性:
- 通過排序器替換協議實現帳本增長
- 通過強制包容來抵制審查
- 在先前狀態的基礎上構建抗重組
- 通在基礎層提交 DA 實現資料可用性
- 通過有效性 / 欺詐證明來驗證有效性
SCR 全節點依靠智慧合約來強制執行活性屬性。它們從基礎層獲得抗重組性。
輕節點依靠智慧合約來增強活性屬性並吸收來自基礎層的 DA 和抗重組性。它們可以自己或通過智慧合約驗證有效性證明。
SCR 的共識是遵循智慧合約定義的規範鏈。
主權 Rollup 怎麼樣?
主權 Rollup 沒有智慧合約(驗證橋)來強制執行有效性或活性條件。相反,它們將證明「下滾」(roll down)到下遊的 Rollup 節點。這些節點仍然依靠來自基礎層的資料可用性和抗重組性。
就像在 SCR 中一樣,在主權 Rollup 中,節點需要某種機制來強制執行活性屬性。為了定義規範鏈,它們選擇了獨立的機制,例如廣播 p2p 證明。
這一切與去中心化有什麼關係?
無論是智慧合約 Rollup 還是主權 Rollup,活性屬性都來自 Rollup 的正確實現。正如我們在上面所看到的,Rollup 的正確實現必須包括兩個重要的組成部分:
- 強制包含機制;
- 排序器替換協議。
強制包含機制有助於增強抗審查性。這種機制允許使用者將他們的交易直接「強制包含」在基礎層中。然後,Rollup 上的任何使用者都可以將他們的資金強制退出回到基礎層。因此,即使只有一個中心化的排序器節點,只要有成熟的強制包含機制,它就無法審查使用者。
但這就足夠了嗎?
即使使用者可以自由退出,這可能意味著如果大多數使用者都跑回 L1,L2 就沒有太多動力繼續運營。此外,強制包含機制通常需要很長的等待時間,並且對於普通使用者來說執行起來可能相當昂貴。這種機制提供的抗審查性並不完全實用(或即時),我們可以稱之為「弱審查」。
那麼我們就有了最終的活性屬性 —— 帳本增長。
如果中心化排序作惡,它可以通過簡單地停止區塊生產來阻止 Rollup 鏈的增長。如果發生這種情況,使用者無法採取任何措施使 Rollup 再次「生效」。為瞭解決這個問題,我們需要一個排序器替換協議。
排序器替換協議的想法是,如果排序器以惡意方式執行,則 Rollup 能夠通過治理啟動一個新的排序器。實現這一目標的方法之一是用去中心化排序器協議替換中心化排序器節點。如果排序器是去中心化的並且不壟斷 Rollup 的區塊構建,那麼它就幾乎不可能阻止 Rollup 鏈。
因此,儘管使用者資金在通過強制包含機制實現的 Rollup 中始終是安全的,但建立強大的排序器替換協議有助於保持 Rollup 的活性並提供實用、即時的抗審查性。
這就是全部?
不完全是。從技術角度來看,還有一個方面需要考慮:
如果智慧合約本身可以由 Rollup 的中央委員會升級怎麼辦?假設 Rollup 目前已正確實施,但明天委員會達成共識,我們不再需要智慧合約,而是將 Rollup 狀態的證明廣播到 p2p 網路。
如果作為 Rollup 使用者,你不同意此類升級,則你應該能夠在實施升級之前退出 Rollup(儘管這不是一個好的使用者體驗,並且可能對企業不利)。這可以通過「滯後的治理更新」來實現,就像一個「通知期」,之後將實施升級。不同意更新的使用者可以在通知期內退出。
去中心化的極端是擁有完全不可變的智慧合約。這些合約不由任何多重簽名錢包或其他委員會管理,並且一旦部署就永遠無法升級。
當然,這也有其自身的問題。如果程式碼中存在任何錯誤,或者某些重大事件需要更新智慧合約,那麼 Rollup 唯一的選擇就是分叉到新的智慧合約,而使用者資金滯留在舊合約中。
不幸的是,Rollup 的當前狀態遠未達到我們上面討論的完整實現。大多數 Rollup 仍處於「探索」階段,正在努力正確實施。
根據 L2BEAT 的說法,Fuel v1 和 DeGate 是僅有的兩個已經成熟、可以實現所有活性和安全條件的 Rollup。
經濟角度
最後,讓我們從使用者和 Rollup 運營商的角度來看看 Rollup 經濟學:
- 使用者體驗:使用者應該獲得便宜的價格,並且交易不必等待太長時間;
- Rollup 利潤:排序器和代幣持有者應該有利可圖。
當使用者獲得快速且廉價的交易服務時,使用者體驗就會得到優化。
交易最終確定的速度取決於基礎層最終確定的速度。每當 L1 上的資料最終確定時,交易就可以被視為最終交易。然而,執行全節點的使用者也可以通過簡單地執行交易並確定最終狀態來獲得即時最終結果。
但對於每個人來說都執行全節點並不實際。因此,中心化排序器很有用,因為它可以向用戶提供「軟確認」,表明他們的交易已包含在區塊中並將最終完成。這對於大多數用例來說已經足夠了。然而,它依賴於可以採取不利行動的中心化機構。
雖然一些排序器替代協議解決方案放棄了此屬性(因為對使用者不利),但其他解決方案(例如外部 PoS 共識方案 Espresso)可以提供類似的預確認保證,而無需承擔中心化排序器的風險。
使用者成本又如何呢?
Rollup 交易的顯式成本通常為:
L2 Gas 成本 = L1 Gas 成本 + 排序器費用。
理性的中心化排序器總是希望最大化自己的利潤,即使這意味著將更高的成本轉嫁給使用者。然而,值得注意的是,這也不一定可以通過去中心化排序器機制來解決。即使是去中心化排序器中的 PoS 節點也希望最大化自己的利潤。事實上,這會產生錯配問題,即 Rollup 可能不想將利潤交給外部排序器。
Rollup 利潤:除了排序器費用外,Rollup 還可以通過從使用者交易中提取 MEV 來賺取利潤。此 MEV 通常很難歸因,因為很難找到排序器是否在交易包中包含一些自己的搶先交易。如果 Rollup 被外部 PoS 共識取代,他們就會將此 MEV 交給外部運營商。
值得注意的是,Rollup 將收入交給外部機制的這兩個問題都可以通過 Rollup 和外部機制之間的「交易協議」來解決。
然而,正如 Jon Charbonneau 在模組化峰會期間的演講以及隨後的文章中所解釋的那樣,更好的想法可能是讓 Rollup 治理將排序委託給一組經過驗證的節點。這些節點可以戰略性地選擇在地理上分散,並且治理可以簡單地將不良行為者踢出。
這可能是一種一石二鳥的解決方案,因為它允許 Rollup 將利潤保留在內部,同時還減輕了中心化排序器的不利影響。
但與此相反的是,在排序器輪換有限的情況下,排序器可以具有短視行為,這可能導致壟斷定價 / 價格欺詐,進而損害 Rollup 使用者的利益。
無論哪種方式,為了使 Rollup 對使用者來說經濟高效,一些排序器替換協議是必要的。
結論
無論 Rollup 採取什麼路徑,至關重要的是,它的目標應該是一個完整的實現,具有成熟的排序器替換協議、強制包含和滯後治理更新機制。如果有強制包含和滯後更新機制,無論排序器是否集中心化,使用者資金都會是安全的。
然而,強大的排序器替換協議可以提高活性保證,並可能提高 Rollup 使用者的經濟效益。