深入解讀 Layer3

作者: Yihan Xu ,@Foresight Ventures

封面: Photo by Shubham Dhage on Unsplash

一、從 Layer1 到 Layer3

Layer1 是底層區塊鏈。Ethereum、Bitcoin、Solana 等公鏈都是 Layer1 區塊鏈,它們是區塊鍊網絡的基礎,各種 Layer2 都搭建在這些公鏈之上。

Layer2 指以太坊擴容方案。各條 Layer2 鏈都是單獨的區塊鏈,在保證安全性的基礎上提升交易速度和 TPS。比如 Zksync、Starkware、Arbitrum、Optimism 都是不同的 Layer2 解決方案。

圖片

那什麼是 Layer3?

簡單來說 Layer3 希望在 Layer2 的基礎上完成更加定制化的設計,解決目前 Layer2 無法實現/實現起來比較困難的功能(包括定制化擴容、privacy 等),從而進一步降低成本,提升效率

但 Layer3 的想法還在非常早期階段,現在下定論顯然有失偏頗。Layer3 的最終形態需要基於開發者探索、實戰檢驗和實際需求。

現在有很多大佬已經提出了相關的設計思路,通過 StarkWare 提出的多層網絡結構圖(Layer3 的其中一種構建思路),我會做進一步的分析和總結,幫助大家理清思路。

二、StarkWare 的多層網絡

以太坊多層網絡的實踐設想最早由 StarkWare 團隊在文章”Fractal Scaling: From L2 to L3″ 中提出。在這種設計中,現在的 Layer2 是一種 general purpose 的擴容,在此之上,Layer3 做定制化的擴容。下面我會對圖中提到的方案逐個分析(從左到右)。

1.StarkEx Volition(rollup+validium)—> 低成本擴容

在 Layer2 的方案中我們已經熟悉了 Validiums,一種通過 SNARK 算法對計算結果進行驗證,數據不上傳 Layer1 而是依賴於 validator 託管的擴容方案。由於數據存在鏈下而非直接發佈到 Layer1,Validium 降低了 gas 成本並提供了更好的 privacy(數據並不向 public 公開)。但是從去中心化和安全性的角度看,Data Availability 依賴於第三方委員會,因此 Validiums 使用並不廣泛。

StarkEx Volition 為 Dapp 提供了一種混合模式,可以選擇將數據放到鏈上以保證安全性(StarkEx Rollup)或者放到鏈下以獲取更低的成本(StarkEx Validium)。現階段 StarkEx 仍然是 Layer2 的擴容方案,但是在 StarkWare 後續的架構設計中,StarkEx 完全可以作為一種打開 Layer3 大門的通道,在 StarkNet 通用擴容的基礎上進一步為特定的 dapp 降低成本。

2.App-specific StarkNet —> 定制化擴容

我們知道 Layer2 的電路設計是為了服務所有 Dapp,這意味著工程師設計電路的首要考慮是兼容性。因此現在的電路設計一定程度上犧牲了效率,並沒有針對特定的 Dapps 進行優化。這對於強交互性的 Dapp 來說是一種的瓶頸,比如注重遊戲體驗和實時玩家交互的 web3 遊戲。App-specific StarkNet 可以為幫助對性能要求較高的 Dapp 定制化地進行設計以達到更高的 performance。

我認為在這個場景下 Layer2 解決用戶編程和可組合性的問題,而 Layer3 定制化地針對項目方提供更高的性能。比如一個 Dapp 不需要和其他 Dapp 共享電路資源,並獲得定制化的電路設計,或是由 Layer3 提供更高效的存儲結構會數據壓縮服務。

3.StarkNet(Validiums)—> 低成本擴容

類似於 StarkEx Volition,在 Layer3 中將 Validiums 作為一種低成本的擴容方案,讓一些對價格敏感的 Dapp 獲得更低的成本。

4.Privacy StarkNet —> 定制化功能

對隱私功能的實現,某種程度上也可以看作 app-specific design。雖然 ZK-rollup 對 privacy 友好,但出於去中心化和安全性的考慮,用戶的交易數據仍需要在壓縮後通過 calldata 發佈到 Layer1 作為 history log,讓所有用戶都可以成為 prover 進行驗證。因此以擴容為目的的 rollup 並不能實現 privacy。Layer3 的能很方便的解決了這一痛點,對於一些強隱私需求的用戶,定制化地在 rollup 甚至 rollup of rollup 的基礎上實現隱私功能。

三、Again,什麼是 Layer3?

看完以上分析,Layer3 應該已經不那麼抽象了,下面總結一下這種 Layer3 的設計到底想解決什麼問題,幫助大家進一步建立對 Layer3 認知。

1.Vitalik 的設想

  1. L2 is for scaling, L3 is for customized functionality.
  2. L2 is for general-purpose scaling, L3 is for customized scaling
  3. L2 is for trustless scaling (rollups), L3 is for weakly-trusted scaling (validiums)

2. 進一步解讀

  1. Layer2 作為 general purpose 的擴容解決方案,那麼對於 Layer3 的設計可以放下單純的擴容,去定制化地做一些 Layer2 無法輕易實現的功能,比如 privacy;
  2. Layer2 中 ZK-rollup 設計考慮了通用和兼容性,為整個生態提供一種通用的擴容解決方案。因此在 ZK(E)VM 的設計上或多或少犧牲了 ZK-friendly。那麼 Layer3 可以針對不同應用做進一步擴容。舉個例子,在 ZK 場景下,一些應用可以通過更加定制化的電路設計來獲得更好的 performance;
  3. Layer2 中 ZK-rollup 在擴容的同時需要保證 Data Availability,在 cost 上做了妥協。因此,Layer3 可以用於低成本擴容,為不同開發者提供更多擴容方案,比如 Validium 就是一個很好的選擇。

第二點和第三點中 Layer3 都是在做進一步擴容,有什麼區別?

  • 我認為兩者是截然不同的,並且解決了現在 Layer2 不同的痛點。第二點中的定制化擴容旨在提升性能,而第三點中提到的則是一種更加 general purpose 的低成本擴容方案。

3. 小結

以上都可能是之後 Layer3 發展方向,並且也不會限定在某一種形態。一些 Dapp 會需要提供隱私功能的 Layer3,一些 dapp 會受益於低成本的擴容,一些 dapp 會因為定制化的 Layer3 帶來 performance 的提升。總之,Layer3 會在 Layer2 的基礎上進一步提升性能,創造更多可能性。

四、是否需要 Layer3?

看到這你可能會產生兩個疑問:

  1. 既然 Layer3 這麼牛逼,是不是可以繼續往上繼續疊加 Layer4、Layer5、Layer6…以達到更好的擴容效果?
  2. 以上提到的 Layer3 的用途都可以通過二層網絡結構實現。看下面👇這張 Vitalik 給出的架構對比圖,把上述 Layer3 的結構直接架在 Layer1 上只作 Layer2 也沒什麼問題。Validium 還是能進行低成本擴容,定制化的電路設計也能為特定的項目方提供更好的 performance,打造一條隱私鏈也合情合理。那麼為什麼要多此一舉地在 Layer2 之上再做一層拓展?

👇從擴容和必要性的角度逐一分析👇

1. 真的可以無限擴容嗎?

當然不行。

– 計算層

從 ZK-rollup 的角度出發 (相比 optimistic rollup 更貼近這個疑問),在計算層理論上可以將 Layer3 的 ZK-rollup 生成的 ZKP 發送給 Layer2 的 ZK-rollup,然後在 Layer2 繼續用 ZKP 證明 Layer3 的一堆 ZKPs,並生髮送給 Layer1 做驗證。

– 數據層

需要注意的是,除了計算,我們需要考慮數據存儲。Rollup 鏈依然需要將交易數據發送到 Layer1(ZK-rollup 可以對數據進行壓縮),來保證數據可用性,讓用戶可以通過數據驗證 proof 的真實性。計算時可以用一個 ZKP 去證明一堆 ZKP,但是數據沒法壓縮後繼續壓縮,就算可以,也並不需要一個 Layer3 來完成,只需要將 Layer2 壓縮後的數據用這種方式進一步壓縮即可。因此,從 Data Availability 的角度出發,繼續疊 Layer 並不會在明顯提升 scalability。

可以參考 Vitalik 提到的:“There's always something in the design that's just not stackable, and can only give you a scalability boost once – limits to data availability, reliance on L1 bandwidth for emergency withdrawals, or many other issues.”

2. 二層還是多層網絡?

我認為二層網絡是當前的最佳解決方案,但未來屬於多層網絡。

分析這個問題,我們需要明確 Layer3 的價值是什麼。

五、Layer3 的價值

4 個字概括:降本提效。

1. 深入分析成本

我認為這種 Layer3 的架構帶來最大的想像力在於對成本的優化,或許隨著技術飛速迭代,之後會有更多 Layer3 殺手級的設計,但成本永遠是我們需要直視的話題,同樣也是當初設計 Layer2 的原因。

從降低 gas fee 的角度出發,現在 Layer2 的 rollup 不可能以理論速度在極短的時間(比如趕在以太坊出塊時間 12-14s 內)將 rollup 鏈上的交易打包成 batch 並(生成 proof)提交到 Layer1 驗證。原因有以下兩點組成:

  1. 原提交 batch 到 Layer1 會產生不低的成本,根據 Vitalik 的說法每個 batch 的成本> 400,000 gas;
  2. Rollup 鏈上單位時間內每個 batch 能打包的 transaction 數量有限。

—> 簡單說就是,提交 batch 存在基礎成本,因此每個 batch 打包的交易越多,每筆交易分攤的 gas fee 越低。

因此 rollup 的設計需要權衡打包交易的時間間隔(用戶體驗)和每筆交易分攤的費用(用戶成本)。如果過快地打包交易並提交 Layer1,會增加分攤到每筆交易上的 gas fee;過慢則會增加 confirmation time,影響用戶體驗。

Layer3 可能帶來哪些優化?

如果我們考慮加入 Layer3,比如在 ZK-rollup 的基礎上再加一層 ZK-rollup 會極大地降低這提交 batch 到 Layer1 的基礎成本(一個 ZKP 證明一堆 ZKP,減少數據 size)。根據 Vitalik 的估算,提交一個 batch proof 到 Layer1 的成本約為 8000 gas。

接下來用簡單的數學計算幫助大家更加直觀的理解成本問題;

已知:

  • 分攤到每筆交易的 gas = transaction cost + batch cost / transaction amount
  • 以上等式中,transaction amount = TPS * confirmation time

假設在理想情況下:

  • batch cost = 400,000 gas(實際情況會更高)
  • transaction cost = 368 gas(Fully optimized ERC20 transfers)
  • TPS = 5(Layer2 均值)

– 當前 Layer2 的 gas 情況

  • confirmation time = 12s(以太坊出塊時間)分攤到每筆交易的 gas = 368 + 400000 /(5 * 12)=  ~7035
  • confirmation time = 1h 分攤到每筆交易的 gas = 368 + 400000 /(5 * 3600)= ~390

在當前二層網絡的設計中,分攤到每筆交易的 gas 對打包 batch 的間隔時間(也就是用戶感知到的 confirmation time)非常敏感,且將 confirmation time 控制在一個較短的時間窗內帶來的成本非常高。

– 加入 Layer3 的 gas 情況

  • confirmation time = 12s(以太坊出塊時間)分攤到每筆交易的 gas = 368 + 8000 /(5 * 12)=  ~501
  • confirmation time = 1h 分攤到每筆交易的 gas = 368 + 8000 /(5 * 3600)= ~368

2. 關於成本的思考

  • 在 Layer2 的基礎上 Layer3 有明顯提升,將 confirmation time 從 12s 延長到 1h(每個 batch 打包更多交易)並沒有帶來顯著的 gas 收益。同時 Layer3 的設計幾乎可以在一個較短的 confirmation time 內(12s)達到當前 Layer2 花費一小時 confirmation 的 gas 成本。在保證用戶體驗的前提下極大降低了成本
  • 另外,我認為容易被忽視的一點是,由於 batch cost 的降低導致 transaction amount 的增加同樣不會為每筆交易帶來太多 gas 成本的收益。因此,Layer3 從這個角度看也更適合去做app-specific、定制化的設計(不依賴於大量的交易來抵消高昂的 batch cost)。

3. 淺談一下效率

和成本一樣,我認為做多層網絡結構的原因一定躲不開提升效率,拋開成本和效率談結構設計有多 fashion 沒有任何意義。

我們知道 wrapped token 的實現降低了 Layer2 之間的互操作成本,但是效率上仍然有待提升,我們簡單算一下為什麼:

– Optimistic-rollup —> 14 天!

由於 fraud proof time,一個 rollup 鏈存(~7 天)➕另一個 rollup 鏈取(~7 天),~14 天的驗證期仍然無法避免;圖片

– ZK-rollup —> ~12 小時

避免了 fraud proof time 的漫長等待,相比 Optimistic-rollup 更快,但是有以下兩個問題:

  • 目前 Layer2 的 ZK(E)VM 需要做到 one Virtual Machine fits all Dapps,因此設計上妥協了一些 ZK-unfriendly 的設計,導致 proof 在生成時候需要額外的時間處理無法並行計算的指令;
  • 在分析成本時提到過,出於對打包交易的時間間隔和每筆交易分攤的費用的權衡,當前的 ZK-rollup 無法在短時間打包交易到 Layer1(否則 gas 太貴用戶不干)。

– 加入 Layer3 之後

  • Layer3 的思路就是定制化擴容、app-specific scaling,因此,ZK-rollup 生成 proof 這部分額外花費的時間會得到最大程度的優化;
  • Layer3 的設計可以將跨鏈的交易成本降低基礎上保證效率。相比於二層網絡結構,無需經過 Layer1,which is  expensive  and  congested

4. 重新審視 Layer3

綜上所述,這種 Layer3 的設計就好像是在 Layer1 安全性的基礎上,以 Layer2 為核心搭建出了無數子生態。

我認為一定程度上,多層網絡架構進一步將 Layer1 的功能隔離,讓 Layer1 專注於保障交易安全性,將計算等功能轉移到每個子生態系統中。

六、另一種 Layer3 思路

Vitalik 提出了一種新的架構設計思路,在我看來也可以算作一種多層網絡架構的設計(你也可以把它看成一種二層網絡結構),非常值得分析和思考:

Layer1: base layer

Layer2: batch mechanism

Layer3: rollup、validium

1. 對這種架構的解讀

在現在的 Layer1 和 Layer2 之間插了一個(聚合+驗證+分發)層。

在這種設計中,一種 batch mechanism 的結構以開放式協議的形態成為架構中的 Layer2;現在我們熟知的 Layer2(ZK-rollup)可以接入這種協議並成為一種 Layer3。

我認為整套 batch mechanism 的核心是以下 2 點:

  1. Batch prover 將加入 batch mechanism 的各個 ZK-rollup 發送的多個 proof 聚合,並記錄所有的 new state、old state、state delta;
  2. Batch handler 只需要驗證一次聚合後的 proof,驗證成功後以 (New state, Old state, State delta) 作為驗證成功的證明分發給相應的 rollup 鏈(Layer3)用於更新 state。

2.Again,Layer3 的價值

– 成本

相比現在 Layer1 的 verifier contract 驗證不同 rollup 鏈發送的 batch proof 並更新 state,這套新的架構相當於將 gas 成本在各個 rollup 鏈之間分攤。根據 Vitalik 的描述,分攤後的 gas cost 同樣約為 8000。因此,這種 Layer3 的設計在成本因素上同樣產生了很大價值。

– 安全性

這樣的結構設計使得 Layer2(batch mechanism)成為了一個用途明確且專一,結構簡單的中間層,這使得這一層在安全性和 governance-minimized 上具備天然的優勢。

*Starkware 上的 SHARP 正在做類似的實現,遞歸的證明方式使得 proof 可以被提交到 Layer2 的 StarkNet 上,為進一步實現 Layer3 創造可能性。圖片

七、對 Layer3 未來的思考

  1. 二層網絡是當前的最佳解決方案,但我相信多層網絡結構一定會成為未來趨勢;
  2. 基於現在大家對 Layer3 的設想,ZK 相關技術對 Layer3 會起到極大的推動作用,並且未來 Layer3 的底層技術很可能離不開 ZK,甚至基於 ZK。因此,在 ZK 領域的探索對 Layer3 的發展非常重要;
  3. Layer3 的概念處於早期階段,未來一切皆有可能!但本質上 Layer3 的出現會是成本和效率驅動的。Layer3 的出現不會改變 Layer2 作為 general purpose scaling 的格局,而是在 Layer2 的基礎上做更加定制化的事情;
  4. Layer3 的發展離不開紮實的 Layer2。持續推進現在 Layer2 的生態繁榮和底層技術進展仍然是高優先級的;

Reference

https://vitalik.ca/general/2022/09/17/layer_3.html

https://medium.com/starkware/fractal-scaling-from-l2-to-l3-7fe238ecfb4f

https://medium.com/starkware/recursive-starks-78f8dd401025

https://ethereum.org/zh/layer-2/

免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。文章內的信息僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。