V神:什麼樣的layer 3才有意義?

語言: CN / TW / HK

特別感謝Georgios Konstantopoulos、Karl Floersch和Starkware團隊的反饋和審查。

在二層擴充套件討論中經常出現的一個話題是“layer 3”的概念。如果我們可以建立一個第二層協議,錨定到第一層的安全,並在上面增加可擴充套件性,那麼我們肯定可以通過建立一個第三層協議,錨定到第二層的安全,並在上面增加更多的可擴充套件性來實現更大的擴充套件?

這個想法的一個簡單版本是:如果你有一個能給你帶來二次擴充套件的方案,你能不能把這個方案堆在自己的上面,得到指數級的擴充套件?像這樣的想法包括我2015年的可擴充套件性論文,Plasma論文中的多層擴充套件想法,以及更多的想法。不幸的是,這種簡單的第3層概念很少有那麼容易實現的。設計中總有一些東西是不可堆疊的,只能給你帶來一次可擴充套件性的提升——對資料可用性的限制,依賴L1頻寬進行緊急提款,或許多其他問題。

圍繞第三層的新想法,如Starkware提出的框架,更加複雜:他們不只是把同樣的東西堆疊在自己的上面,他們給第二層和第三層分配了不同的目的。這種方法的某種形式很可能是一個好主意(如果它以正確的方式進行)。這篇文章將討論三層架構中可能和不可能有意義的事情的一些細節。

為什麼你不能只是通過在rollups上堆疊rollups來不斷擴充套件?

Rollups是一種擴充套件技術,它結合了不同的技術來解決執行區塊鏈的兩個主要擴充套件瓶頸:計算和資料。計算是通過欺詐證明或SNARKs來解決的,它依賴於極少數的行為者來處理和驗證每個區塊,要求其他人只進行極少量的計算來檢查證明過程是否正確。這些方案,特別是SNARKs,幾乎可以無限制地擴充套件;你真的可以不斷地製造“許多SNARKs的SNARK”,將更多的計算擴充套件到一個證明。

資料是不同的。Rollups使用一系列壓縮技巧來減少交易需要在鏈上儲存的資料量:一個簡單的貨幣轉移從~100位元組減少到~16位元組,一個相容EVM的鏈上的ERC20轉移從~180到~23位元組,一個保護隱私的ZK-SNARK交易可以從~600位元組壓縮到~80位元組。在所有情況下,大約8倍的壓縮。但是,rollups仍然需要在鏈上提供資料,並保證使用者能夠訪問和驗證,以便使用者能夠獨立地計算rollup的狀態,並在現有的證明者離線時作為證明者加入。資料可以被壓縮一次,但不能被再次壓縮(如果可以),那麼一般都有辦法把第二個壓縮器的邏輯放到第一個壓縮器中,並通過壓縮一次獲得同樣的好處。因此,“在rollups之上的rollups ”實際上並不能在可擴充套件性方面提供巨大的收益–儘管正如我們將在下面看到的,這種模式可以達到其他目的。

那麼,什麼是第3層的“理智”版本?

好吧,讓我們看看 Starkware 在他們關於 layer 3s 的帖子中所提倡的。 Starkware 由非常聰明的密碼學家組成,他們實際上是理智的,所以如果他們提倡第 3 層,他們的版本將比“如果 rollups 壓縮資料 8 倍,那麼顯然 rollups 之上的 rollups 將壓縮資料 64 倍”要複雜得多。 .

下面是Starkware的帖子中的一個圖:

幾句引言:

圖1中描述了這樣一個生態系統的例子。其L3包括:

-具有Validium資料可用性的StarkNet,例如,供對價格極其敏感的應用程式普遍使用。
-為提高應用效能而定製的特定應用StarkNet系統,例如,通過採用指定的儲存結構或資料可用性壓縮。
-StarkEx系統(如那些為dYdX、Sorare、Immutable和DeversiFi服務的系統)具有Validium或Rollup資料可用性,立即為StarkNet帶來經過戰鬥考驗的可擴充套件性優勢。
-隱私StarkNet例項(在這個例子中也作為L4),允許保護隱私的交易,而不包括在公共StarkNets中。

我們可以把這篇文章壓縮成對 “L3 “的三種看法:

  1. L2是用於擴充套件,L3是用於定製功能,例如隱私。在這個願景中,沒有試圖提供 “可擴充套件性的平方”;相反,有一層堆疊幫助應用程式擴充套件,然後為不同用例的定製功能需求提供單獨的層。
  2. L2是用於通用的擴充套件,L3是用於定製的擴充套件。定製的擴充套件可能有不同的形式:使用EVM以外的東西進行計算的專門應用,其資料壓縮圍繞特定應用的資料格式進行優化的rollups(包括將“資料”與“證明”分開,並完全用每個區塊的單一SNARK代替證明),等等。
  3. L2用於無信任的擴充套件(rollups),L3用於弱信任的擴充套件(validiums)。驗證體是使用SNARKs來驗證計算的系統,但將資料可用性留給可信的第三方或委員會。在我看來,Validiums被高度低估了:特別是,許多“企業區塊鏈”應用實際上很可能由一個執行validium驗證器並定期向鏈上提交雜湊值的集中式伺服器提供最佳服務。Validiums的安全等級比rollups低,但可以大大降低成本。

在我看來,這三種設想從根本上說都是合理的。專門的資料壓縮需要自己的平臺的想法可能是最弱的主張——設計一個帶有通用基礎層壓縮方案的第二層很容易,使用者可以通過特定應用的子壓縮器自動擴充套件,但除此之外,這些用例都是合理的。但這仍然留下了一個大問題:三層結構是實現這些目標的正確方式嗎?驗證碼、隱私系統和定製環境,錨定在第二層而不是僅僅錨定在第一層的意義何在?這個問題的答案原來是相當複雜的。

實際上哪一個更好?

在第二層的子樹內,存款和取款是否變得更便宜、更容易?

與兩層模型相比,三層模型的一個可能的論點是:三層模型允許整個子生態系統存在於一個單一的rollup中,這使得該生態系統內的跨域操作可以非常便宜地發生,而不需要通過昂貴的第一層。

但事實證明,你甚至可以在兩個承諾於同一個第1層的第2層(甚至第3層)之間廉價地進行存款和取款!這就是所謂的“代幣”。關鍵的認識是,代幣和其他資產不一定要在根鏈上發行。也就是說,你可以在Arbitrum上有一個ERC20代幣,在Optimism上建立一個它的包裝,並在兩者之間來回移動,而不需要任何L1交易!

讓我們來看看這樣一個系統是如何運作的。有兩個智慧合約:Arbitrum上的基礎合約和Optimism上的封裝代幣合約。要從Arbitrum轉移到Optimism,你將把你的代幣傳送到基礎合約,這將產生一個收據。一旦Arbitrum最終完成,你可以將該收據的Merkle證明,根植於L1狀態,並將其傳送到Optimism上的包裝代幣合約,該合約將驗證它並向你發出一個包裝代幣。要把代幣移回來,你可以以相反的方式做同樣的事情。

即使證明Arbitrum上的存款所需的Merkle路徑穿過L1狀態,Optimism只需要讀取L1狀態的根來處理存款(不需要L1事務)。請注意,由於rollups上的資料是最稀缺的資源,這種方案的實際實施將使用SNARK或KZG證明,而不是直接使用Merkle證明,以節省空間。

與根植於L1的代幣相比,這樣的方案有一個關鍵的弱點,至少在optimistic rollups中:存款也需要等待欺詐證明視窗。如果一個代幣紮根在L1,從Arbitrum或Optimism撤回到L1需要一個星期的延遲,但存款是即時的。然而,在這個方案中,存款和提款都需要一個星期的延遲。也就是說,並不清楚optimistic rollups上的三層架構是否更好:要確保發生在本身執行在防欺詐遊戲上的系統內的防欺詐遊戲是安全的,有很多技術上的複雜性。

幸運的是,這些問題在ZK rollups上都不會成為問題。由於安全原因,ZK rollups不需要一個星期的等待視窗,但由於其他兩個原因,它們仍然需要一個較短的視窗(在第一代技術中可能是12小時)。首先,特別是更復雜的通用ZK-EVM rollups需要更長的時間來覆蓋證明一個區塊的非平行計算時間。其次,還有一個經濟上的考慮,即需要很少提交證明,以儘量減少與證明交易相關的固定成本。下一代ZK-EVM技術,包括專門的硬體,將解決第一個問題,而更好的架構的批量驗證可以解決第二個問題。而我們接下來要討論的正是優化和批量提交證明的問題。

Rollups和validiums有一個確認時間與固定成本的權衡。第3層可以幫助解決這個問題。但是還有什麼可以呢?

每個交易的rollups成本很低:它只是16-60位元組的資料,取決於應用。但是,每次提交一批交易到鏈上時,rollups也必須支付高昂的固定成本:optimistic的rollups每批21000個L1 gas,ZK的rollups超過40萬個gas(如果你想要只使用STARK的量子安全的東西,則需要數百萬個gas)。

當然,rollups可以簡單地選擇等待,直到有價值1000萬個gas的L2交易來提交一個批次,但這將使他們有很長的批次間隔,迫使使用者等待更長的時間,直到他們得到一個高安全性的確認。因此,他們有一個權衡:長的批次間隔和最佳成本,或者短的批次間隔和大大增加的成本。

為了給我們一些具體的數字,讓我們考慮一個ZK rollups,它的每批成本為600,000 gas,處理完全優化的ERC20傳輸(23位元組),每筆交易成本為368 gas。假設這個rollup處於採用的早期到中期階段,並且平均為5個TPS。我們可以計算出每筆交易與批次間隔的gas:

如果我們進入一個有許多定製的驗證碼和特定應用環境的世界,那麼許多驗證碼的速度將遠遠低於5 TPS。因此,確認時間和成本之間的權衡開始成為一個非常大的問題。事實上,“第3層”正規化確實解決了這個問題!一個ZK rollup內的ZK rollup,即使是天真地實施,其固定成本也只有~8,000個第一層gas(500位元組的證明)。這樣一來,上表就變成了:

問題基本上解決了。那麼第3層好嗎?也許吧。但值得注意的是,有一種不同的方法來解決這個問題,其靈感來自ERC 4337聚合驗證。

這將是一個開放的協議:任何ZK-rollup都可以加入,任何批處理者都可以從任何相容的ZK-rollup彙總證明,並從彙總者那裡獲得交易費用的補償。批量處理合約將驗證一次證明,然後將一個訊息傳遞給每個rollup,並附上該rollup的三要素;三要素來自批量處理合約的事實將證明過渡是有效的。

如果優化得好,這個方案中每個rollup的成本可能接近8000。5000用於寫入新的更新的狀態,1280用於新舊root,以及額外的1720用於雜亂的資料雜耍。因此,它將給我們帶來同樣的節省。Starkware實際上已經有了類似的東西,叫做SHARP,儘管它(還)不是一個無許可權的開放協議。

對這種方式的一個反應可能是:但這實際上不就是另一個第三層方案嗎?與其說是基礎層<-rollup <-validium,不如說是基礎層<-批量機制<-rollup 或 validium。從一些哲學的架構角度來看,這可能是真的。但有一個重要的區別:中間層不是一個複雜的完整的EVM系統,而是一個簡化的、高度專業化的物件,因此它更有可能是安全的,它更有可能在不需要另一個專門的令牌的情況下被建立起來,它更有可能被治理最小化,不隨時間變化。

結論:什麼是“層”?

一個三層的擴充套件架構,包括將相同的擴充套件方案堆疊在自己的上面,通常不會有好的效果。在rollups之上的rollups,即兩層rollups使用相同的技術,當然不會有什麼效果。然而,第二層和第三層有不同目的的三層架構,可以發揮作用。在rollups之上的Validiums確實有意義,即使它們不一定是長期的最佳方式。

然而,一旦我們開始進入什麼樣的架構有意義的細節,我們就會進入一個哲學問題:什麼是“層”,什麼不是?基礎層<-批處理機制<-rollup或validium模式,與基礎層<-rollup <-rollup或validium模式的工作相同。但就其工作方式而言,證明聚合層看起來更像ERC-4337,而不是像rollup。通常情況下,我們不把ERC-4337稱為“第二層”。同樣,我們不把龍捲風現金稱為“第2層” – 因此,如果我們要保持一致,我們不會把生活在第2層之上的以隱私為重點的子系統稱為第3層。因此,有一個尚未解決的語義學爭論,即什麼應該首先被稱為“層”。

在這個問題上,有許多可能的流派。我個人傾向於將“第2層”這一術語限制在具有以下特性的事物上:

  • 它們的目的是為了提高可擴充套件性
  • 它們遵循“區塊鏈中的區塊鏈”模式:它們有自己的交易處理機制和自己的內部狀態
  • 它們繼承了以太坊鏈的全部安全性

因此,optimistic rollups和ZK rollups是第2層,但validiums、證明聚合方案、ERC 4337、鏈上隱私系統和Solidity是其他東西。將其中一些稱為第3層可能是有意義的,但可能不是所有的;無論如何,在多rollups生態系統的架構遠未定型,大部分的討論只是發生在理論上的時候,確定定義似乎為時過早。

也就是說,語言的爭論不如哪些結構實際上最有意義這一技術問題重要。顯然,某種“層”可以發揮重要作用,為隱私等非擴充套件性需求服務,而且顯然有一個重要的證明聚合功能,需要以某種方式填補,最好是通過一個開放協議。但同時,有很好的技術理由使連接面向用戶的環境和第1層的中間層儘可能簡單;“glue layer”是一個EVM rollup,在許多情況下可能不是正確的方法。我猜想,隨著第二層擴充套件生態系統的成熟,更復雜(和更簡單)的結構,如本帖所描述的,將開始發揮更大的作用。

編輯於 2022-09-19 20:59