一文回顧以太坊近期及中期擴容路線圖

買賣虛擬貨幣

來源 | 以太坊愛好者

作者 | Vitalik

譯者注:今年以來,rollup 作為一種非常有潛力的擴容方案得到了廣泛的關注,多個使用 rollup 技術的二層專案在主網或測試網上線,Vitalik 本人則是多次號召社羣關注並使用 rollup。本月初,Vitalik 更是在以太坊魔術師論壇上寫了一篇文章詳細講述,如果將 rollup 作為以太坊未來發展中心,以太坊的路線圖應該做怎樣的調整?

需要注意的是,以太坊社羣採用的是一種市集型別的開發模式——在這種模式中,不存在一個集權式的中心,取而代之的是透明開放的討論。也就是說 Vitalik 本人發了這個帖子之後,並不意味著以太坊的路線圖馬上就做相應變更了。市集模式大大增強了以太坊的包容性和演化過程中湧現出群體智慧的可能性,因此當 rollup 在區塊鏈世界的演化過程中逐漸展現出了其潛力之時,Vitalik 發起的討論勢必會使 rollup 在以太坊演化的過程中扮演更重要的角色。

為了更好地說明自己文章中觀點的背景,Vitalik 在多個場合進行了更詳細的補充說明,我們將 Vitalik 在社交媒體中的相關發言放在本文的開頭,充當背景介紹和摘要;Vitalik 在以太坊魔術師論壇上的帖子則作為正文放在中間;最後,我們還節選了 Vitalik 在月初的 ETHGlobal 活動上的問答,供讀者參考。

分片不是被取消,只是被疊加

當前的 ETH2.0 路線圖包含 3 個階段:

Phase 0:PoS(該階段正在實施並將很快實現)

Phase 1:資料分片,但不包括計算分片(也就是說,分片鏈將會 “包含” 容量達 2 MB/秒 的資料,但資料都是啞資料物件,不是交易)

Phase 2:交易分片(分片化的交易處理功能)

以太坊當前的 TPS 大約為 15-45,使用 Rollup 可以提升吞吐量 100 倍。分片則可以提升吞吐量 64 倍。將這兩項技術實現的吞吐量疊加,也就是說在分片基礎上疊加實現 rollup,可以實現 6400 倍的吞吐量提升。

但目前的路線圖會衍生出一個有趣的意外:實現分片應用的願景要到 Phase 2 才會實現,但分片 rollup 在 Phase 1就可以實現了,因為 rollup 只需要用到主鏈上儲存資料的功能,不需要主鏈實現計算功能。所以在 ETH 2.0 完整實現前,以太坊就具備了擴容 6400 倍的條件。

因此,並不是用 rollup 取代分片,而是在分片上疊加 rollup。也就是說,在分片實現之前,rollup 已經可以實現 100 倍吞吐量的提升,因此儘快使用 rollup!

以 Rollup 為中心的以太坊路線圖

上週,Optimism 團隊宣佈啟動 Optimism 的第一階段測試網(中文譯本),同時宣佈了邁向主網上線的路線圖。Optimism 並不是唯一正在實現 optimisitic rollup 的團隊,Fuel 的 rollup 也在向測試網邁進,Arbitrum 也在做一個 rollup。Loopring、zkSync 實現的基於 zk-rollup 的 rollup 方案已經上線,基於 Starkware 技術的 Deversifi 也已經上線,已經有使用者在主網上使用這些產品了。OMG 的主網測試版上線則表明 plasma 也在向前發展。與此同時,eth2 上的 Gas 價格正在攀升到新的高點,以至於一些非金融類的 dapp 被迫關閉,還有一些 dapp 只能在測試網上執行、無緣主網。

系統的可擴充套件性本是 Eth2 的題中之義,而且 Eth2 的早期階段也正在快速推進。但對於使用基礎層的應用來說,可擴充套件性要到 Eth2 的最後一個主要階段(Phase 2)才會出現,這還需要幾年時間。略具諷刺意味的是,在 Eth2 的 Phase 1,Eth2 就可以作為 rollup 的資料可用性層使用了,這遠早於 Eth2 可以被 “傳統的” 一層應用(譯者注:即當前執行於 eth2 上的應用)所用的時間。彙總這些因素,會得出一個特別的結論:以太坊生態系統很可能會全身心地投入到 rollup(外加一些 plasma 和狀態通道方案)中,作為近期和中期實現可擴充套件性的戰略。

若以此結論作為前提,則關於以太坊核心開發和生態開發的優先事項,我們將得出一些結論,暗示了在某種意義上與當前的路線圖不同的方向。具體來說,我們可以得出哪些結論?

短期路線圖:圍繞 rollup 推進 ETh2

關於短期內的方向,一個主要的結論是,以太坊基礎層的可擴充套件性將主要聚焦在擴充套件每個區塊可以容納的資料量,而不是鏈上計算或 IO 操作的效率。因為對於 rollup 來說,其可擴充套件性的唯一決定性因素是鏈上能容納多少資料。任何超過當前資料容量(約為 60 kB/秒)的擴容辦法,都將有助於進一步提高 rollup 的可擴充套件性。

在此視角下,以下基礎層的改進方案仍具有意義(可幫助提高 rollup 的可擴充套件性):

EIP 2929, 確保以太坊主鏈在當前的 Gas 設定下可以抵禦 DoS 攻擊

EIP 1559, EIP 1559 既可以實現 ETH 的燃燒,也可以使一筆交易更容易被下一個區塊打包(rollup 系統需要依賴交易在主鏈上得到確認)

新的橢圓曲線預編譯,從而可以更全面地挖掘 ZK rollup 的潛在效能

十六進位制 -> 二進位制樹變更,以及其它推動更好支援無狀態客戶端的變更(不論如何使用主鏈,無狀態客戶端都是很有價值的)

賬戶抽象的重要性稍弱,因為不管 L1 是否支援賬戶抽象,都可以在 L2 上實現。其他類似的 “巧妙的基礎層特性” 也會變得相對不那麼重要。

Eth2客戶端可以被 optimistic rollup 客戶端再利用。optimistic rollup 仍然需要有全節點,如果 rollup 內部的狀態轉換規則與以太坊類似,只是做了一些修改(這是 Optimism 的目標),那麼現有的程式碼可以被再利用,用來執行 rollup 的全節點。將共識引擎與狀態轉換引擎分離出來的工作已經在 eth2+Eth2 合併的背景下進行,該工作也可以幫助實現上述目標。需要特別注意的是,像 TurboGeth 這樣的專案仍然是非常重要的,只是從中獲益最大的將是高吞吐量的 rollup 客戶端,而不再是基礎層的 eth2 客戶端。

短期路線圖:圍繞 Rollup 調整相應的基礎設施

目前,使用者的賬戶在 L1 上,ENS 域名在 L1 上,應用也都執行在 L1 上。一切都需要改變。我們需要適應這樣一個世界:使用者的主要賬戶、餘額、資產等完全在 L2 裡面。由此會造成這些情形:

ENS 需要支援在 L2 上註冊和轉移域名;關於如何實現這一點的一個可能的提案參見這裡。

L2 層協議應內建到錢包中,而不是像 dapp 那樣放到網頁上。目前,L2整合到 dapp/ 類 dapp 中(例如 Gitcoin 對於 zksync 的整合)需要使用者完全信任 dapp,這與現狀相比安全性大大降低。理想的情況是讓 L2 成為錢包(metamask、status等)本身的一部分,這樣我們就可以維持目前的信任模型。這種支援應該是標準化的,這樣一個支援 zksync 支付的應用就會立即支援 zksync-inide-Metamask、zksync-inide-Status 等。

我們需要在跨 L2 轉賬上做更多的工作,使資產在不同 L2 之間的轉移時,具有儘可能即時和無縫銜接的使用者體驗。

更明確地將 Yul 或類似的東西標準化為中間編譯語言。以太坊的底層 EVM 和 Optimism 推出的 OVM 使用的編譯目標略有不同,但都可以由 Solidity 編譯。為了支援一個具有不同編譯目標的生態系統,但同時避免 Solidity 的單一文化並接納多種語言,更明確地標準化像 Yul 這樣的東西作為中間語言可能是有意義的,從而使所有高階語言都可以(透過編譯至中間語言而)被編譯至 EVM 或 OVM。我們也可以考慮一種更明確的對於形式化驗證友好的中間語言,它可以處理像變數這樣的概念,並確保基本的不變數,從而使形式化驗證更加容易。

Rollup 中心主義的經濟可持續性優勢

一個不可迴避的事實是:一個密碼貨幣專案必須在財務上實現可持續發展。在2020年,這意味著一個專案需要數百萬甚至上千萬美元的資金。其中一部分可以由常見的公益資助實體(如 Gitcoin Grants 或以太坊基金會)提供,但其規模實在不足以達到上述資金量級。二層專案可以透過推出自己的代幣的方式籌得資金 —— 當然,前提是該代幣有真正的經濟價值支援(即預期該 L2 可捕獲未來的手續費用)。

以 rollup 為中心的路線圖的第二個重要好處是,它為 L2 協議留出了開放的空間,這些 L2 協議或可直接收集費用/ MEV,或可間接透過發行代幣,從而獲得開發所需的資金。以太坊基礎層有一個重要的需求是可信中立性,這使得協議內的公益資助變得困難(想象一下對誰應該獲得多少錢達成一致的難度),但 L2 自己設立公益資助機制(也可以在 Gitcoin Grants 上進行)的爭議要小得多。因此,留出這個空間對於整個以太坊長期的經濟可持續性來說是一個很好的戰略舉措。

除了資金問題之外,最有創造力的研究人員和開發人員往往希望在自己的地盤上創造影響力,而不是在一個沒有什麼影響力的位置上與其他人爭論以太坊協議的未來。此外,已經有很多現有的專案在嘗試建立各種平臺。以 rollup 為中心的路線圖為所有這些專案提供了一個明確的機會,使他們既能成為 Ethereum 生態系統的一部分,又仍然能保持高度的經濟和技術自主權。

長期路線圖

除了上述這些短期路線圖層面的考量,以 rollup 為中心的路線圖還可能意味著重新設想 Eth2 的長期未來:一個所有人都可以處理的具有高安全性的執行分片,再加上一個具有可擴充套件性的資料可用性層。

要想理解為什麼可以這麼說,可以思考一下下列資料:

以太坊目前的 TPS 約為 15。

如果所有人都轉移到 rollup,TPS 將達到 3000。

一旦 Eth2 的 Phase 1 實現,rollup 轉移到 Eth2 分片鏈進行資料儲存,理論 TPS 最大值可達 100000。

最終,Eth2 的 Phase 2 將會實現,在分片基礎上實現了計算,此時 TPS 約為 1000-5000 TPS。

在我看來,當 Eth2 Phase 2 最終實現的時候,已經不會有人關心了。屆時無論我們喜歡與否,大家都已經適應了一個以 rollup 為中心的世界。到那時,繼續沿著之前這條路走下去,比試圖讓大家遷移到 Eth2 完成後的基礎鏈上要容易得多,因為遷移到 Eth2 完成後的基礎鏈上沒有明顯的好處,可擴充套件性則會降低20-100倍。

這意味著 Eth2 到 “Phase 1.5 就完成了”,屆時基礎層重新收縮,只需專注於做好幾件事 —— 即共識和資料可用性。

對於 Eth2 來說這可能是更合適的目標,因為對資料可用性分片比對 EVM 計算分片要安全得多。想驗證分片化 EVM 計算在不誠實者佔多數假設下的證明(dishonest-majority-proof),就需要欺詐證明,這需要一個嚴格且具有潛在風險的兩個 epoch 的同步假設,但資料可用性取樣(如果使用零知識證明或多項式承諾完成)在非同步假設下是安全的。

這將有助於把以太坊與其他分片式二層鏈的安全模型區分開,這些二層鏈都是在執行層面進行了分片。Eth2 作為基礎層的功能只需要剛剛好就行(中文譯本),不需要很強大。

從長遠看,Eth2 應該做什麼?

錯開不同分片上的區塊時間,這樣在任何時候總會有一些分片會在幾百毫秒內出塊。這樣就可以讓跨多個分片執行的 rollup 具有超低的延遲,而不使鏈本身面臨超低延遲所帶來的風險。

改進並鞏固其共識演算法

調整EVM,使其對欺詐證明的驗證更加友好(例如,這可能意味著某種“框架”特性,以防止程式碼脫離沙盒,或允許 SLOAD/SSTORE 指令被重對映至賬戶儲存以外的東西作為其資料來源)。

與 ZK-SNARK 有關的一切

更妥協的提案

如果你不認可上述 “一路” 走到 “Phase 1.5 即完成” 的發展方向,那麼有一條自然的折中之路:使 Eth2 具有少量的執行分片(例如 4-8個)和更多的資料分片。我們的目標是,執行分片的數量仍然足夠少,在特殊情況下,普通計算機能夠完全驗證所有的執行分片,但基礎層空間仍然會比現在路線圖中所設定的大得多。

基礎層空間不能太小,因為使用者和應用仍然需要使用基礎層進行一系列操作,例如在不同的 rollup 之間移動,提交欺詐證明,在 ZK rollup 中提交 ZK 證明,釋出根 ERC20 代幣合約(當然,多數使用者大多數時間都會使用 rollup,但基礎層合約必須儲存在基礎層的某個地方...)等等。而如果這些操作所涉及的每筆交易的成本是140美元,使用者體驗仍然是非常差的。因此,如果有必要,設定 4-8 個執行分片而不是 1 個,可以大大緩解這一問題。而且一臺計算機仍然可以驗證所有的分片。如今,以太坊上每 13 秒就能挖出一個區塊,而驗證一個區塊平均耗時約 200-500 毫秒,所以短時間內驗證 8 個執行緒是完全可行的。可以想象客戶端會有這樣的對策:"只要網路延遲很低,或委員會人數達到滿員數量的 80%,依靠欺詐證明和委員會,可以在特殊情況下直接驗證所有分片"。

在 ETHGLOBAL 上針對該文的問答

Q:L2 致力於解決擴容問題,在社羣已經被研究和討論多年,但之前的嘗試似乎不太成功,你對 rollup 有多大信心?這次擴容嘗試和之前相比有什麼不同?

A:我在部落格文章中對這個問題有更詳細的討論(中文譯本)。我的主要觀點是 rollup 與狀態通道及 plasma 都有所不同。對於擴容來說,要擴容兩樣東西,擴容計算和擴容資料可用性。我的觀點是,狀態通道和 plasma 都不解決資料可用性問題,他們用了一類特殊的與應用場景相關的技巧試圖解決這個問題。與前兩者不同的是,rollup並不把所有東西都放在鏈下,而是將計算放在鏈下,但是將一定量(比如10,16,50 bytes)的資料儲存在鏈上,這是 rollup 的擴容效能受到一些限制的原因。也就是說 Rollup 更加妥協一些,為了支援任意狀態機犧牲了一些擴充套件性。對於 plasma 來說,一開始我們認為可以解決在 plasma 中執行任意狀態機的問題,但最終我們意識到這是做不到的。但對於 rollup 來說,有一些數學和技術層面的證據可以證明 rollup 可以實現這些功能 —— 任意狀態機,也即是某種圖靈完備性。在實踐中,rollup 已經成功執行一段時間了,例如已經有了 3 個使用 rollup 的 DEX,你也可以在 gitcoin 捐款時使用 rollup,sythentix 等專案則在支援 evm 的測試網中進行測試。可以說,在狀態通道和plasma中沒有得到解決的問題,我覺得在 rollup 中已經得到逐步解決了。

Q:當前 L1 具有可組合性/互操作性,你覺得未來仍然會具備嗎?換一個角度,你是覺得未來是會是多 rollup 共存,還是會形成贏家通吃?

A:這是一個好問題。我覺得會有一些 rollup 在最後佔據主導地位。我覺得 rollup 同時具備了網路效應和反網路效應。主要的反網路效應是:TPS 越大,跑一個 rollup 全節點越難,這在一定程度上會降低其可用性。另一方面,目前 rollup 有幾個不同的技術路線,我是希望這些技術路線和對應的技術特性在短中期都得到測試的。從長期來看,也許某一個 rollup 會贏家通吃,但我還不能確定 :)

Q:你在文章中描繪了一個可能的願景,你覺得以太坊基礎層什麼時候會穩定下來?還是說會一直在迭代改進?

A:在我提出的路線圖中,我希望以太坊 2.0 在 1.5 階段達到基本穩定的狀態,這也是我在文章中提及 “1.5階段即完成” 的原因。但是在這之後還是會有持續的技術迭代,這些技術迭代主要包括增加更多零知識證明從而提高安全性和效率,將共識機制從 FFG 改為 CBC,以及將密碼學原語切換為後量子密碼學原語。這些改進基本不會影響以太坊的經濟系統和基本的安全特性。我絕對期待持續在很長一段時間裡技術會持續迭代最佳化,當然這些最佳化更多接近於運維層面。

(完)

原文連結:

https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698

https://twitter.com/VitalikButerin/status/1312905882330521600

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;