買比特幣 買比特幣
Ctrl+D 買比特幣
ads
首頁 > ICP > Info

LYG:zkEVM 性能哪家強?以太坊 L2 合約部署實測_以太坊

Author:

Time:1900/1/1 0:00:00

作者:Jarrod Watts;編譯:區塊律動BlockBeats

以太坊擴容戰爭中,Optimistic rollups 因其 EVM 高度兼容甚至完全等效,導致該賽道的 Arbitrum 和 Optimism 在開發者采用上占據先天優勢,其 L1 到 L2 無縫移植代碼和豐富的開發工具可快速吸引開發者進駐并在平臺上部署和創建應用。

與之對比,ZK 系則更難一些。其技術上固有的特性導致 ZK rollups 需要定制自己的虛擬機,這意味著項目方需要做更多的工作來「解釋」來自 EVM 的代碼甚至是從頭開發編寫全新代碼。不過,目前包括 Taiko、Polygon、Linea、Scroll 和 ZkSync Era 的多個 ZK rollups 賽道項目均推出了自己的 zkEVM 實現。

作為擴容圣杯,zkEVM 對開發者的合約部署體驗有至關重要的影響,面對面對琳瑯滿目的 ZK rollups 項目,開發者到底該如何選擇?

本文編譯了來自 Jarrod Watts 發布的推文總結,他是 Polygon 的開發者關系工程師,通過在當前熱門的 ZK rollups 項目上部署智能合約(1 個 Solidity 智能合約和一個 NFT 合約),對 Taiko、Polygon、Linea、Scroll 和 ZkSync Era 等項目的 zkEVM 性能進行了實測,比較了其各自的優缺點和 L2 到 L1 到賬時間,為想要嘗試部署二層合約的開發者提供實測指南。

以下為來自 BlockBeats 的原文編譯:

ZK-EVM 是什么以及我們為何需要它?在解讀 ZK-EVM 是什么之前,先看看為何需要 ZK-EVM?

ZK Rollups 為以太坊帶來擴展性和高性能,硬幣的另一面是,ZK Rollups 解決方案與 EVM(以太坊虛擬機)不兼容,這意味著 ZK Rollups 方案僅能支持執行有限的操作,包括轉賬、鑄幣或銷毀,并且還得為用戶開發錢包等工具。

數據:Polygon zkEVM交易筆數突破100萬筆:6月16日消息,Polygon創始人Sandeep Nailwal發推稱,Polygon zkEVM交易筆數已突破100萬筆。另據L2Beat數據顯示,當前Polygon zkEVM鎖倉量達到3456萬美元,創下新高。[2023/6/16 21:41:42]

因此,我們需要與 EVM 兼容的 ZK Rollups,為此,多家公司都開發了自己的 ZK-EVM。

ZK-EVM,即零知識 EVM,它是一種與零知識證明兼容的以太坊虛擬機實現。

ZK-EVM 主要功能是對以太坊 L2(第 2 層)上交易進行批量處理,并將該批量交易的「有效性證明」發回至以太坊 L1 上。通常,zkEVM 可以做以太坊主網的一切。它將 Solidity 或 Vyper 中人類可讀的代碼編譯成字節碼,執行智能合約,并更新區塊鏈狀態。

構建 EVM 兼容的 ZK Rollups 的難點在于,以太坊一開始的設計并沒有考慮到 ZK 友好性。這意味著零知識證明需要大量的資源進行計算。

其中,某些 EVM 操作碼 opcodes 尤為「ZK 不友好」,這導致各家公司最終設計出的 ZK-EVM 產品在 EVM 兼容性上各不相同。

opcodes 、字節碼和 EVM 分別是什么?

科普時間到,操作碼(opcodes)、字節碼和 EVM 分別是什么?

首先,EVM 是以太坊上智能合約的運行環境。以太坊將所謂的「機器狀態」以一種 trie 樹形數據結構進行存儲,每執行完一個區塊中的交易后,該結構發生變化。

EVM 是有確定性的,這意味著在任何特定狀態上執行一組指令都會產生相同的新狀態。

根據以太坊開發者文檔,一個舊的有效狀態(S)+ 一組新的有效交易(T),以太坊將產生一個新的有效輸出狀態 S'

Polygon zkEVM已修復阻礙L1資產橋接至L2的漏洞,沒有資金面臨風險:5月29日消息,Scroll 區塊鏈安全研究員 iczc 發推稱,在 Polygon zkEVM 中發現一個漏洞,并獲得來自 Web3 漏洞賞金平臺 Immunefi L2 漏洞賞金。該漏洞導致從 L1 橋接至 Polygon zkEVM(L2)的資產無法在 L2 中正確認領,從而阻礙了 L1 至 L2 的資產遷移。

iczc 在處理認領交易(claim tx)預執行結果的代碼邏輯中發現,惡意攻擊者可以通過將 Gas 費設置為非零來繞過對認領交易的「isReverted」預執行檢查,使其可以通過發送大量低成本的 claim 對定序器和驗證器進行 DoS 攻擊,從而增加計算開銷。此外,交易不會在執行后立即從池中刪除。狀態從「待定」更新為「選定」,并繼續存在于 PostgreSQL 數據庫中。目前,只有一個可信的定序器能夠從交易池中獲取交易并執行它們。因此,另一個漏洞是通過發送一個失敗的交易來惡意標記任何存款數。這將導致正確使用存款數的 認領交易被拒絕,因為存款數已經被使用。這使得新用戶無法使用 L2 網絡。Polygon zkEVM 團隊通過刪除認領交易的特定 gas 邏輯,修復了這一漏洞,沒有資金面臨風險。[2023/5/29 9:48:40]

你可以將其看作是國際象棋這樣的游戲。以太坊就像是一個棋盤,其中存在不同的游戲狀態,在以太坊中,這種狀態的可能性則是無限的。棋盤游戲都有自己特定的移動規則(對比以太坊上的交易),并且對哪類棋子執行哪些操作也有特定的限制。游戲玩家采取行動(對比的是用戶在以太坊上提交交易),游戲(以太坊)制定和執行規則,從而在每個回合(對應區塊時間)后產生一個新的棋盤(以太坊全局)狀態。

進行以太坊或任何 EVM 兼容的區塊鏈開發,需要使用 Solidity 編寫智能合約。Solidity 是一種高級語言,其目的是人類可讀,這樣開發者就可以專注于編寫代碼,而非寄存器、內存地址、調用堆棧等抽象層面的東西。

0VIX:正在調查疑與 vGHST 有關的情況,已暫停 POS 與 zkEVM 市場:4月28日消息,Polygon 生態項目 0VIX Protocol 發推稱,正在與安全伙伴合作,調查目前似乎與 vGHST 有關的情況。因此,POS 和 zkEVM 市場已經暫停,包括暫停 oToken 的轉移、鑄造與清算。目前只有 POS 受到影響,但 zkEVM 已經暫停以作預防,并可能很快再次啟用。[2023/4/28 14:33:34]

然而,EVM 卻無法讀取 Solidity。相反,它只能理解「字節碼」(bytecode),這是一種二進制、機器可讀的低級代碼。

在 EVM 中,「字節碼」(bytecode)代表的是一系列 EVM「操作碼」(opcodes),操作碼是程序的低級可讀指令,代表的是可在 EVM 中執行的特定操作。

由于 Solidity 這樣的高級語言無法在 EVM 中被直接執行,因此,我們需要一種方法將智能合約代碼從人類可讀的 Solidity 語言 操作碼 字節碼,然后由 EVM 執行,這就是編譯器的工作。

當使用 Remix IDE 編譯器對 Solidity 代碼編譯后,可看到該智能合約轉換成的特定的操作碼,并查看從該操作碼生成的字節碼。

以下是操作碼:

以下是上面操作碼對應的字節碼。

通過將字節碼轉譯成操作碼,從而可獲知字節碼中包含哪些執行指令。

由于對 EVM 中一些特定操作碼進行 ZK 證明的難度較高,導致市面上出現了不同兼容程度的 ZK-EVM,其中,有些 ZK-EVM 和 EVM 操作碼集完全等效,有些對一些 EVM 操作碼進行了部分修改,還有一種則具有完全不同的字節碼。

Polygon和Immutable合作推出以太坊擴展網絡“Immutable zkEVM”:金色財經報道,Polygon和Immutable宣布建立“戰略聯盟”并合作推出一個專為Web3游戲設計的全新以太坊擴展網絡“Immutable zkEVM”,將Polygon zkEVM技術與專為基于區塊鏈的游戲設計的Immutable平臺相結合。據悉,Immutable zkEVM將在2023年第二季度末推出,不過開發人員目前已經可以開始構建軟件開發工具包 (SDK) 。Polygon和Immutable還特別澄清兩個平臺沒有合并,Polygon自己的zkEVM主網網絡將于3月27日推出測試版,而現有的基于StarkEx zk-Rollup技術的Immutable X網絡將會與新的Immutable zkEVM網絡一起運行。(Decrypt)[2023/3/21 13:16:19]

不同類型的 ZK-EVM

由于一開始以太坊設計并沒有考慮到 ZK 友好性,因此理論上,越接近以太坊設計,生成 ZK 證明就越困難且耗時。2022 年 8 月,以太坊創始人 Vitalik 曾發表博文「聽 Vitalik 解讀不同類型 ZK-EVM 的未來」,對不同 ZK-EVM 進行了分類。

在該文中,Vitalik 基于 EVM 兼容性和 ZK 證明生成時間(性能)兩個維度對各類 ZK-EVM 進行了分類,Vitalik 在該圖表中羅列了 四 種(半)類型,目前市面上所有 ZK-EVM 產品都可被囊括其中。

1,第一種類型的 ZK-EVM 與以太坊完全等效,它們不會更改以太坊系統的任何部分,更易于生成證明。在這種系統中,ZK 證明需要很長時間(幾個小時)才能生成。Taiko 屬于該類型的 ZK-EVM。

2,第二種類型完全與 EVM 等效,但更改了一些不同的內部表示形式,比如鏈狀態的存儲方式,以加速 ZK 證明的生成時間。目前,市面上沒有這種類型的 ZK-EVM;不過,Polygon、Linea 和 Scroll 正在朝這個方向努力。

以太坊二層解決方案zkSync 2.0上線zkEVM測試網Alpha版:據官方消息,以太坊擴容項目Matter Labs宣布,以太坊二層解決方案zkSync 2.0上線zkEVM測試網Alpha版,用戶已經可以使用區塊瀏覽器查看zkSync 2.0上的活動。該版本主要成果包括完成zkEVM指令集;用Solidity和Zinc編寫的智能合約現在可以編譯成zkEVM字節碼;完成全節點集成,能夠成功部署和執行編譯后的智能合約。[2021/6/1 23:00:17]

2.5,在類型 2 和類型 3 之間,還存在一個類型 2.5。這種類型完全與 EVM 等效,只不過增加了某類操作的 Gas 成本,以「大幅縮短最壞情況下的證明時間」。目前,市面上沒有這種類型的 ZK-EVM;不過,一個名為 Kakarot 的新 ZK-EVM 項目正在朝這個方面發力。

3,類型 3 幾乎與 EVM 等效,不過等效精確性上做出了一些讓步,以進一步縮短證明時間并簡化 EVM 的開發。目前,Polygon、 Linea 和 Scroll 屬于這一類型。

4,類型 4 相當于 ZK-EVM 的高級語言,這一類 ZK-EVM 將智能合約的源代碼編譯為 ZK-SNARK 友好的語言,這將會帶來更快的證明時間,相應的也會引發不兼容和限制等缺點。目前,zkSync Era 屬于這一類型。

值得注意的是,將有效性證明發回以太坊 L1 所需時間就是用戶將資金轉回 L1 的時間。如果證明生成需要幾個小時,則該用戶在這幾個小時內無法將資金橋接回 L1。

實戰:Taiko、Polygon、Linea、Scroll 和 ZkSync Era 開發評測

理論知識復習完畢,以下是實戰部分。

通過在 Taiko、Polygon、Linea、Scroll 和 ZkSync Era 上各自部署了 Solidity 智能合約和 NFT 合約,測試每個 ZK-EVM 的性能和存在的相應缺陷,作者還給出了可用的開發者資源,評估主要從開發者體驗以及 L2 到 L1 的橋接時間兩個維度進行。

Taiko ZK-EVM

Taiko 屬于類型 1 ZK-EVM,目前處于測試網階段。Taiko 可準確地處理以太坊的所有行為;使用相同的哈希函數、gas 價格和加密算法等。

操作過程:部署了一個簡單的 Solidity 智能合約并通過使用 ThirdWeb 代理部署了一個簡單的 NFT 集合。

類型 1 ZK-EVM 的缺點是,當一切都與以太坊完全相同時(即使在內部),生成證明需要很長時間。這意味著,用戶將 ETH 從 Taiko L2 橋接回以太坊 L1 需要幾個小時的處理時間(如下所示)。

Linea ZK-EVM

Linea 屬于類型 3 ZK-EVM,Linea 目前還不能證明所有操作碼或預編譯;代表的是與以太坊不同的鏈內部狀態,比如使用不同哈希函數。

部署的字節碼與以太坊相同。

此次部署過程幾乎無縫,可輕松部署兩個智能合約,并與其進行交互。這與以太坊的行為相同;可使用現有工具和錢包部署智能合約、與其交互、鑄造 NFT 等。

在撰寫本文時,Linea 還未上線橋接前端界面。因此,只能直接調用橋接的智能合約函數。

Linea 文檔中顯示,ETH 的 L2 到 L1 橋接通常需要大約 15 分鐘,但此次操作案例中大約花了幾個小時。

Polygon ZK-EVM

Polygon ZK-EVM 屬于類型 3 ZK-EVM,自今年 3 月底以來已啟動主網。

Polygon zkEVM 在官方文檔列出了 EVM 和 zkEVM 之間當前的所有差異。

在 Polygon zkEVM 上部署字節碼與以太坊相同,這讓部署智能合約并與其交互變得非常簡單。Vitalik 曾表示,「Polygon zkEVM 具有獨特的設計,他們正在使用 ZK 驗證自己稱為 zkASM 的內部語言」。

Polygon 工程團隊表示,除了改進證明生成和提款時間之外,未來還將盡快完成剩余的預編譯,目標是成為 Vitalik 圖表中的類型 2。

此次部署案例中,zkEVM 主網橋接十分順利;L2 -> L1 橋接過程大約需要 1 小時。

Scroll

Scroll 屬于類型 3 ZK-EVM,目前處于測試網階段。Scroll 也在官方文檔中列出了 ZK-EVM 與以太坊 EVM 之間的差異。

和其他 3 型 ZK-EVM 一樣,此次部署過程幾乎無縫,輕松部署了 Solidity 智能合約和 NFT 集合,并進行交互。從 L2 到 L1 的橋接資金預計需要「10 分鐘到幾個小時」。

ZkSync Era

ZkSync Era 屬于類型 4 ZK-EVM。與其他 ZK-EVM 完全不同,在 ZkSync Era 的 zkEVM 上部署的智能合約字節碼與以太坊不同。

這讓 ZkSync Era 提供一個獨特的功能,即對帳戶抽象(Account abstraction)的原生支持,這將帶來不同的開發者體驗。通常情況下,大多數加密錢包只是標準地址,可以發送和接收資金,并與智能合約互動。有了帳戶抽象,加密錢包是定制化的,可以更復雜的方式設計,提供更廣泛的功能。此外,該 zkEVM 仍允許開發者使用相同的高級語言,例如 Solidity。

雖然 ZkSync Era 的 ZK-EVM 與 EVM 差異較大,但 ZkSync Era 提供了一整套開發者最佳實踐和注意事項。此外,開發者需要對開發流程進行一些小調整,以專門針對 ZkSync Era 進行構建。

比如,在下例中,必須使用自定義 zkSync 擴展安裝和配置 Hardhat 環境,以生成可以部署到 Era ZK-EVM 的字節碼。

編譯生成了和以太坊完全不同的全新字節碼,和以上的 ZK-EVM 生成的字節碼完全不同。

值得注意的是,ThirdWeb 目前已經上線 zkSync Era ,為開發者提供更加方便的部署體驗。

在這次操作中總共部署了兩個智能合約,與它們進行交互,并將資產從 L2 發回 L1。目前,出于安全原因,從 ZkSync Era 主網到以太坊 L1 的提款有 24 小時的延遲。

Kakarot ZkEvm

另一個致力于實現 2.5 類型 ZK-EVM 的是 Kakarot ZkEvm,該項目在今年 6 月獲得了包括 Vitalik Buterin 和 StarkWare 在內的多家機構的融資,Kakarot 計劃于 2023 年晚些時候發布測試網。

結語

對于終端用戶來說,誰贏得比賽并不重要,因為兼容 EVM 的 ZK 解決方案的進展是整個行業的一大勝利。對于各項目方而言,與其說是一場競賽,不如說是探索不同方法來推進整個行業的進步,Vitalik 甚至還有一個「多證明者理論」,其基礎前提是,不同的 Rollup 可以協同工作,從而增強以太坊的整體安全性。

歸根結底,大家都希望以太坊能夠成功。L2 擴容轉型是 Vitalik 認為以太坊需要經歷的三個技術轉型之一。未來將如何發展,我們拭目以待。

區塊律動BlockBeats

媒體專欄

閱讀更多

金色財經

金色薦讀

區塊鏈騎士

金色財經 善歐巴

Block unicorn

Foresight News

深潮TechFlow

Tags:以太坊PolygonPOLYLYG以太坊硬幣ETHDpolygon幣matic幣投資機構PolybiusPolyGod

ICP
XIO:拆解以太坊 ZK 協處理器 Axiom 技術優勢_以太坊交易時間

作者:Mask NetworkETHShanghai 2023 峰會中,Axiom 創始人 Yi Sun 介紹了以太坊的 ZK 協處理器 Axiom 以及其在數據訪問和計算能力方面的重要性.

1900/1/1 0:00:00
BSP:普華永道2023加密對沖基金報告:傳統基金兩極分化 加密基金仍有信心_BSP幣

來源:普華永道《PwC Global Crypto Hedge Fund Report》,編譯:Odaily星球日報 jk 傳統對沖基金投資加密資產的比例下降到 2.

1900/1/1 0:00:00
CODE:安全領域中的集群智慧-——社區驅動的賞金和審計市場_RENA

作者:Ray, IOSG Ventures區塊鏈作為大型的計算機系統,當前的系統復雜程度已經遠遠超過5年以前的水平, 基礎設施模塊化程度更加精細.

1900/1/1 0:00:00
REA:MR頭顯:Vision Pro 虛擬現實行業“法律風險Pro”?_LIT

核心提示 1.VR(虛擬現實)、MR(融合現實)及AR(增強現實)技術均是廣義上的虛擬現實技術,目前虛擬現實技術存在巨大的開發潛力.

1900/1/1 0:00:00
NBS:萬字分析SEC發起加密戰爭的導火索和5種終局_BSPT

作者:Matt Levine  編譯:jk,Odaily星球日報 編者按:這篇文章寫在美國證監會起訴幣安之后;證監會和幣安的根本分歧之一,也是這篇文章里討論的核心論點.

1900/1/1 0:00:00
STH:資本持續入場 比特幣即將迎來震蕩?_區塊鏈域名是什么意思

盡管比特幣暫時創下了31,700美元的年度高點,但比特幣市場仍受制于一個狹窄的價格區間內。多項指標顯示資本正在緩慢地流入比特幣市場,其中部分指標與極度動蕩的 2016 年和 2019-2020年.

1900/1/1 0:00:00
ads