免責聲明: 金色財經作為開放的資訊分享平臺,所提供的所有資訊僅代表作者個人觀點,與金色財經平臺立場無關,且不構成任何投資理財建議。
APP
中國版App下載 Android & iPhone
金色專欄
  • 專欄申請

一文了解Layer2模型、分類、具體方案

原文標題:L2-理解和思考

Layer2是個大的話題。是否去中心化,是否安全,資金狀態確認時間是Layer2的主要的討論話題。最近有點時間,總結一下Layer2的理解和思考。

Layer2交互模型

Layer2,相對于Layer1,在Layer1的基礎上提供更豐富功能,更好的用戶體驗。抽象一下Layer2的邏輯以及交互模型如下:

除了Layer1的交易外(入金),其他Layer2的交易都在Layer2執行。為了Layer2在必要時恢復交易狀態,所有Layer2的交易數據需要安全存儲。簡單起見,也為了和Layer1保持一樣的安全性,所有Layer2的交易數據一般存儲在Layer1。這種交易數據的隨時可訪問,稱為"Data Availability"(數據可用性)。所有的Layer2交易都在Layer2執行,并同步到Layer1。如何證明Layer2同步的狀態正確,不同的layer2方案有不同的實現方法。

Layer2實現分類

從Layer2狀態同步方式,Layer2分為兩類:一類是側鏈實現(Side Chain),一類是Rollup。側鏈,就是通過不同于Layer1的共識進行Layer2狀態向Layer1的同步。僅從這一點,整個側鏈的安全性,就降低到Layer2的共識的安全性。Rollup又分為兩種:一種是zkRollup,一種是Optimistic Rollup。所謂Optimistic Rollup,樂觀性Rollup,期望絕大多數情況下Rollup正確向Layer1同步狀態。同時,為了防止同步錯誤的狀態,提供了挑戰機制。樂觀預計挑戰的機率比較小。在需要挑戰的情況下,Layer1可以判斷正確狀態。zkRollup是最直接的狀態同步方式,通過零知識證明技術,在向Layer1提交狀態的同時提供狀態變化的證明。Layer實現分類如下:

zkRollup,按照采用的零知識證明協議又分為三類:1/ Groth16 2/ PLONK 3/ STARK。Groth16協議需要針對每一個電路進行初始設置(Trusted Setup)。PLONK協議在一定規模下的電路只需要一次初始設置。STARK協議不需要初始設置。但是,相對另外兩種算法,STARK協議,證明數據量大,驗證時間長。相對來說,在Layer2的場景下,PLONK是目前廣泛使用的算法。

STARK協議和SNARK(Groth16/PLONK)協議比較(來源于Matter Labs的github鏈接):

https://github.com/matter-labs/awesome-zero-knowledge-proofs

總結一下,從安全性角度看,各種Layer2的排序如下:zkRollup,optimistic Rollup,側鏈。從提現的時間也印證了安全性,zkRollup的提現是分鐘級別,其他兩種方案,小時甚至是天級別。zkSync是比較完善的zkRollup開源項目,zkRollup,雖好,目前存在很大的缺陷:可編程性差。

細看zkRollup

相對其他Rollup方案,zkRollup方案多了zk證明系統。也就是說,在Layer2每個交易除了“執行”外,還需要生成證明,證明執行過程的正確性。熟悉零知識證明技術的小伙伴都知道,零知識證明的安全性在于”電路“的安全性。對于Layer2,每種交易的處理”固化“為電路,電路邏輯完全公開。對應于每種電路,存在唯一的驗證秘鑰。驗證秘鑰用在Layer1驗證狀態證明。通過驗證的狀態證明,符合固化電路的邏輯。

關鍵就在于Layer2交易的執行和固化電路語義是否一致。公開電路就是一種共識方式,供所有人查閱電路邏輯。簡單的說,為了實現zkRollup,需要實現Layer2執行對應的電路。事實上,電路的實現相對復雜,沒有高級語言,很多情況下都是手寫R1CS。進一步,為了利用zk證明系統,為了優化電路的實現,整個Layer2的狀態經常優化為電路友好結構(merkle樹)。所以,zkRollup的系統需要考慮電路的結構,從而約束了Layer2交易以及賬戶模型。細心的小伙伴可以發現,不管是zksync/zkswap/loopring,都只實現了特定交易場景。

反過來說,如果需要通過zkRollup支持EVM的交易執行,需要將EVM的交易抽象成電路友好的賬戶模型。這種抽象并不容易,再者,EVM的描述電路可以預見比較大。從零知識證明的性能看,這方面會限制整個zkRollup的性能。

再看看zkRollup方案在Layer1的gas消耗。整個zkRollup方案的主要gas消耗為三部分(withdraw不考慮在內):

  • Transaction Raw Data:在zksync中稱為pub data。為了保證data availability,所有的Layer2的交易都會以裸數據的形式提交到Layer1。

  • Layer2 Block管理:在Layer2提交區塊狀態時,Layer1維護著Layer2的區塊結構和狀態。

  • 驗證Layer2 Block狀態:在Layer2提交證明時,Layer1需要驗證狀態證明。

以一個區塊350筆交易,每個交易的Transaction Raw Data的大小為20字節為例,一個區塊處理的gas消耗:

雖然上述的數據不是精確值,但是足以說明交易原始數據在整個zkRollup方案中的gas消耗占比是非常高的。從這個角度看,Layer2的有些項目選擇通過其他鏈下的方式存儲交易數據。

Optimism vs. Arbitrum

Optimistic Rollup兼容EVM。也就是說,Layer2支持可編程性,并且在以太坊上的程序幾乎無縫遷移。為了保證鏈上的狀態正確,這兩種方案都提供一段時間內的挑戰機制。挑戰者提供挑戰的證據,Layer1抉擇正確與否。

Optimism采用OVM執行Layer2交易。取名OVM是為了區分Layer1的EVM。因為提交到Layer1的狀態需要檢驗正確性,Layer1需要“重放”Layer2的交易,也就是說,Layer1在有些情況下需要執行OVM交易的執行。Optimistic Rollup最復雜的地方也在于此,用EVM模擬OVM,并執行Layer2的交易。可想而知,在Layer1的EVM模擬OVM的執行是比較繁瑣,消耗較大的操作。

Arbitrum也是采用挑戰機制。為了避免挑戰的gas費用低,Arbitrum引入了AVM:

相對于EVM,AVM是一個相對簡單的虛擬機。Arbitrum在AVM虛擬機上模擬EVM執行環境。也就是說,所有的Layer2交易都是在AVM執行,交易的執行狀態可以用AVM狀態表示。在提交到Layer1的狀態有分歧時,挑戰雙方(Asserter和Challenger)先將狀態分割,找出“分歧點”。明確分歧點后,挑戰雙方都可提供執行環境,Layer1執行相關操作確定之前提交的狀態是否正確。在Layer1挑戰的是AVM的狀態,分歧點的AVM的指令執行。

簡單的說,為了省挑戰的gas費用,Arbitrum采用了精簡的AVM(非常方便狀態表示),通過快速分割,在鏈上只需要執行一個指令,判斷狀態是否執行正確。Arbitrum介紹文檔中提到,整個挑戰需要大概500字節的數據和9w左右的gas。在AVM的基礎上,Arbitrum設計了mini語言和編譯器,模擬了EVM的執行環境,從而兼容EVM。

總結:

Layer2,相對于Layer1,在Layer1的基礎上提供更豐富功能,更好的用戶體驗。資金狀態確定性時長,安全性,可編程性是目前討論的焦點。zkRollup是資金狀態確定性最快的方案。optimistic Rollup/側鏈具有可編程性。zkRollup支持EVM的證明是個期待的方向。

jinse.com
好文章,需要你的鼓勵
jinse.com
好文章,需要你的鼓勵
發表評論
0/140
發布評論
評論
文章作者: / 責任編輯: 我要糾錯

聲明:本文由入駐金色財經的作者撰寫,觀點僅代表作者本人,絕不代表金色財經贊同其觀點或證實其描述。

提示:投資有風險,入市須謹慎。本資訊不作為投資理財建議。

金色財經 > 區塊鏈 > 一文了解Layer2模型、分類、具體方案
乐天堂手机app Fun88| FUN88登录| fun88官网| fun88官网备用| FUN88手机版| Fun88乐天堂| 梦飞翔| 乐体育| 乐体育官网| 乐体育网址| 乐天堂app下载| 乐天堂fun88体育官网| 乐天堂fun88入口| 乐天堂国际| 乐天堂手机app| 乐天堂手机app下载| 乐天使| 热天堂| 热天堂官网| 乐天堂fun88| FUN88电竞| 乐天堂入口| 乐天堂最新网址| 乐天堂备用网址| 乐天堂体育官网| 乐天堂fun88电竞| 乐天堂体育官网平台| 乐天堂注册| 乐天堂fun88国际| 乐天堂备用网站| 乐天堂电竞体育综合平台| fun88地址| fun88首页| fun88乐天堂网址| 天堂fun88| 乐天堂app| 乐天堂网址| 乐天堂电竞平台| fun88亚洲体育| 乐天堂手机版| 乐天堂体育注册| 乐天堂首页| 乐天堂88| 乐天堂fun88体育投注| 乐天堂fun88投注| 乐天堂fun88app| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>