原標題:《技術視角剖析4個Layer2 DEX : ZKSwap/StarkNet/Unipig/Loopring》
作者:ZKSwap 江小白
近期以太坊上的高手續費和低TPS使以太坊上的Layer2擴容之爭變成了焦點。 ZKSwap團隊推出的Layer2擴容方案Zkspeed相比於市場上其他擴容方案有著技術上的領先優勢,由此帶來產品上更為良好的體驗。
本篇文章將以市場上既有的產品為基礎,從技術方案角度出發,比較當下ZKSwap方案和其他擴容方案的異同之處。在具體的展開描述之前,也將簡短的介紹下目前市場上的Layer2擴容技術的基本狀況。
Layer2 擴容技術概述
迄今為止, Layer2市場上已經是一片繁榮,技術上不斷創新,各種產品也層出不窮。對於市場上的所有的產品,從技術角度上劃分,可以大體分為三類:
1.狀態通道:通過促進鏈下交易來減輕以太坊的負擔,具有即時存取、高吞吐的特點,其弊端是設置通道浪費耗時,並且需要在通道中支付鎖定資金,同時定時監測通道狀態;
2.側鏈技術:具有獨立共識規則的獨立區塊鏈,與Layer1的共識不同步,這是它的弊端;
3. rollup技術:可以看作是一個高級的非託管側鏈技術,它將計算放在鏈下,交易數據以及最新世界狀態放在鏈上,保證了鏈上數據可用性。
與其他的兩種方案相比, rollup無需提前鎖定代幣,也不用設置自己的共識規則;而且它還可以保持和Layer1同樣等級的安全性,同時方案本身俱有通用性。隨著Layer2技術的持續發展, rollup技術方案也變得多樣化,根據交易數據存儲的位置和使用的證明方法的不同,又可以將rollup技術細分為以下四類:
1. ZK-Rollup : Layer1 + Validity proofs ,數據存儲在鏈上,用零知識證明來保證狀態轉換的有效性;
2. Optimistic rollup : Layer1 + Fraud proofs ,數據存儲在鏈上,在挑戰期間,用欺詐證明來驗證狀態轉換的有效性;
3. Validium : Layer2 + Validity proofs ,數據存在鏈下,用零知識證明來保證狀態轉換的有效性,並設立“數據可用性委員會”來保證鏈下數據的可用性;
4. Plasma : Layer2 + Fraud proofs ,數據存儲在鏈下,用戶提供欺詐證明來驗證狀態轉換的有效性;
在實際的產品設計過程中,基於不同的業務場景,設計者往往需要在效率和安全性上做出權衡,要效率還是要絕對安全,每個產品設計時都有自己的側重面。因此,也就有了上述的四種rollup方案。現在市面上的大部分產品,按技術分類的話,應該大都屬於上述四類,更準確的說,是屬於前三類,第四類方案提出的最早,安全性考慮的較少。
所以, ZKSwap團隊推出的Layer2擴容方案Zkspeed同樣也屬於上述範疇。然而,作為Layer2賽道上的一個新星, Zkspeed方案與其他主流產品推出的Layer2方案相比會有什麼樣的技術優勢呢?產品體驗又有何異同呢?接下來,我們將選取市場上具有代表性的幾個產品,從技術方案和實際體驗效果上做一些簡單的對比分析,來看看Zkspeed擴容方案是否優勝同時產品體驗是否更好。
Layer2 技術對比分析
根據我們的市場調研,我們選取了三個市場上具有代表性和前沿性的的產品,分別是StarkWare的starkNet 、 Uniswap的unipig 、 Loopring的loopring 。首先,我們先從技術方案的角度,來看一下Zkspeed和starkNet 、 Unipig 、 Loopring的區別,具體的如下表所示:
圖片說明: crs對應需要多次可信設置的zkp算法; srs對應只需要一次可信設置的zkp算法表1. Layer2擴容方案分析表
- Loopring :
使用的Layer2擴容方案是基於zkRollup方案設計的,同時也支持Validium方案,即鏈上數據可用性是可以選擇的。該方案使用的零知識證明算法是zksnark算法,需要第三方生成可信設置。
優點是:這種算法的proof大小是常量大小的(比如Groth16算法);
缺點是:可信設置是不通用的,針對不同的交易類型,都需要單獨進行可信設置。因此,為了提高證明傲率,每個區塊裡的交易類型要求為同一交易類型,導致瞭如果某種類型的交易較少,那它上鍊的速度就會很慢,因為要等待足夠的交易才打包區塊。不過,在Loopring發布的協議3.6版本里可以看到,已經取消了了區塊裡是相同類型的交易的限制,相信會有更好的交易體驗。
StarkWare團隊研發的Layer2擴容引擎starkEx ,支持Validium方案和zkRollup方案兩種模式可選。狀態更新的有效性由零知識證明來保證,其用到的零知識證明算法是zkstark算法,
優點是:與常用的zksnark算法不同, zkstark算法不需要第三方的可信設置,而且其算法本身不依賴數學難題假設,具有一定的抗量子性;
缺點是: proof的大小比其他的zkp算法要大的多,生成證明需要消耗大量的計算資源和存儲空間。同時, StarkWare團隊研發的Layer2擴容解決方案值得期待,一種以太坊上的基於STARK的去中心化無許可L2 ZK-Rollup產品,並且支持基於Cairo語言的通用計算;具體內容可參考鏈接starkNet 。
使用的Unipig擴容方案是基於Optimistic rollup設計的,如前圖所示,改方案存在挑戰期,即在挑戰期間,用戶可以提供欺詐證明來驗證執行者的行為是否作惡。
優點是:該方案兼容EVM ,並且交易數據存在鏈上,保證了安全性;
缺點是:由於存在潛在的欺詐性證明,鏈上事務處理的時機會延緩;挑戰成本昂貴,導致挑戰模式基本上算是形同虛設。
ZKSwap :推出的Zkspeed擴容方案兼顧了ZK-Rollup 、 Validium和Optimistic rollup方案的特點。即實現所有與Layer1交互的交易數據全部上鍊( zkRollup ),把單純Layer2的交易數據存放在鏈下(Validium) ,交易hash數據上鍊,同時ZKSpeed也會提供一個完全上鍊的版本,這樣可以實現更高的安全性,並提供零知識證明保證狀態轉換的有效性。
ZKSwap採用自己研發的Zkspeed與其他三個擴容方案的差異:
1. Zkspeed方案採用PLONK零知識證明算法,所有交易類型共用一套可信設置,如此就無需按照交易類型進行區塊打包;
2. Zkspeed方案採用了GPU實現版的PLONK算法,相比於普通的CPU實現版本運行速度上提升了3倍以上,再加上頂尖的硬件設備,使得證明的生成時間大大縮短,大幅提高了系統的吞吐量;
3. ZKSwap團隊經過反复研究論證,在Zkspeed方案上探索性的採用了聚合證明( Aggregation proof )方案,並首先應用到AMM的DEX領域(聚合證明方案最早由Matter Labs提出,並有一些簡單的應用),把多個區塊的證明聚合成一個證明,使得鏈上一次就可以完成多個區塊的驗證,大大的降低了交易的平均成本。
聚合證明( Aggregation proof )的技術原理如下圖所示:
在rollup方案裡,一個很明顯的技術特點就是交易的批量處理,即對區塊裡的所有交易的有效性產生一個證明,然後鏈上主合約完成證明的有效性驗證。如圖2左側所示,這和原始的單個交易處理力度相比,已經有了巨大的吞吐率的提升和交易成本的降低。然而, ZKSwap團隊發現,受限於零知識證明算法橢圓曲線參數的選取,一個區塊內能批量處理的交易數量是有限的,再加上鍊上一次驗證計算的成本高達50WGas ,導致每筆交易的成本並沒有低到預期。因此, ZKSwap技術團隊持續進行技術應用創新的突破,並最終關注到了聚合證明( Aggregation proof )方案。
如上圖右側所示,聚合證明的思想很簡單,可簡單表述為:把每個區塊的proof當作輸入,把鏈上驗證的過程當作證明電路,證明鏈上的驗證過程是正確的,由於驗證的形式就是一個雙線性配對,因此,多個proof可以進行線性組合,然後利用一次雙線性配對完成所有proof的有效性驗證。這樣一來,多個證明的驗證過程由多次變成1次,驗證成本大幅降低,成本降低的幅度取決於區塊聚合度(即一次聚合的區塊數),目前Zkspeed方案支持聚合上鍊的交易筆數可根據實際情況進行調配, 20 、 10 、 5筆均支持。同時,為了探索進一步降低交易成本的可能性, ZKSwap團隊追求精益求精,繼續對上鍊數據進行聚合提交,即,多個區塊一次提交,節省了一些固定成本,進一步壓縮交易成本,最終實現一筆交易的成本消耗最低至1400 Gas ,遠低於行業其他產品。
展望
遺憾的是,目前ZKSwap的方案還不兼容EVM , ZKSwap團隊的願景是構建一個支持通用EVM的rollup擴容解決方案,使得其他應用無需重新編寫智能合約就能實現快速遷移,目前ZKSwap團隊已經投入研究,並取得了一些進展。除此之外, starkWare和Matter Labs分別開發了starkNet和zinc的Layer2擴容解決方案,需要用對應新設計的DSL語言來編寫證明邏輯,雖然此方案不算完美,但也算是一個階段性的研發成果。未來ZKSwap團隊願和其他團隊一起,共同致力於以太坊的Layer2擴容建設。