來源:鴕鳥區塊鏈

原標題:一文深繪以太坊Layer2未來藍圖

從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表示,估計再過一年左右應該就能看到一個原型,甚至第一個商業版本。