作者:鹿目圓原文: 《Layer3會是以太坊的新方向嗎? 》
Vitalik在最近的一篇文章中討論了Layer 3的概念。那麼,什麼是Layer 3?
我們先簡單回顧一下Layer 1和Layer 2。
早期的公鏈,尤其是以太坊,其生態發展受制於網絡性能,每秒可處理的交易筆數(TPS)比較小,網絡時常發生擁堵,且交易GAS費比較昂貴,無法支撐高性能的應用在其上發展。為了提升網絡的可擴展性,各種擴容方案相繼被提出。
擴容的路線主要有兩種:
- 一種是在原有的區塊鏈本身,也就是Layer 1上進行擴容,讓區塊鏈自身擁有更高的交易容量和處理速度。這種方案的主要問題是:如果通過更大的區塊來進行擴容,那區塊會變得更難驗證,同時網絡也會變得更加中心化。
- 第二種是在區塊鏈上附加一層,即常說的Layer 2擴容。這種方式不是將所有的活動(比如計算、存儲、共識)直接放進原鏈中(單片式的layer 1區塊鏈),而是通過模塊化的執行層,也就是一些鏈下的Layer 2協議來處理一系列的交易。鏈上的智能合約只進行兩項工作:處理存款和取款,以及驗證所有鏈下發生的行為是符合規則的。
在討論Layer 2擴容的過程中,逐漸出現了一個新的概念--Layer 3。
Layer 3基於這樣一種理念:
如果可以在Layer 1之上添加Layer 2協議來幫助處理交易從而提升安全性和可擴展性,那麼是不是也可以在Layer 2上面增加額外的Layer 3協議來繼續增加安全性和可擴展性?
這個想法聽上去不錯,但是在實際執行上面臨著諸多問題,使得這種擴容方案無法直接簡單地進行堆迭。
通過堆迭更多層來持續擴容可行嗎?
Rollup是一種擴容技術,主要是為了解決區塊鏈運行時的擴展的兩大瓶頸:計算和數據。
其中計算瓶頸可以由欺詐證明或者SNARK來解決,這依賴於一小部分人來處理區塊,其他人只需要進行很小的計算量,來驗證這些處理結果的正確性。
這些方案,尤其是SNARK,幾乎可以無限制擴容,可以通過在SNARK上再進行SNARK來把很多計算量縮小到一個證明里。
但是數據則不同。 Rollup使用一系列的技巧來縮小一個交易需要上鍊的數據量,一個簡單的貨幣轉賬的大小被從100字節壓縮到16字節,一個保護隱私的ZK-SNARK交易可以從600字節被壓縮到80字節。
但是Rollup仍然需要維持鏈上數據的可用性。也就是說鏈上數據對用戶來說需要可獲得併且可驗證,這樣用戶就可以獨立地計算和驗證Rollup的狀態,並且在現有驗證者離線的時候可以作為驗證者加入。
數據只能做一次壓縮,不能用同樣的壓縮邏輯把壓縮過的數據再壓縮一次。
所以, Rollup上的Rollup(多層堆迭)這種方案實際上並不能在可擴展性方面帶來更多的收益。
但是,Layer 3模型可以用作其他用途。
如果不適宜用來做通用擴容,那麼用Layer 3做什麼比較合理?
Polynya在文章《分形擴容》中介紹了一個可行的Web3網絡是什麼樣的。文章中提到,試圖把所有內容塞進一個服務器,在一個服務器中進行並行化,遠不如把並行的概念帶到下一個層,也就是新增加一個Layer 3來進行並行處理,這樣可以把內容擴展到多台服務器上。通過分形的方式來進行並行與特定擴容,這就是我們需要layer 3的地方。任何計算密集型的應用程序,都會需要為應用定制的rollups。這樣做有以下幾個好處:
- 優化了零虛擬機開銷的應用程序
- 無MEV,或MEV有限,即可以通過簡單的解決方案來減輕有害的MEV
- 為特定目的選擇微調硬件(通用鏈總會有一些不適合某個應用程序的瓶頸)。
- 解決交易質量不可能三角--可以支付少量的交易費用,但仍然可以通過有針對性的防DDoS方案來規避垃圾郵件。
Starkware也提出了他們的Layer 3的方案。它採用的遞歸的理念可以甚至可以被用到更多層級上來實現分形層級解決方案。在他們的方案中展示了這種生態的示例,如下圖所示。
它的layer 3包括了:
- 擁有Validium的數據可用性的StarkNet,主要給一些對價格特別敏感的應用來使用。
- 專門針對APP的擁有更好的應用處理性能的StarkNet系統,例如應用了特殊設計的存儲結構。
- 服務於類似dYdX、Sorare、Immutable 和DeversiFi 的StarkEx 系統,這些系統具有Validium 或Rollup 數據可用性,可以為StarkNet 帶來可擴展性優勢。
- 隱私StarkNet 實例(在此示例中也作為L4)可以實現隱私保護交易而不會將它們包含在公共StarkNet 中。
Starkware在文章中提到了三種關於Layer 3的願景,Vitalik 在他的文章中也對這三種模式表示了認可:
- 自定義功能。即layer 2用於擴容,layer 3用於特定的功能,例如隱私。在這個願景中,沒有嘗試提供“可擴展性的平方”,而是在堆棧中有一層專門來幫助應用程序擴展,然後其他層則為不同用例提供定制功能。
- 自定義擴展性。即layer 2用於通用擴容, layer 3用於定制擴容。定制擴容可能有不同的形式:不使用EVM來進行計算的特殊的應用、用數據格式優化來為特定應用進行數據壓縮的Rollup等。
- 自定義安全性。即layer 2用於無需信任的擴容(rollups),layer 3用於弱信任擴容(validiums)。 Validium是SNARKs用於驗證計算的系統,但是把數據可用性放在了鏈外可信任的第三方或委員會處。 Vitalik認為,Validiums被嚴重低估了:對於大多數“企業區塊鏈”應用程序來說,運行validium證明者並定期將哈希提交上鍊的中心化服務器就可以滿足需要。雖然Validium的安全性不如rollup(因為是中心化的),但是它們的費用便宜許多。
Layer 3的成本
Rollup和validium需要在確認時間和固定成本之間做權衡。但Layer 3可以解決這些。
Rollup中的每筆交易的費用都很低:根據應用的不同,大概是16-60字節的數據。
但是Rollup也有一筆很高的固定成本,來源於每次需要將一批交易提交到layer 1鏈上時:如果是optimistic rollup需要21000 layer 1 gas每批次,如果是ZK rollup則會超過400,000 gas ,如果是量子安全的STARK則需要百萬以上的gas。
當然,rollup也可以簡單地選擇等到有1000 萬gas 價值的交易時再來提交整批交易,但這會造成非常長的批次間隔,迫使用戶等待更長的時間以獲得高安全性的確認。
因此,它們需要在不同方案中權衡:較長的批次間隔和最佳成本,或者較短的批次間隔和增長的成本。
Vitalik在文章中展示了一個批次成本為600000 gas 的ZK rollup、每筆交易成本為368 gas的完全優化的ERC20 轉賬(23 字節)的情況。假設此rollup處於早期採用階段,TPS為5。計算得出每筆交易與批次間隔的gas:
如果在擁有大量定制化Validium和針對APP的定制環境的情形下,它們可能不需要用到5tps。事實上,layer 3確實能解決這個問題。 ZK rollup 中的ZK rollup只有大約8,000 gas 的layer 1 成本(500 字節用於證明)。這將上表更改為:
Layer 3有什麼優勢?
Layer 3的優勢有以下幾點:
- 更好的可擴展性:來源於利用遞歸證明的倍數效應。
- 構建layer3的應用程序設計人員獲得了更好的控制性。
- 隱私:例如,零知識證明應用於開放Layer 2 上的隱私保護交易。
- 更便宜/更簡單的layer 2-layer 3 互操作性:目前在layer 1 和layer 2 之間的出入金流程非常昂貴。相比之下,由於layer 2 的成本效益,這些流程在應用於layer 3 時不僅極具吸引力,而且易於實施。雖然在layer 2 和layer 3 之間移動資產的延遲可能比部署在同一layer 2 上的應用程序之間的延遲要長,但成本和吞吐量是成正比的。
- 更便宜/更簡單的layer 3-layer 3 互操作性:獨立的layer 3 將通過layer 2 而不是layer 1 進行互操作。 layer 2 顯然比它的layer 1 便宜。在沒有layer 3 的情況下,這些都將在layer 2 上運行,也就必須通過相當昂貴的layer 1 進行互操作。
- layer 3 作為layer 2 的“金絲雀”網絡:新的創新可以在layer 3 上進行測試,然後在layer 2 或layer 3 上向公眾提供(很像Kusama 在Polkadot 中扮演的角色)。
layer 3的實現方式
Starkware在他們的方案中介紹了layer 3的具體實現方式。
一個經典的layer 2結構包括了以下幾個組成部分:
- 跟踪layer 1上的layer 2狀態根的智能合約(例如以太坊上的StarkNet智能合約)
- 一個Verifier智能合約來證明狀態轉換證明的有效性
- layer 1上的用來管理layer 2上進出的代幣的存取款的橋合約
- layer 2上用來作為layer 1上代幣交易對手方的代幣合約,如ERC20, ERC721
而一個分形的layer 3結構則如下圖所示。只要在layer 2上放置狀態跟踪和Verifier智能合約,layer 3就可以利用有效性證明在layer 2上安全地運行。當layer 2 也使用提交給layer 1 的有效性證明時,這將成為一個非常優雅的遞歸結構,layer 3 證明的壓縮優勢可以使layer 2 證明的壓縮優勢成倍增加。
Layer3--Dapp開發者的選擇
對於dApp 的開發者來說,在基礎設施上可以有以下幾種選擇:
1、自己開發一個Rollup(ZK Rollups 或者Optimistic Rollups)
優勢是你可以繼承以太坊的生態(用戶),還有它的安全性,但是對於一個dApp 團隊來說,Rollup 的開發費用顯然過高。
2、選擇Cosmos、Polkadot 或者是Avalanche
開發的費用會更低(例如dydx 就選擇了Cosmos),但是你將失去以太坊的生態(用戶),以及安全性。
3、自己開發一個Layer 1 區塊鏈
這帶來的開發費用和難度很高,但是卻能擁有最高的控制權。
我們對比一下三種情況:
- 難度/費用: Alt-layer 1> Rollup > Cosmos
- 安全性: Rollup > Cosmos > Alt-layer 1
- 生態/用戶: Rollup > Cosmos > Alt-layer 1
- 控制權: Alt-layer 1> Cosmos > Rollup
作為一個dApp的開發者,如果想繼承以太坊上的安全性和流量,那就不能重新開發一條鏈,那隻能選擇rollup 。但是自己開發一個layer 2 rollup 又非常貴,那麼合適的解決方案就變成了利用layer 3 SDK 開發一個自己的應用專用的Rollup(application-specific rollup),即Layer 3。
結語
Layer 2可以降低每筆交易的gas 成本、提高鏈上的可擴展性。同時,Layer 2保留了去中心化、通用邏輯和可組合性的好處。通過遞歸結構的設計,Layer 3也可能繼承Layer 2的這些優點。
目前一個比較普遍的觀點是:一些應用需要特定的定制化服務,而這些服務,將由Layer 3來提供。
Layer 3 可能會為以太坊或者說是區塊鏈,開闢一個新的空間,就像Rollup那樣。但是目前還有很多的技術細節需要去解決,這還需要時間。
自2020年以來,應用層的創新幾乎沒有出現。過去關於區塊鏈應用未爆發的原因,多數說法是現有的公鏈的性能不足以支撐高計算量高並發的應用,這種思路還停留在單片區塊鏈的時代。但是隨著layer 3方案的成熟,預計將會出現一批新的應用,這些應用只有在分形擴容的情況下才真正有可能實現。鏈上游戲或類似依賴大量計算的項目,可能會成為第一批部署自己的layer 3的項目。