從NFT到GameFi,再到Loot,在市場熱潮的幾番更迭下,市場對于Layer 2的需求已經逐漸加大,隨著Arbitrum主網的上線,越來越多的資金開始投身于Layer2 擴容協議市場,市場又掀起了新一輪的賽道競爭。
雖然現階段的Layer 2網路總鎖倉量屢創新高,但仍然無法滿足目前市場上投資者的需求,而且,現在市場Layer 2熱度都是基于Arbitrum、Opitimism等項目的炒熱而升溫,根本無法長期持續,基于此,Layer 2熱潮是否會成為“曇花一現”也成為了大眾比較關注的事情。那么Layer 2技術目前發展如何?Layer 2網路的未來究竟是怎樣的?而這一個個的疑問,路印協議CTO Steve Guo在一次演講中給了我們答案,
Steve用簡單的方式講述了Layer 2技術的演進,深入分析了每個Layer 2項目的優缺點,并且向我們敘述了Layer 2網路未來的發展方向,以下內容來自Steve的演講實錄,
作者:Frankle
來源:Medium
編譯:陳一晚風
隨著Layer 2熱度的高漲,一個疑問逐漸浮現在大眾面前:Layer 2的真正未來到底是什么?
下圖則代表了現在市場上對Layer 2的官方定義。但Steve的定義中,Layer 2是資產安全依賴于Layer 1的第2層網路,所以可以排除掉一些側鏈,比如xDai和BSC,
目前的Layer 2技術可以分為三類技術,最早是State Channel(狀態通道)技術,后來又演變為Plasma,再到最新的、比較熱門的Rollup技術。Rollup主要分為兩個方案,Optimistic Rollup和zkRollup。這兩種方案中的每一種內都存在著許多項目。
State Channel(狀態通道)
第一個Layer 2技術State Channel的核心思想其實來源于比特幣的閃電網路。例如,假設Alice和Bob必須轉移資金,并且他們都在鏈上,那么其成本會非常高。因此,可以先同意Alice和Bob先將他們各自的資金存入智能合約,在他們各自資金被存儲后,Alice和Bob可以不消耗任何Gas費,無限期地在鏈下轉移資金,然后在所有人退出時使用智能合約進行結算,這種過程的核心思想就被稱為狀態通道。
雖然這種鏈下轉賬的方式確實可以很快,而且便宜,但它也存在一些問題。首先,它需要兩端存入資金,其資金占比非常高,此外,它是點對點的。例如,如果A想先與B轉錢,然后再與C轉帳,則需要建立多個狀態通道,這種互動是不可取的,所以,在后來隨著Raiden Network、Celer等技術不斷演進,現在的狀態通道已經可以是點對中心了,任何想要交易的人都需要與中心進行交易,使用狀態通道進行連接,
但這仍然存在同樣的問題,因為中心本身需要存入大量的資金以保證資金周轉利用率,因此該方案只能用于轉賬/支付的應用。由于狀態通道的這些局限性,也使得它自然而然地演變成了一種叫做Plasma的技術,用以解決State Channels的資金利用問題,
Plasma
Plasma在鏈下提供了UTXO(Unspent Transaction Output)等結構模型。每個人的轉賬記錄都類似于比特幣UTXO交易。在Plasma鏈上確認交易后,Plasma將向以太坊上的智能合約提交所有Merkle狀態,由智能合約記錄所有鏈下狀態。最后,Plasma依靠測試機制來確保所有鏈下交易都正確執行,例如,避免轉賬被雙花攻擊。
Plasma比State Channel技術更精進的一點就在于它解決了資金利用的問題,但同時它也帶來了一個新問題,Plasma需要至少一周的退出期來確保交易的最終確認。同時,Plasma要求所有人監控Plasma鏈上的所有UTXO交易,也就是說用戶必須自己監控這些交易,才能根據這些歷史交易對交易問題提出質疑,這也是普通用戶所不能接受的,
因此,Plasma也需要自然進化,進而演化為下一個相對熱門的Optimistic Rollup技術,Optimistic Rollup從實際上解決了Plasma所帶來的問題。也就是說,Plasma鏈上的數據最終只是Merkle樹(由不同數據塊的散列組成的數學數據結構),所以測試起來會更加困難,
Optimistic Rollup
為了解決Plasma所存在的問題,Optimistic Rollup將所有鏈下原始交易數據,包括世界狀態的樹,提交到鏈上,然后任何人都可以根據鏈上記錄的所有原始資訊進行測試,
如圖所示,Optimistic Rollup允許用戶提交世界狀態并提交鏈上原始交易數據,然后任何人都可以根據這些數據測試轉賬是否有效。這個想法被稱為Optimistic Rollup。
Optimistic
事實上,這個想法已經在目前市場的兩個主網項目中實現了。
第一個項目叫做Optimism。這個項目的開發團隊實際上是來自Plasma,所以Optimism也就理所應當的擴展了Plasma的應用場景,此前的State Channel和Plasma都只是用于轉賬/支付的應用,那么Optimism如何擴大轉賬/支付?
現在市場對于擴大轉賬/支付的方法是,使用圖靈的完整編程來兼容鏈下的EVM指令,這樣每個人都可以直接在鏈下執行solididity程式。而Optimism的想法則是在鏈上部署一個智能合約,然后使用智能合約接受鏈下EVM兼容指令的執行,也稱為OVM,
Optimism試圖做一件事,即保證OVM的字節碼可以映射到EVM的字節碼,但實際上,這種映射可能只有20個左右的字節碼. 所以Optimism目前的一個大問題是它無法實現100%的EVM兼容性。正是因為Optimistic有這個問題,Arbitrum才提出了改進方案。
Arbitrum
Arbitrum在Optimistic基礎上的一個巧妙改進是,它不是在鏈上執行EVM比特碼,而是定義了自己的AVM字節碼,AVM的字節碼是一個非常精簡的子集。這樣,當用戶測試第一級時,Gas會更低,消耗也會更低,
目前,Arbitrum的轉會費大約是Optimism轉會費的二分之一。Arbitrum還改進了測試機制,允許用戶通過分片進行測試。例如,一個區塊中有1000個交易,但只有一個是錯誤的。然后就可以用類似二分法的思路,讓用戶證明第一個512是否正確,如果正確就測試下一個,比如256,然后繼續用二分法來測試,這就是Arbitrum,但Arbitrum并不能就此代表Layer 2的未來。
zkRollup
V神曾在年初表示,Optimistic Rollup解決方案短期內最有可能兼容EVM,但中長期他更看好 zkRollup,
事實上,zkRollup和Optimistic Rollup的本質區別在于它不依賴任何測試機制,而是即時保證鏈上清算的最終確定性,zkRollup依賴于一組稱為zk(零知識)證明的數學系統,
zk證明本質上做了一件事,通俗來講就是在不告訴對方答案的情況下向對方證明你知道答案。
例如,問題y有一個函數f,我可以根據我的私人秘密x計算y并通過這個函數得到y。最后,我向你開放的是函數f和問題y。但是我的x不能告訴你,我想讓大家知道我知道一個x來計算y,這叫做zk證明。
這樣的表述可能相對比較抽象,接下來舉一個實際的例子,比如在下面這張圖片中尋找Waldo。比方說,我想向大家證明的是,我知道Waldo在這張地圖上的位置,但我不能直接告訴你位置,所以我可以這樣做:找一塊足夠大的黑布蓋住圖片,然后在黑布上剪下小數字,然后把小數字顯示出來。 然后你就會明白我知道Waldo在這張地圖上的位置,但我沒有向你透露這個位置。這就是zk證明的工作原理。
我證明了一件事,但我沒有告訴你這個秘密。這一組技術聽起來有點像黑魔法,其核心技術思想被統稱為zkrollup,實際上,zkRollup的核心思想是將所有的世界狀態歸類為一棵大Merkle樹,然后所有的鏈下交易本質上只是改變了一個賬戶的世界狀態,
最后使用中繼系統收集所有的鏈下交易,然后將這些交易處理后的世界狀態樹的哈希記錄在鏈上,并記錄這些交易元數據的交易資訊,與此同時,還提交了一份名為“零知識證明”的證書,只要這個證明在鏈上得到了驗證,就意味著鏈下的計算已經忠實地處理了所有的交易資訊。這是zkRollup和Optimistic Rollup之間最大的區別,
Optimistic Rollup只向鏈提交元數據和樹哈希,而zkRollup還提交zk證明證書,這樣它就可以保證最終結算,而不依賴任何測試機制。
Loopring
Loopring協議于2019年底推出,是世界上第一個主網上的zkRollup。到目前為止,Loopring協議已經歷經了3個版本:第一個版本只支持訂單簿中的DEX交易,第二個版本支持轉賬支付,第三個版本中支持AMM Swaps,而在今年9月初,Loopring協議已經正式發布了現在支持 Layer-2 NFT最新版本。此版本支持NFT在Layer-2上進行鑄造、轉賬和交易,可以降低整體Gas成本,
zkSync
zkSync與Loopring協議最大的區別在于使用的零知識證明算法不同,Loopring使用一組稱為 Groth16的算法,zkSync使用一組稱為Plonk的算法,兩種算法的本質區別在于是否有最早的初始可信設置,Loopring是必要的,其改變任何電路的行為都需要一個可信的設置,而zkSync則不需要這樣做。
Matter Labs實際上經歷了兩個版本,1.0 和2.0。2.0稱為zkPorter,1.0稱為zkSync。它們之間的主要區別在于,為了進一步減少2.0上的Gas消耗,Merkle樹和元數據交易數據不在鏈上,而是使用類似于Community POA的鏈下Proof來保存數據。
但是大家請記住,一旦元數據不在鏈上,用戶資產的安全就無法真正得到Layer 1的保障。不過這樣的系統本質上允許用戶做出自己的選擇。如果您想安全,請使用1.0,如果您想更便宜(但不太安全),請使用2.0版本zkPorter,同時,Matter Labs目前正在開發一個與EVM兼容的 zkRollup系統,它定義了一種名為Zinc的編程語言。簡而言之,Layer 2項目是最終目標是最終成為一個zkEvm。
StarkEx
另一個著名的zkRollup項目是StarkWare推出的StarkEx。
在早期,大眾對其并不看好,因為它第一次上線時聲稱它是一個zkRollup,但實際上它并沒有將應用程式的元數據上鏈,所以這樣的系統不能稱為zkRollup,所以當時V神將其命名為Validium。后來,StarkEx又被擴展到支持向鏈提交元數據的模式。所以現在也可以將StarkEx稱之為真正的 zkRollup。
StarkEx在早期定義了自己的編程語言,從一開始就想做一個具有可編程性的zkRollup系統,StarkEx定義的語言稱為Cairo,其核心思想是允許用戶用Cairo語言編寫智能合約,然后它會幫你轉換成例如EVM字節碼,然后在StarkEx的整個zkRollup系統上進行驗證和計算。
zkEVM
從上述的Layer 2協議來看,并沒有完美的Layer 2解決方案,都存在局限性,或者它們沒有數據可用性。Steve則認為,最終完全可用的Layer 2網路應該是zkEVM,
zkEVM是什么?顧名思義,只要開發者用EVM寫一個智能合約,就可以在zkRollup類型環境中直接執行這個智能合約的字節代碼。它不像現在那樣在EVM的虛擬機中執行,而是在一個叫做zkEVM的虛擬機中執行。zkEVM可以保證在字節碼執行后,zkEVM可以向Layer 1網路證明 zkEVM鏈下執行的智能合約確實被執行了。
對于zkEVM,目前的設計思路其實分為兩類。
類似于Matter Labs的Zinc和StarkWare的Cairo語言,包括另一個名為Hermez的項目,最近也提出了zkEVM。他們的核心思想是自己定義一套語言,然后把這個語言翻譯成EVM的語言。也就是說,他們會自己定義一種EVM語言,然后將EVM字節碼翻譯成自己的EVM代碼,本質上在zkEVM中執行自己的字節碼,但是,這種解決方案很可能無法實現100%的兼容性,
另一個新的解決方案是以太坊基金會正在進行的一個項目,被稱為“zkEVM”。
它的思路是直接將Solidity代碼編譯成EVM的字節碼,無需任何翻譯,在zkEVM的虛擬環境中直接執行字節碼,它的虛擬環境做了兩件最重要的事情,一是證明字節碼的執行是正確的,稱為EVM證明;二是證明世界狀態的修改是正確的,
Steve認為“zkEVM”解決方案可能是最終的Layer 2網路,
開發者只需要編寫一套EVM代碼就可以在Layer 1上運行,然后也可以在Layer 2上無縫運行,而這個方案是一個zkRollup,可以保證最終結算的即時性。當然,這個解決方案并沒有那么容易上線,Steve表示,估計再過一年左右應該就能看到一個原型,甚至第一個商業版本,