免責聲明:本文旨在傳遞更多市場信息,不構成任何投資建議。文章僅代表作者觀點,不代表MarsBit官方立場。
小編:記得關注哦
來源:Kyle
原文标題:入門指南:zkEVM、EVM 兼容性和 Rollup 最全解讀
ZK Rollups 長期以來一直被認為是以太坊擴容的終極目标。然而,盡管它們對以太坊擴展路線圖很重要,但幾個關鍵點仍然存在廣泛的不确定性:
- ZK Rollup 到底是什麼?
- 特定于應用程序的 Rollup 和通用 Rollup 之間有什麼區别?
- 什麼是 zk-EVM Rollup?像 EVM 等效和 EVM 兼容這樣的術語實際上是什麼意思,它們如何應用于 Rollup?
- ZK Rollup 生态系統的現狀如何,這對生态項目意味着什麼?
如果您是一名希望了解以太坊擴展的下一階段的開發人員,本文将(希望)有所幫助。
ZK Rollup
ZK Rollups 可以通過一個簡單的觀察來實現:像 STARK 或 SNARK 這樣的證明系統允許使用亞線性處理來驗證線性數量的語句(例如,1000 條語句 → 10 次驗證者檢查,10,000 條語句 → 11 次驗證者檢查)。我們可以使用此屬性來創建可大規模擴展的區塊鍊交易處理,如下所示:
- 用戶将他們的資産鎖定在 L1 上的 ZK Rollup 智能合約中
- 用戶将涉及這些資産的交易提交給 L2 排序器,後者将它們收集到有序批次中,并為每個批次生成有效性證明(例如 STARK/SNARK)和聚合狀态更新
- 這個狀态更新和證明被提交到我們的 L1 ZK Rollup 智能合約并被驗證,并用于更新我們的 L1 狀态
- 用戶可以使用這種 L1 狀态(取決于不同的數據可用性機制)來檢索他們的資産,從而實現完全的自我托管和“以太坊安全”
簡化的 ZK Rollup 架構
驗證證明的 gas 成本與被證明的交易數量呈次線性關系,與直接使用 L1 相比,可以實現更大的規模。為了更詳細地了解這個過程,我推薦 Vitalik 的《不完全 Rollup 指南》或 Delphi 新發布的《完整 Rollup 指南》。
特定于應用程序的 Rollup
到目前為止,所有生産級 ZK Rollup 都是我們所說的“特定于應用程序的 Rollup”。在特定于應用程序的 Rollup 中,Rollup 支持由 Rollup 運營方定義的固定數量的“狀态轉換”(例如交易)。這對于超優化常見用例非常有用,例如:
- Loopring—支付和 Swap
- Immutable—NFT 鑄币和交易、遊戲
- dydx—永續交易
特定于應用程序的 Rollup 非常适合擴展特定的、易于理解的問題。如果您作為項目的需求可以通過特定于應用程序的 Rollup 來滿足,那麼您可能會為您的用例獲得更好的性能、更好的用戶體驗和更好的定價,因為它們缺乏泛化性是一個巨大的優勢。例如,在 Immutable,我們能夠通過補貼免費的 NFT 鑄造和通過 NFT 交易收費的轉賬來消除 gas 費用——這種權衡隻有在 rollup 狀态轉換的可預測性質下才有可能。
但是,許多項目希望能夠創建自己的自定義邏輯和智能合約,獨立于 rollup 運營方,這在特定于應用程序的 rollup 中是不可能的。此外,許多 DeFi 項目需要“可組合性”,或與其他項目進行原子交互的能力(例如,許多 DeFi 項目使用 Uniswap 作為價格預言機)。隻有當您的 rollup 不僅支持自定義代碼,而且支持任何用戶可以部署的本機智能合約時,組合性才是可能的。為了實現這一點,我們需要修改 ZK Rollup 的架構以概括我們的每個組件。
這種增加的靈活性有幾個妥協:性能大大降低,rollup 參數的可定制性降低以及費用更高。然而,最大的妥協是根本沒有通用 ZK Rollups 的實現,當然也沒有能夠生産級的實現。但這種情況開始改變:
- StarkNet 目前已經在主網上運行(盡管處于有限的 Alpha 階段)
- 3 個獨立的項目(zkSync、Polygon Hermez/zkEVM 和 Scroll)都在 ETH CC 2022 上宣布它們将成為第一個進入主網的“zkEVM”
這些最新的公告值得深入研究,因為這些團隊不僅宣布了通用 Rollup,他們還宣布了“zkEVM”。随之而來的是推特上許多圍繞“EVM 兼容性”、“EVM 等效性”、“真正的 zkEVM”以及哪種方法更好的争論。對于應用開發人員來說,這些對話通常是噪音——因此本博客的目的是分解這些術語、設計決策和理念,并解釋它們對開發人員的實際影響。
讓我們從頭開始:什麼是 EVM?
了解 EVM
以太坊虛拟機(EVM)是執行以太坊交易的運行時環境,最初在以太坊黃皮書中定義,後來被一系列以太坊改進提案(EIP)修改。它由以下部分組成:
- 用于執行程序的标準“機器”,每個交易具有易失性“内存”,交易可以寫入的持久“存儲”和操作“堆棧”
- 在這台機器中執行狀态轉換的約 140 個定價“操作碼”
我們的虛拟機的一些示例操作碼:
- 堆棧操作 - PUSH1(向堆棧添加一些内容)
- 算術運算 - ADD(加數字),SUBTRACT
- 狀态操作——SSTORE(存儲數據),SLOAD(加載數據)
- 交易操作——CALLDATA、BLOCKNUMBER(返回有關當前執行事務的信息)
一個 EVM 程序隻是一系列這些操作碼和參數。當這些程序被表示為一個連續的代碼塊時,我們将結果稱為“字節碼”(通常表示為一個長的十六進制字符串)。
通過将大量這些操作碼組合成一個執行序列,我們可以創建任意程序。以太坊使用自定義虛拟機,而不是調整現有的 VM,因為它有獨特的需求:
- 每個操作都必須有“成本”以防止濫用(因為所有節點都運行所有交易)
- 每個操作都必須是确定性的(因為所有節點必須在交易執行後就狀态達成一緻)
- 我們需要特定于區塊鍊的概念(例如智能合約、交易)
- 一些複雜的操作必須是原語(例如密碼學)
- 交易必須是在沙盒裡的,沒有 I/O 或外部狀态訪問
EVM 是第一個圖靈完備的區塊鍊 VM,于 2015 年發布。它有一些設計限制,但其巨大的先發優勢和随後的廣泛采用為以太坊創造了巨大的差異化——它是迄今為止最久經考驗的區塊鍊虛拟機。它是整個領域的智能合約基礎設施。
由于以太坊的主導地位,很多後來的區塊鍊都直接采用了這種運行時環境。例如,Polygon 和 BNBChain 是以太坊的直接分叉,因此使用 EVM。值得注意的是,EVM 并非一成不變,并且在 EIP1559 等升級中經常被修改。由于其他區塊鍊需要時間進行更新,或者在多個地方與以太坊有所不同,它們通常運行着稍微過時的 EVM 版本,并且難以跟上變化的步伐——這一事實可能會讓以太坊的核心開發人員感到沮喪。
以太坊兼容性
然而,人們所說的“EVM 鍊”通常不僅僅隻是鏡像這個運行時環境。有幾個主要規範始于以太坊并已成為事實上的全球标準:
- Solidity(一種編譯成 EVM 字節碼的高級語言)
- 以太坊的 JSON-RPC 客戶端 API(與以太坊節點交互的規範)
- ERC20/ERC721(以太坊代币标準)
- ethers.JS(一個與以太坊接口的網絡庫)
- 以太坊的密碼學(例如 keccak256 作為哈希函數,對 secp256 k1 的 ECDSA 簽名)
從技術上講,您的鍊可以具有一個 EVM 運行時但不支持上述部分或全部标準。然而,遵守這些标準使得在你的新鍊上使用以太坊工具變得更加容易。一個很好的例子是 Polygon,它除了使用上述所有工具外,還能夠運行 Etherscan (Polygonscan) 的分叉版本,使用 Hardhat 等以太坊開發工具,并支持 Metamask 等錢包。Nansen 和 Dune 等工具最初都針對以太坊,因此添加對新 EVM 區塊鍊的支持。新錢包,新 NFT 市場——如果以太坊界面和你的鍊界面之間的唯一區别是鍊 ID,那麼你可能是第一個也是最容易添加的。話雖如此,這些工具是為以太坊構建的——一旦你開始修改你的區塊鍊(例如更大的區塊,更快的區塊時間),你就有破壞它們的風險。沒有完美的兼容性。
盡管如此,針對以太坊規範的工具和應用程序的數量為新的區塊鍊僅反映以太坊标準創造了巨大的動力。任何不支持上述規範的區塊鍊在開發人員工具方面都會自動落後,并且随着 EVM 生态系統的發展,有進一步落後的風險。
我的信念是,“EVM 兼容”一詞實際上不足以描述這裡描述的網絡效應——我們實際描述的是“以太坊兼容性”,并且遠遠超出了智能合約執行環境,延伸到了整個以太坊生态系統和工具集。
為了解決這個問題,像 Solana 這樣的非 EVM 區塊鍊必須創建完全平行的生态系統,這會降低它們的速度,并且更難吸引現有的開發人員。然而,不需要遵守這些标準确實使非 EVM 區塊鍊能夠對以太坊工具集進行更根本的更改,從而更積極地與以太坊區分開來。創建 EVM 區塊鍊非常簡單——但為什麼有人會使用你的區塊鍊而不是數百個其他“快速 EVM 區塊鍊”之一。如果你能克服需要建立一個成功的平行鍊和生态系統的困難,Solana 已經證明:a)你可以吸引出色的原生應用程序(例如 MagicEden、Phantom)和 b)如果商業激勵足夠,源自 EVM 的項目仍将支持您(例如 Opensea 添加 Solana 支持)。
ZK-EVM
公共通用 rollup 都有一個共同目标:讓開發人員和用戶盡快生成網絡效應。這需要結合創造最高性能的 rollup 技術、擁有最好的 BD 團隊以及進行最早或最有效的營銷。但是,所有 rollup 團隊(出于上述原因)都非常關注:
将現有的以太坊合約(和開發人員)遷移到他們的 rollup 中
受到現有 EVM 工具(例如庫、錢包、市場等)的支持
實現這兩個目标的最簡單方法是創建一個“zkEVM”:一個通用 rollup,将 EVM 作為其智能合約引擎運行,并保持與以太坊生态系統通用接口的兼容性,如上所述。
然而,這并不像分叉 Geth 那樣容易,就像我們從頭開始創建新的 L1 區塊鍊時那樣容易。我們的目标是運行 EVM 字節碼——但 ZK 證明要求将它們證明的所有計算語句轉換為一種非常特定的格式——一種“代數電路”,然後可以将其編譯成 STARK 或 SNARK。為了快速了解“電路(circuit)”,這裡有一個例子(使用更直觀的布爾電路作為算術電路的特例)。在基于這個簡單電路的 zkSNARK 系統中,我們的證明者希望讓驗證者相信他們知道輸入(
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!