原文作者:Linea 原文來源:mirror
我們將為所有讀者解析zkEVMs 的基礎知識,無論他們對web3 的熟悉程度如何。
零知識以太坊虛擬機(zkEVMs)被視為以太坊實現無限擴展性計劃的關鍵組成部分。它們大大簡化了開發人員的構建過程,並提供了一個低成本且安全的創新環境。
然而,要完全理解zkEVM 是什麼以及它在以太坊下一階段發展中的重要性往往很困難。在這裡,我們將以易於理解的方式為你解析zkEVMs 的基礎知識,無論你對web3 的熟悉程度如何。
我們將從zkEVMs 的高級概述開始,了解支撐這項新興、令人興奮的技術的各個組成部分。然後我們將討論為什麼zkEVMs 對於擴展web3 和推動其採用至關重要。最後,我們將把Linea 與以太坊生態系統中的其他zkEVM 項目進行比較。
ELI5:WTF 是zkEVM?
zkEVM 是一個虛擬機,它執行智能合約並使用零知識證明(也稱為“有效性證明”)證明執行的正確性。 zkEVMs 重現了以太坊設計的一些方面,因此為開發人員和用戶提供了“類以太坊”的體驗。當與rollup 技術結合時,zkEVM 為去中心化應用程序(dapps)及其用戶提供了無與倫比的安全性和可擴展性。
我們在這裡不會深入解釋零知識證明,但你可以閱讀《零知識證明:STARKs vs SNARKs》以獲取全面的介紹。雖然有不同類型的有效性證明,但它們都有一個共同的特性:你可以證明對某些信息(例如,“我擁有5個ETH”)的了解,而無需揭示底層信息(例如,顯示你的錢包餘額)。
最初,零知識證明主要用於增強web3 應用程序的隱私性——例如ZCash(私人支付)、MACI(匿名鏈上投票)和Aztec(私人智能合約)。但研究人員很快找到了有效性證明的更有吸引力的用例:可驗證的計算。
可驗證計算方案使“弱”計算機能夠將計算外包給功能更強大的、儘管不受信任的客戶端計算機,並驗證結果的正確性。在這裡,客戶端返回結果以及用於確認正確執行計算的證明。重要的是,驗證證明所需的努力應該小於從頭開始執行計算。
ZkEVMs 使用零知識證明來證明程序正確執行,將可驗證計算帶入公共區塊鏈領域。在這種情況下,可驗證計算對於提高區塊鏈的安全性和可擴展性非常有用。
可以將zkEVM 視為一台可以執行任意操作的計算機,例如將兩個整數相加(“func(a + b = c)”)。用戶將輸入傳遞給程序(例如,“a = 3”和“b = 2”),全節點在zkEVM 中使用這些輸入執行程序以產生輸出(“c = 5”)。
與此同時,程序的執行跟踪被編譯成用於證明的“算術電路”(即,翻譯成一系列數學陳述)。這允許全節點生成一個零知識證明,以確認程序正確執行。在這種情況下,證明電路驗證有關程序執行的詳細信息,例如:
-
誰調用了程序的函數?
-
調用者是否向程序傳遞了正確的輸入?
-
執行是否使用了正確的程序?
-
最終的輸出是否是使用提供的輸入正確執行程序的結果?
由於證明電路驗證了執行的計算完整性,網絡上的其他節點不需要重新執行程序以驗證建議的輸出。節點只需要檢查零知識證明以確認zkEVM 的新狀態(執行程序後)是正確的。
在一個“不信任,驗證”系統中,驗證者可能要求向證明電路提供公開的輸入,包括程序的初始和最終狀態以及傳遞給函數的參數(或對這些值的加密承諾)。這確保了SNARK 證明所驗證的計算使用正確的輸入值進行,並得出了正確的輸出。
但這主要是為了冗餘:電路邏輯的約束防止了證明者創建假證明(除非證明電路被破壞)。實際上,validiums 是將所有數據離鏈發布同時保持高安全保障的zkEVM 鏈。
這個系統的關鍵好處是什麼?驗證程序執行的SNARK(簡潔的非交互式知識論證)證明消耗的資源顯著少於原始計算。 ZkEVM 節點不必重新執行每個交易以確認其有效性,極大地提高了網絡以更快的速度處理更多交易的能力。
以太坊的zkEVM 擴展解決方案
我們也可以將可驗證計算擴展到另一個區塊鏈的交易吞吐量擴展。在這種情況下,“資源受限”的區塊鏈可以將計算卸載到一個次級的、高吞吐量的網絡,同時保留驗證交易是否正確執行的能力。零知識rollups,一個用於以太坊(使用zkEVM 作為運行時環境)的擴展解決方案,就基於這個想法。
Zk-rollups 通過在一個單獨的環境(描述為第2層)中執行交易,從而減輕了以太坊的計算負載。在一定的時間間隔內,rollup 的操作員會將許多用戶交易聚合成一批,並提交給以太坊上的智能合約。它還提交一個有效性證明,確認鏈下交易正確執行,新的狀態是正確的。
但我們為什麼需要擴展以太坊呢?
正如你所知,以太坊虛擬機(EVM)是一個分佈式計算環境(又名“世界計算機”),它支持dapps。 EVM 提供了許多好處,如安全性和去中心化,但在過程中犧牲了可擴展性。簡而言之,EVM 是一個非常安全的計算機,但它的速度很慢,使用成本很高。
多年來,“EVM兼容”的側鍊和rollup已成為解決以太坊可擴展性問題的最受歡迎的解決方案。這些區塊鏈實現了以太坊執行層(EVM)的分叉版本,但對其進行了優化,以實現更快的執行和更低的每筆交易成本。
有人會說這些解決方案並沒有直接擴展以太坊,但它們確實使開發者能夠在可擴展的鏈下層運行以太坊dapp,並允許用戶以少量以太坊成本使用這些應用。以太坊也會(間接地)受益於用戶轉移到其他區塊鏈,減輕底層擁堵並降低現有用戶的Gas價格。
這並不意味著所有擴展解決方案都同樣優秀。例如,側鏈不受以太坊保護,因此用戶資金的安全取決於側鏈驗證者的誠實。在最壞的情況下,一個腐敗的驗證者集合可以輕易地竊取存放在橋上的資金,或者阻止用戶提取資金(通過審查交易)。
Rollup 在以太坊上結算交易,繼承了其安全性和去中心化特性;儘管如此,不同的rollup 構造有不同程度的安全性。 “樂觀rollup”假設提交到以太坊L1的交易批次是有效的,並依賴激勵的一方(“觀察者”)通過欺詐證明質疑無效的執行。然而,這種方法存在一些問題:
誠實假設:為了保持Optimistic Rollup的安全性,必須有人可以驗證rollup 交易並質疑無效的操作。 Optimistic Rollup 假設存在誠實的驗證者(“1-of-N安全模型”),在某些情況下,這個假設可能無法成立。
提款延遲:由於觀察者需要時間提出質疑,Optimistic Rollup 對提款施加了延遲。這種延遲(在一到兩週之間)可能會對在L2上進行交易的用戶的體驗產生負面影響。
增加交易費用:Optimistic Rollup不信任排序器以避免數據扣留攻擊,因此在以太坊上發布完整的交易數據以實現rollup 區塊的去中心化驗證。這提高了安全性,但也增加了交易費用,因為將數據存儲在鏈上的成本轉嫁給了用戶。
相比之下,運行zkEVM 的通用zk-rollups 被認為是”擴展的聖杯”,因為它們提供了你期望的以太坊擴展解決方案的好處,而不犧牲安全性或引入信任假設。我們在下面更詳細地討論了zkEVM 的好處:
EVM兼容性
ZkEVMs 完全兼容用於在以太坊虛擬機中運行的智能合約。此外,像Linea 這樣的二型zkEVM 與EVM 基礎設施(包括開發者工具,區塊瀏覽器和錢包)無縫集成。這意味著什麼? Web3 開發者可以在不產生切換成本的情況下將現有的以太坊應用遷移到L2。更好的是,你可以使用熟悉的開發堆棧從頭開始構建新的應用——例如,zkEVMs 可以執行用Solidity 編寫的智能合約。
安全性
zkEVM 的安全保證很簡單:零知識證明保證區塊生產者不能執行無效的狀態轉換。也就是說,只要關於底層證明電路的加密假設——比如偽造假證明的不可能性——成立。簡而言之,zkEVM 讓你”信任數學,而不是驗證者”。
現在,有效性證明確保了安全性,但並不保證活性和數據可用性——這就是為什麼zkEVM 區塊鏈依賴以太坊來強制這些安全性質。我們不會在這裡深入技術細節,但這種安排提供了以下保證:
-
用戶總是可以通過向以太坊上的L2 合約發送退出交易,從zk-rollup 中提取資金。
-
惡意的rollup 操作員不能凍結rollup 或隱藏區塊鏈的狀態;只有當數據在鏈上發佈時,以太坊網絡才會確認L2 區塊。這確保了用戶始終能夠訪問狀態數據,並且誠實的節點可以重構L2 的最後狀態並產生新的區塊。
可擴展性
ZkEVM 設計為具有高度可擴展性。雖然EVM 要求每個網絡參與者在達成共識之前重新執行交易,但zkEVM 使用的是非交互式證明。這提高了吞吐量,減少了延遲,因為驗證L2 區塊的證明比重新執行新提議的區塊中的每個交易更快。
但等等,還有更多!通過使用“遞歸證明”,ZkEVM 可以進一步提高吞吐量。遞歸證明是通過合併多個有效性證明生成的,這樣,驗證單個證明也就驗證了所有底層證明的有效性。
當提交給以太坊L1 上的證明驗證合約時,一個遞歸證明允許同時確定幾個L2 區塊。這顯著減少了L2 順序器在提交證明到L1 的基礎上逐塊生成區塊的時間。
改進的用戶體驗
在加密貨幣的世界中,當一個交易或區塊被區塊鍊網絡中的大多數人接受並且不能被逆轉(除非花費大量資源)時,它被“確定”了。確定性是比較rollup 解決方案的一個好的啟示方法,因為它決定了用戶必須等待多久才能提取存入rollup 的資金。
你會經常聽到zkEVM 有“快速確定性”。這只是意味著以太坊在zkEVM rollup 上進行的交易(包括提現操作)比在普通的樂觀rollup 上完成的時間更短。這有重大的影響,如在去中心化金融(DeFi)行業的投資者可以享受更好的流動性。
降低成本
ZkEVM rollup 可以選擇只在以太坊L1 上發布對其最終狀態的承諾,從而減少鏈上存儲成本。由於有效性證明保證了zkEVM 新狀態的正確性,因此順序器不必發布所有數據(包括未壓縮的交易輸入)以重新執行狀態轉換更改。相比之下,樂觀rollup 必須在L1 上發布原始交易數據,以便誠實的觀察者可以獨立計算L2 的新狀態,並可能質疑無效的轉換。
你可以用zkEVM 做什麼?
DeFi:由於從zkEVM rollup 提現的延遲較低,交易員和投資者將享受更好的資本效率和更多的流動性獲取途徑。而且,由於不需要支付流動性提供商更快出可擴展性的成本節省將呈指數級增長。
NFT:憑藉極低的燃氣費和高TPS(每秒交易量),zkEVM鍊是大規模鑄造和交易NFT的理想選擇。此外,當將NFT轉移到以太坊L1時,您將獲得更好的用戶體驗,因為提款將立即得到最終確定(一旦鏈上驗證器合約接受提交的證明)。
遊戲:對於處理大量交易的鏈上游戲應用程序,zkEVM是理想的選擇。除了前面描述的可擴展性優勢之外,鏈上玩家每筆交易的成本更低——這歸功於zkEVM的數據壓縮能力。
企業應用:企業可以利用zkEVM對通用計算的支持,為用戶開發可擴展的應用程序。我們還應該注意,zkEVM Rollup很適合引導高度安全的“第3層”區塊鏈。有了L3基礎設施,機構可以構建可定制以提供獨特功能的應用特定區塊鏈。一個好的例子是一個validium,它將有效性證明發佈到zkEVM區塊鏈(最終在以太坊L1上進行驗證),但將數據存儲在鏈下,以保護用戶的隱私。
支付:zkEVM優化了規模(也就是說,這個去中心化的計算機非常快速,使用成本極低),因此非常適合進行點對點支付和進行機構結算。您還擁有強大的交易最終確定性保證,這是由以太坊的高度分散網絡(50萬+驗證器並且還在增加)直接執行的。
Linea:放諸四海而皆準的zkEVM
Linea是一個等同於EVM的zk-rollup,其執行引擎是Type 2 zkEVM。 Linea由在證明和可擴展性技術方面有深厚經驗的團隊開發,旨在以一部分成本將以太坊體驗帶給開發者和用戶。
作為一個Type 2 zkEVM,Linea優先考慮與所有以太坊應用程序和基礎設施的兼容性。分析不同的zkEVM設計超出了我們的討論範圍(Vitalk的zkEVM類型更詳細地討論了這個話題);
然而,您可以期望從使用Linea zkEVM獲得以下好處:
-
與EVM錢包(MetaMask),開發者工具(Truffle,Remix,Brownie,Foundry,Hardhat等)以及像節點提供商(Infura)和執行客戶端(Besu)這樣的關鍵基礎設施無縫集成
-
與以太坊的體驗幾乎完全相同——例如,Linea使用ETH進行燃氣費支付
-
具備以太坊擴展解決方案的所有優點(低費用,近乎即時確認,高TPS)而沒有競爭項目固有的任何缺點(最終確定性延遲,高成本和糟糕的安全性)
-
為您提供等同於EVM的基礎設施,以便解鎖新的用例和構建新穎的應用程序,同時受益於以太坊的安全性,去中心化和開發者體驗
Linea的公共測試網已經上線,自最初公告以來,我們已經記錄了令人難以置信的參與水平。現在,您也可以加入其他人,共同構建Linea的未來:
-
您是一位希望與Linea一起構建下一代可擴展dapps的開發者嗎?通過參與Linea Voyage並幫助我們對網絡進行壓力測試來開始您的旅程。您還可以查看開發者快速入門,文檔和教程。
-
您是一位對試用Linea感興趣的用戶嗎?從Goerli水龍頭獲取一些ETH,將資金橋接到L2,然後開始在Linea測試網上使用dapps。為了讓事情變得更容易,Linea是MetaMask的默認網絡,所以您不必手動導入新網絡。