引介
我們在看各種rollup 解決方案的願景和路線圖時就會發現,幾乎所有的rollup 都有一個最終目標,如果把這個目標濃縮成一句話就是:構建一個技術堆棧,將其提供給社區,解決區塊鏈的擴容問題,並最終實現運營和治理這個技術堆棧的去中心化。這就引出了去中心化rollup 這個詞。
那麼具體到底是去中心化什麼? Rollup 系統中各個部分的分工是怎麼樣的?去中心化意味著最大化系統運行參與者嗎?中心化排序器會帶來什麼影響?共享排序器以及L2 本地共識應該如何設計? ZK-Rollup 中獨有的證明者負責什麼職能?一個開放的去中心化證明者網絡是怎麼樣的?我們為什麼需要zk 硬件加速?數據可用性問題有什麼方案可以解決? ….
社區上圍繞去中心化Rollup 的討論層出不窮,因此ECN 策展了一個以“去中心化Rollup”為主題的播客訪談系列,邀請了這個領域裡的優秀創始人、研究員談談他們對去中心化Rollup 的理解。
第一期邀請了來自Arbitrum Foundation 的研究員Patrick McCorry,這一集作為這個系列的概要,主要聊到了Layer2 想要解決的問題、去中心化rollup 的含義、如何理解它的安全屬性以及DAO 治理如何在去中心化rollup 中發生作用。
本期嘉賓:Patrick McCorry, twitter @stonecoldpat0
主持人:Franci, twitter@FrancixDeng
預告
第二期: 共享排序器和L2 共識
AltLayer Network 創始人Yao Qi
Scroll 研究員Toghrul Maharramov
StarkNet Exploration Lead Abdelhamid Bakhta
第三期: 證明者網絡和zk 硬件加速
Scroll 聯合創始人Ye Zhang
Cysic 聯合創始人Leo Fan
第四期: 數據可用性和去中心化存儲
EthStorage 創始人Qi Zhou
收聽
點擊訂閱Podcast,了解更多:
https://ecnpodcast.fireside.fm/decentralized-rollups-series-1
Youtube:
小宇宙:
https://www.xiaoyuzhoufm.com/episode/647ae7c6f81d8df088519ec5
時間戳
– 01:49 Patrick McCorry 個人背景介紹
– 03:26 為什麼會有layer2,它想要解決什麼?
– 11:56 它們使用什麼樣的武器來保證用戶的安全?
– 14:40 Rollup 的安全性與活性是什麼意思
– 17:47 從數據可用性、狀態轉換有效性和抗審查解釋rollup 的安全性
– 19:45 單一誠實實體的作用,誰充當rollup 單一誠實實體?
– 28:47 怎麼看待去中心化rollup?當前最急迫的目標是什麼?
– 37:21 DAO 治理在去中心化rollup 中的重要性
訪談部分
Layer2 想要解決的問題
Franci: 這一集中我們將要探討的是,去中心化rollup 意味著什麼?它為什麼重要?他們要解決的問題是什麼?希望能夠通過這次談話讓讀者和聽眾最終了解什麼才是真正的去中心化rollup,它們應該滿足哪些目標。請本期嘉賓Patrick McCorry 做一下自我介紹。
Patrick: 大家好。我想從經歷來說,我偏向於學術研究的。從2013 年到2016 年,我的博士方向是比特幣和以太坊相關的。然後從2016 年開始到2019 年左右,我是大學裡的研究員,像UCL,倫敦國王學院和UIUC。在這期間,我一直對第二層協議非常感興趣。包括比特幣閃電網絡、plasma,當然也包括rollup。所以在2019 年,我試圖做一個創業公司。之後我離開了大學,我的朋友和我,基本上是兩個人和一條狗。我們試圖做一個專注於layer2 的創業公司。但當時是熊市,之後我們被Infura 收購了。然後我離開了Infura,最近我加入了Arbitrum 基金會。因此,我又回到了全職專注於rollup 研究的工作。在這整個期間,我主要專注於教育,解釋我們為什麼要關心layer2 協議。
Franci: 先從最基本的話題開始討論。一般來說,什麼是L2 系統?當用戶把錢存入L2 系統並在那裡做交易時,這意味著什麼?
Patrick: 談論這個問題,我認為我們需要再退後一步思考,區塊鏈的意義是什麼?我們試圖建立的所有這些系統的意義是什麼?一旦我們解釋了這一點,解釋L2 會更有意義一些。像比特幣或以太坊這樣的區塊鍊網絡背後真正的東西只是一個數據庫。是一個公共數據庫,任何人都可以讀取和寫入。因此,它是一個賬戶餘額的數據庫,當然,在以太坊中,除了賬戶餘額還有各種程序。所以我可以把我的代碼部署到數據庫中。我的程序可以有一些狀態以及我可以在上面進行交易,每個人都可以看到數據庫的更新情況。從根本上說,我們只是在與數據庫打交道。聽起來很無聊。
而區塊鏈本身的意義,它實際上只是一個審計跟踪。所以它存儲了一個交易列表,如果我給你一個區塊鏈的副本,你可以自己重新計算這個數據庫。從根本上說,我們正在構建一個公共數據庫,任何人都可以讀取、獨立計算和寫入。好了,這就是layer1。
不管是比特幣還是以太坊layer1 面臨的問題都是,需要最大限度地提高去中心化。有三種不同的方式來考慮去中心化。一個是運營者:誰在運行網絡,誰在生產區塊,誰在確認交易。對於許多這樣的網絡,我們總是想最大限度地讓任何人可以參與這個過程。這樣就不會有單點故障。另一方面,也需要考慮誰可以驗證數據庫的每一次更新,誰可以驗證操作者是否在做他們的工作,數據庫是否正確,以及是否有其他問題。他們的工作和數據庫在任何時候都是正確和有效的。在這一點上,你會有這樣的糾結。你想最大限度地讓更多人參與驗證網絡,還想最大限度地讓更多人運行網絡。因此,這有點像以前的比特幣區塊大小之爭。更新區塊,你可以處理更多的交易。但隨後會更加困難,因為你需要更高的硬件要求來實時驗證網絡,最後也變成一個網絡運行者了。這便是在layer1 層面上考慮如何去中心化的問題。第三個方面實際上是使其能夠負擔得起。如果讓我們花200 美元在一個網絡上進行交易,那麼它真的是去中心化嗎?顯然它不是。因此,從某種意義上說,這是歷史遺留下來的三難困境問題。
在很長一段時間裡,我們被這個三難問題困住了,因為如果你試圖處理更多的交易,其中一方會在某種程度上受到傷害,要么費用上升、硬件要求上升,或者成為一個運營者更加困難。這是以L1 作為背景討論去中心化。
Franci: 正如你所說的,用戶會考慮到交易的成本。那他們也許會選擇將他們的錢存入一個中心化交易所中。廣義來說,這是一種L2 嗎?
Patrick: 我認為從交易所考慮這個問題是一個很好的方法。中心化交易所它又像一個數據庫。但問題是,它是一個私人數據庫。所以基本上交易所的數據庫,只有它自己能讀取和寫入。而像你和我這樣的用戶,我們不能審計這個數據庫,不能檢查它是否正確。不過在交易所做交易的好處就是非常便宜。而L1 區塊鏈系統目的是盡可能地去中心化,但費用又太高了。
因此,當我們考慮L2 世界時,在L2 世界中,我們並不真的想重新創建L1。我們並不真的希望必須建立一個去中心化的網絡,使參與者的數量最大化。因為我們已經知道,從歷史上看,建立這類系統並使其在吞吐量方面得到很大的擴展是非常困難的。所以我們會想,能不能建立一個看起來像交易所的系統,但仍然保留區塊鏈系統的屬性,其中數據庫是公開的?任何人都可以讀取數據庫,任何人都可以寫入數據庫,任何人都可以站出來保護數據庫。這就是L2 的目標。
當你深入了解把交易所和我們在L2 中建立的東西進行比較時,就會發現歸根結底我們是在對比橋接工程的東西。我所說的橋接是,在以太坊上會有一個智能合約,我把資產鎖定在這個叫做“橋接” 的智能合約中。一旦它被鎖定在橋接上,它就會出現在其他的數據庫中。這個數據庫可能是Coinbase,可能是Arbitrum,可能是Optimism。然後問題是,當我想把我的資金從這個其他的數據庫中取出來,然後把它帶回以太坊,如何獲得授權,以及如何說服橋接解鎖資金?
對於Coinbase 來說,用戶信任Coinbase 進行授權提款,智能合約會檢查並說,哦,Coinbase 授權了,我就可以把資金取出來。但是對於L2 來說,重點是在橋接上,以及如何讓它相信這個鏈外的數據庫是安全的,然後再允許解鎖資金。
因此,回到你最初的問題。我認為Coinbase 或這些交易所,它們基本上是我們想為L2 構建的。但我們想以一種保護用戶的方式來構建它。如果Coinbase 掉線,或者如果它們作惡、被黑客攻擊,用戶始終是安全且有保障的。他們不必相信系統的運營者。它真正關注的是資產如何被鎖定在系統的橋接中,然後從該系統中取出。
如何定義一個安全和去中心化的Rollup
Franci: 所以Rollup 所要做的是在這之間選擇一些折衷方案。它們使用什麼樣的武器來保證用戶的安全?
Patrick: 我認為真正的重點是橋接本身。比如說Arbitrum 的橋接,它是一組部署在以太坊上的智能合約。該橋接當前持有約60 億美元左右。它實際上是以太坊上的一組智能合約持有60 億美元。你需要說服這個橋接,我有權把我的資金從橋接拿出來,再回到以太坊上。
那麼我們有什麼武器來保證用戶的安全?在L2 中有個好處就是,我們可以做一個非常好的假設。我們可以假設已經有一個L1 了,比如比特幣或以太坊,已經存在並且運行中。我們可以假設已經有了這個去中心化的平台,在此基礎上建立。而且把這個平台看作是一個可信任的第三方,信任這個第三方,保證我們將永遠做正確的事情。因此,這就是所有這些系統的基礎。如果你有一個很好的去中心化平台,那麼就可以利用和重新使用它,並在它的基礎上構建。
因此,問題的陳述實際上變成了,現在我們有這個鏈外數據庫,記錄著帳戶餘額和程序狀態。我們能否利用可信的第三方來檢查該數據庫的每一次更新都是正確和有效的?這就是L2 的真正意義所在。舉一個具體的例子,比如在Arbitrum 數據庫中有賬戶餘額、程序狀態,然後Arbitrum 的智能合約是可信的第三方,它保證該橋樑將始終正確運行。運行Arbitrum 網絡的人、排序器、驗證器會定期發送檢查點或證據給橋接,以說服其相信應用於該數據庫的更新是正確和有效的。如果橋接被說服了,它將允許用戶從Arbitrum 提取他們的資金。所以這就是我們的武器。
Franci: 你剛才說Rollup 是構建在以太坊之上的。所以這讓我想起了一個說法,社區總是說Rollup 繼承了以太坊的安全性。那麼這是不是意味著Rollup 的安全性等同於以太坊的?
Patrick: 我想這是一個很好的思考方式。答案的話,是也不是。我認為有不同的方式來思考這個問題。最簡單的方法是安全性和活性。安全性的話,我們只是在數據庫中考慮這個問題,意味著這個數據庫的每一次更新都是有效的。不可能有一個無效的更新,因為如果有一個對數據庫的更新是無效的,那麼你就可以竊取這些資產。這破壞了基本的安全。這就是其中的一個重要部分。
下一個部分是活性,這表示我們能否確保人們能夠對數據庫進行更新?在一個數據庫中,為了保證其活性,我們需要保證,我們能不能總是對其進行更新?或者存在一個誠實的一方?他們可以提議一個更新,而這個更新最終得到處理。這一點很重要,因為如果Coinbase 或Kraken 宕機或者作惡,你的資金就被卡住了。所以這就是它與以太坊略有不同的地方,因為在以太坊,你必須信任PoS 和誠實的大多數,以保持系統的活性。而在rollup 中,我們已經假設已經從以太坊上免費獲得這種活性。我們只需假設有一個誠實的一方在那裡。只要有一個誠實的人願意做這個工作並向數據庫提議更新,那麼這個系統當然就能保持活力。這就是我們從以太坊繼承安全性的意思。
因此,當我們考慮rollup 的安全問題時,我們並沒有真正考慮一個去中心化的網絡。可能會有一個去中心化的rollup 網絡,但這並不重要。 Rollup 的安全性真正取決於其作為橋接的智能合約,它需要從三個方面被說服。
第一個是數據可用性問題:橋接相信世界上的任何人都可以訪問該數據庫,任何人都可以重新計算該數據庫的副本和最新的副本。所以這是你必須說服橋接的第一件事。世界上的任何人都可以訪問我們所關心的數據庫的副本嗎?
第二個屬性,你可以稱之為狀態轉換的完整性問題(state transition integrity problem),而這又回到了安全問題上。橋接需要相信,對數據庫的每一次更新都是正確的和有效的。而這是為了確保沒有人可以竊取你的資金。所以rollup 運營者必須定期地說服橋接,他們對數據庫的每一次更新是正確的。只有這樣,橋接才會釋放應該處理的資金或提款。
最後一個是抗審查,這個最終可以歸結為活性的屬性。如果整個系統宕機,有沒有人來對數據庫提議一個更新,然後由橋接來處理。
總結一下,當我們考慮rollup 的安全問題時,它是真正從以太坊上的智能合約,即橋接合約的角度來考慮的,而橋接要確信對該數據庫的每一次更新都是正確的。這不是真的關於一個去中心化的網絡。我們真正關心的應該是這個誠實的一方,他幫助橋接保護鎖定的資產安全。
Franci: 在你的一篇文章中做了一個比喻,將電影《指環王》裡的甘道夫比喻成了抵抗作惡者的誠實一方。對於這個誠實的一方,你可以進一步解釋一下嗎?
Patrick: 甘道夫是一個很好的例子,因為在這個場景中,他是真的站在一座橋上,說的那句話是:”你不能通過。” 然後他毀掉了橋,對手就掉下去了。他是誠實的一方,挺身而出,保護了隊友。這裡的情況也完全一樣。橋接合約最終負責保護鎖定在這個鏈外系統的資產。誠實的一方是一個助手,甘道夫是這個團隊的助手,以確保戒指能夠被銷毀。而誠實的一方正在幫助橋接合約。因為這些合約部署在以太坊上,不能真正與外部互動。所以它們需要有人來看看鏈外系統,這就是誠實的一方所做的事情。
Franci: 正如你所說,Arbitrum 使用的是一個欺詐證明系統,所以他們已經假設是有一個誠實的一方。那麼,其他類型的Rollup 有關的情況呢? zk-Rollup 使用有效性證明,這類rollup 中的單個誠實一方是誰呢?
Patrick: 正如我們前面提到的,橋接合約負責檢查每一個應用於數據庫的更新。那麼,誠實的一方、中繼或任何人都可以向橋接提交數據庫更新,但同時他們也應該提供證據,證明這個數據庫更新是正確的。而這就是我們所要做的事情。我們只是想讓智能合約相信,對數據庫的更新是有效的、正確的,並且應該被接受和處理的。
有兩種方法可以做到這一點,使用兩種不同類型的證據。一個是Arbitrum 目前使用的欺詐證明:任何人都可以來提交一個潛在的更新給橋接,也可以驗證它。然後大概會有兩個星期的時間,讓任何人都可以來挑戰它。當有人發起挑戰時,橋接將協調這個欺詐證明博弈機制,來回移動,直到找到一個我們沒有達成共識的非常小的狀態轉換。然後橋接將獨立地檢查,找出誰有錯。這就是欺詐證明系統的工作方式。它的缺點是,有一個兩週或一周的挑戰期,因為需要提供足夠的時間讓挑戰者站出來,保護這個系統。
而有效性證明系統,zk-Rollup 使用的機制,比如Starknet、zkSync、Polygon Hermez、Scroll、Taiko 等等。當用戶或運營者提交數據庫更新到橋接上時,他們也提供一個有效性證明。這是一個數學證明,排除所有合理的懷疑,並表明這個數據庫的更新是正確和有效的。這是一個非常強大的屬性,因為任何人都可以向橋接提交一個帶有證明的更新,然後橋接就可以立即相信該更新是正確和有效的並處理它。
這是兩種不同的方法,各有利弊。但同樣,它們只是解決了那一個問題:對數據庫的更新是否正確?僅此而已。還有其他問題需要解決,如審查問題、數據可用性問題等等。
如何去中心化Rollup 以及DAO 治理方案的採用
Franci: Rollup 系統內仍然存在著許多需信任和需許可的各方,你如何看待去中心化rollup 的進程?你認為最重要的目標是什麼,我們最需要緊急去中心化哪一部分?
Patrick: 我們還是回到前面舉的中心化交易所例子來思考這個問題。像中心化交易,它們背後其實有一個排序器。比如我登錄Coinbase 網站提交交易,它的排序器會接受我的交易,並進行排序。然後把這些交易傳遞給服務器端,它們便會被數據庫處理和更新。這就是這些交易所目前的架構,這是非常中心化的。整個過程中,我們不知道這個黑箱裡到底發生了什麼。我們必須完全信任這個實體來保護數十億美元的資金,而且基本上還是依賴於人為的程序進行。這很糟糕。
我們不想依靠人類,因為人類不善於執行規則。因此,在rollup 方面,我們真正想做的是試圖複製這種架構,但同時使其更加透明和可審計。這意味著我們每個人都可以檢查它是否正常運行。我們依靠軟件來執行規則,而不是人類。
那麼基於這個背景,我們需要關心兩個方面。首先是排序器,他們唯一的工作是有一個面向用戶的網站或界面或API,接受用戶的交易並決定執行的順序,然後把已排序的交易遞給下一方。他們可以直接把交易遞交給以太坊上的橋接智能合約,也可以把交椅傳遞給一組執行者。執行者會接受這些交易,按照順序執行,然後創建一個數據庫更新,最後向橋接提議更新。
好了,有了這三個不同的行為者,這時就真正涉及到什麼是去中心化的討論了。正如我已經提到的,對於一個rollup,我們只需要假設有一個誠實的人可以保護這個系統。那麼問題是,誰充當這個誠實的一方?是一個排序者還是一個執行者?
而rollup 中有個好處是,接受用戶交易的排序器是可選的。實際上你不需要一個排序器,這只是為了提供一個很好的用戶體驗,讓你得到即時確認的一個很好的承諾。其原因是,以太坊上的橋接合約才是最終負責敲定交易的排序。也就是說,任何用戶或者任何智能合約都可以把想在系統上或鏈外系統上執行的交易直接發送到橋接上。橋接收到交易後,最終會排序並執行。所以很好的一點是,因為我們可以相信橋接合約總是做正確的事情,我們並不關心排序器的情況。所以,排序器是受信任的,但它們是可選的。它們的存在只是為了提供良好的用戶體驗,而不是真的為了保護系統。它們只是提供交易將按何種順序執行的承諾,但沒有任何保證。
然後便是下一個角色執行者的工作,他們接受並執行交易,然後向橋接提議狀態更新。因此,這需要談到最終確定性的三個層級。只有當交易被排序並按照這個順序執行後,橋接才會採取行動,例如,允許用戶提取他們的資金。
回到最開始的問題,誰充當誠實的一方?根據前面所說的,排序者並非必需要誠實的。而且,也不一定需要一大群排序者,可以是一個、三個、五個。
而負責執行交易的執行者,才是我們需要擔心的去中心化的地方。但這裡的去中心化與我們在layer1 上的思考方式非常不同。我們在rollup 中並不是真的要最大化活躍的參與者的數量。在以太坊協議層上有50 萬個質押者。而在rollup 中並不需要那麼多的人成為執行者,因為我們真正需要的是一個誠實的一方。因此,去中心化實際上是在說,這個系統能否足夠開放允許一個誠實的人站出來並保護這個系統?而無需那麼浪費資源。
那去中心化還有第二部分就是關於如何治理這個網絡。我們如何共同參與決定係統的升級方式?包括對智能合約的軟件升級和鏈下組件的升級。社區如何對此達成共識?這是一個完全不同的去中心化的討論範圍。這更像是一個治理問題。我們如何管理這個系統?這可能是想要最大化參與的地方。
那麼總結一下,關於去中心化有兩個方面。對實時系統的去中心化,只需一個誠實的一方或一個誠實的執行者。這就是我們所追求的基本假設基線。然後我們有關於系統的治理和軟件升級的治理的事情,在這裡就可以使用DAO,這裡是需要人類干預的部分。有時我們需要人類來決定升級,這時需要一個DAO 或某種方式在這方面達成共識,使治理參與者最大化。
Franci: 那麼在治理方面,你認為移除升級密鑰是去中心化治理權的最終目標嗎?
Patrick: 我們先給聽眾提供一下背景。比如當我們需要考慮到某個系統的實時部署時,我們將面臨一個問題:如何執行升級?一是可能是會有一個管理員密鑰,假設有一個管理員在那裡,他們有專屬權限,可以根據他們認為合適的方式升級智能合約。第二種方法更像是一個多簽,相比於信任單個實體,我們可以信任5/9 或者9/12 的多簽。然後第三種方法,對這些rollup 系統(Arbitrum 便使用這個方法) 來說是比較獨特的,這種方法會引入一種鏈上治理組件。能否引入由整個代幣持有人組成的DAO,可能是成千上萬的人,就如何升級系統達成共識?一旦你有一個DAO,就可以就升級做出決定,也可以圍繞不同類型的授權做出決定。例如,也許DAO 最終負責授權對系統進行升級,但他們也可以任命一個安全委員會(9/12 的多簽),這個安全委員會可以在緊急情況時介入以升級和保護系統,並非常迅速地修復漏洞。
整個過程真正酷的地方在於它是透明的,任何人都可以查看這些授權層級,當然還有每一方的責任。所以,這回答你剛剛的問題,我並不認為我們應該移除管理員密鑰本身。我認為重要的是,這個過程是透明的,而管理治理的DAO 或最終應用的治理形式可以讓社區達成共識。因為我認為,當我們把rollup 看作是一個軟件堆棧時,在99.99999% 的時間裡,軟件將自主地運行、執行規則以保護網絡的用戶。大部分時間都是如此。那麼0.000001% 的時間裡,則需要某種形式的人工干預。要么提出升級軟件的建議,要么及時介入並修復漏洞。這實際上與比特幣或以太坊等並無太大區別。
唯一的區別是,這個管理過程和負責的各方是明確的,它是非常透明的。我們清楚地知道誰應該在正確的時間介入,做正確的事情。而在比特幣和以太坊上,他們更多地依賴於粗略的共識。他們並不真的想定義這個過程,因為他們想要抵禦治理攻擊。最近在以太坊上出現了部分PoS 崩潰事件。由於Prysm 客戶端出現一些bug,用於最終確定性的小工具(finality gadget) 出現了故障。於是Prysm 不得不站出來修復他們的錯誤,然後重新部署。因此,即便在這些實時的可分層的網絡中,為了保護系統,我們有時也會遇到需要人為乾預的地方。我認為對於rollup 也仍然需要這樣做。但我們需要規定一些有效的程序,以便我們知道誰是擁有權限的人並讓他們對rollup 系統負責。