深入解讀 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 的設想
- L2 is for scaling, L3 is for customized functionality.
- L2 is for general-purpose scaling, L3 is for customized scaling
- L2 is for trustless scaling (rollups), L3 is for weakly-trusted scaling (validiums)
2. 進一步解讀
- Layer2 作為 general purpose 的擴容解決方案,那麼對於 Layer3 的設計可以放下單純的擴容,去定制化地做一些 Layer2 無法輕易實現的功能,比如 privacy;
- Layer2 中 ZK-rollup 設計考慮了通用和兼容性,為整個生態提供一種通用的擴容解決方案。因此在 ZK(E)VM 的設計上或多或少犧牲了 ZK-friendly。那麼 Layer3 可以針對不同應用做進一步擴容。舉個例子,在 ZK 場景下,一些應用可以通過更加定制化的電路設計來獲得更好的 performance;
- Layer2 中 ZK-rollup 在擴容的同時需要保證 Data Availability,在 cost 上做了妥協。因此,Layer3 可以用於低成本擴容,為不同開發者提供更多擴容方案,比如 Validium 就是一個很好的選擇。
第二點和第三點中 Layer3 都是在做進一步擴容,有什麼區別?
- 我認為兩者是截然不同的,並且解決了現在 Layer2 不同的痛點。第二點中的定制化擴容旨在提升性能,而第三點中提到的則是一種更加 general purpose 的低成本擴容方案。
3. 小結
以上都可能是之後 Layer3 發展方向,並且也不會限定在某一種形態。一些 Dapp 會需要提供隱私功能的 Layer3,一些 dapp 會受益於低成本的擴容,一些 dapp 會因為定制化的 Layer3 帶來 performance 的提升。總之,Layer3 會在 Layer2 的基礎上進一步提升性能,創造更多可能性。
四、是否需要 Layer3?
看到這你可能會產生兩個疑問:
- 既然 Layer3 這麼牛逼,是不是可以繼續往上繼續疊加 Layer4、Layer5、Layer6…以達到更好的擴容效果?
- 以上提到的 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 驗證。原因有以下兩點組成:
- 原提交 batch 到 Layer1 會產生不低的成本,根據 Vitalik 的說法每個 batch 的成本> 400,000 gas;
- 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 點:
- Batch prover 將加入 batch mechanism 的各個 ZK-rollup 發送的多個 proof 聚合,並記錄所有的 new state、old state、state delta;
- 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 未來的思考
- 二層網絡是當前的最佳解決方案,但我相信多層網絡結構一定會成為未來趨勢;
- 基於現在大家對 Layer3 的設想,ZK 相關技術對 Layer3 會起到極大的推動作用,並且未來 Layer3 的底層技術很可能離不開 ZK,甚至基於 ZK。因此,在 ZK 領域的探索對 Layer3 的發展非常重要;
- Layer3 的概念處於早期階段,未來一切皆有可能!但本質上 Layer3 的出現會是成本和效率驅動的。Layer3 的出現不會改變 Layer2 作為 general purpose scaling 的格局,而是在 Layer2 的基礎上做更加定制化的事情;
- 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 立場無關。文章內的信息僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。