原文標題:《ThedifferenttypesofZK-EVMs》
原文作者:Vitalik
原文編譯:Blockunicorn
最近有許多「ZK-EVM」項目高調發布公告。Polygon開放了他們的ZK-EVM項目,ZKSync發布了他們的ZKSync2.0計劃,相對較新的Scroll最近也發布了他們的ZK-EVM。還有來自隱私和拓展探索的團隊、NicolasLiochon等人的團隊的持續努力,從EVM到Starkware的zk友好語言Cairo的alpha編譯器,當然有一些項目我會錯過。
所有這些項目的核心目標都是相同的:使用ZK-SNARK技術來對類似以太坊的交易執行進行加密證明,要么讓驗證以太坊鏈本身變得更容易,要么構建與以太坊提供的內容相同但可擴展性更強的zkrollup。但這些項目之間存在著微妙的差異,以及它們在實用性和速度之間的權衡。這篇文章將嘗試描述EVM等價性的不同「類型」的分類,以及嘗試實現每種類型的好處和成本。
概述(圖表形式)
類型1
第一類ZK-EVM力求完全和毫不妥協的等效于以太坊。它們不改變以太坊系統的任何部分,以使生成證明更容易。它們不會取代哈希、狀態樹、事務樹、預編譯或任何其他共識邏輯,無論它有多么外圍。
優勢:完美的兼容性
我們的目標是能夠像現在一樣驗證以太坊區塊,或者至少驗證執行層(因此,信標鏈共識邏輯不包括在內,但包括所有的交易執行和智能合約和賬戶邏輯)。
Vitalik KBW2023演講:相比無狀態存儲解決方案,狀態過期是低優先級選擇:9月5日消息,在韓國區塊鏈周KBW2023上,Vitalik Buterin發表主旨演講稱,客戶端不得不去存儲越來越多的東西,第一個解決方案是停止存儲歷史數據,即采用EIP-444(執行客戶端中的綁定歷史數據),第二個解決方案是將狀態存儲責任轉移到專用節點,第三個解決方案是將舊object移出狀態之外。EIP-444是指客戶端必須停止在p2p層上提供超過一年的歷史headers、bodies以及receipts,客戶端可以在本地刪除(prune)這些歷史數據。[2023/9/5 13:18:15]
類型1:ZK-EVM是我們最終需要的,使以太網第1層本身更具可擴展性。從長遠來看,在類型2或類型3ZK-EVM中測試出的對以太的修改可能會被引入到以太本身,但這樣的重新設計伴隨著它自己的復雜性。
類型1:ZK-EVM也是匯總的理想選擇,因為它們允許匯總重復使用大量基礎設施。例如,EtherumExecution客戶端可以按原樣使用來生成和處理ROLLUP塊(或者至少,一旦實現提取,它們就可以被重新使用,并且該功能可以被重用以支持存放到ROLLUP中的ETH),因此塊資源管理器、塊生產等工具非常容易重用。
劣勢:驗證時間
以太坊最初并不是圍繞zk友好性設計的,所以以太坊協議的許多部分需要進行大量的計算來驗證zk。類型1的目標是完全復制以太坊,所以它沒有辦法緩解這些低效率。目前,以太坊區塊的證明需要許多小時來產生。這種情況可以通過巧妙的工程來大規模并行化驗證器,或者從長遠來看,可以通過ZK-SNARK專用集成電路來緩解。
Vitalik Buterin澄清:我不是“反馬斯克分子”:金色財經報道,以太坊聯合創始人Vitalik Buterin今日在社交媒體上表示,馬斯克接管Twitter的最大的可能不是他會做出任何具體的政策決定,而是讓他的支持者膽大妄為。不過,該言論隨后在社交媒體引發了大量爭議,Vitalik Buterin目前已經做出澄清,他表示:“不知道為什么這么多人在這條推文中讀到我反對馬斯克的潛臺詞,我不是反馬斯克分子(anti-Elon)。[2022/4/30 2:41:37]
構建者是誰?
隱私和擴展探索團隊ZK-EVM正在構建類型1?ZK-EVM。
類型2?(完全等效EVM)
第二類ZK-EVM力求完全等價于EVM,但不完全等價于以太坊。也就是說,它們“從內部”看起來完全像以太坊,但它們在外部有一些不同,特別是在數據結構上,如塊結構和狀態樹。
其目標是與現有應用程序完全兼容,但對以太坊進行一些小的修改,以使開發更容易,并更快地生成證明。
優勢:在虛擬機級實現完全對等
類型2ZK-EVM對保存以太狀態等內容的數據結構進行更改。幸運的是,這些結構是EVM本身不能直接訪問的,因此在Etherum上工作的應用程序幾乎總是在類型2ZK-EVM匯總上工作。您將不能按原樣使用EtherumExecution客戶端,但您可以通過一些修改使用它們,并且您仍然可以使用EVM調試工具和大多數其他開發人員基礎設施。
Vitalik在Synthetix L2上質押了562枚SNX:瀏覽器信息顯示,Vitalik在昨日在Synthetix的Layer2上質押了562枚,價值9700美元的SNX。[2021/1/26 13:33:07]
但也有少數例外。對于驗證歷史以太塊的Merkle證明以驗證關于歷史交易、收據或狀態的聲明的應用程序,出現了一種不兼容性(例如,橋梁有時會這樣做)。用不同的散列函數取代Keccak的ZK-EVM將打破這些證明。然而,我通常建議不要以這種方式構建應用程序,因為未來的以太更改(例如VerkleTrees)甚至在以太本身上也會破壞這樣的應用。對以太坊本身來說,一個更好的替代方案是添加未來可靠的歷史訪問預編譯。
缺點:改進了驗證時間,但仍然很慢
類型2ZK-EVM提供比類型1更快的驗證時間,主要是通過移除依賴于不必要的復雜和不友好的ZK加密的以太堆棧的部分。特別是,它們可能會改變Etherum的Keccak和基于RLP的MerklePatricia樹,可能還會改變區塊和接收結構。類型2ZK-EVM可能會使用不同的哈希函數,例如,Poseidon。另一個自然的修改是修改狀態樹以存儲代碼散列和keccak,從而不再需要驗證散列來處理EXTCODEHASH和EXTCODECOPY操作碼。
這些修改顯著提高了驗證時間,但它們不能解決所有問題。由于EVM固有的低效性和對zk的不友好性,證明EVM原樣的過程仍然很緩慢。一個簡單的例子是內存:因為MLOAD可以讀取任何32字節,包括「未對齊」的塊(其中開始和結束不是32的倍數),MLOAD不能簡單地解釋為讀取一個塊;相反,它可能需要讀取兩個連續的塊,并執行位操作來合并結果。
聲音 | Vitalik Buterin:可伸縮性、隱私性和可用性是以太坊的三大發展重點:據Invest In Blockchain消息,以太坊聯合創始人Vitalik Buterin在與Abra首席執行官Bill Barhydt交流時分享了以太坊的三大發展重點:可伸縮性、隱私性以及可用性。其表示,以太坊網絡需要每秒處理100,000筆交易才能成為未來可行的平臺。此外,Vitalik Buterin還表達自己對比特幣作為一種價值儲存手段將如何發揮作用的看法,其認為如果比特幣的意圖是充當一種貨幣,那么轉向“權益證明”(Proof-of-Stake)會更好。[2019/3/21]
構建者是誰?
Scroll的ZK-EVM項目正朝著2型ZK-EVM的方向發展,正如PolygonHermez一樣。也就是說,這兩個項目都還沒有完成;特別是,許多更復雜的預編譯還沒有實現。因此,目前兩個項目都最好考慮類型3。
類型2.5(與EVM相當,不包括gas費用)
顯著改善最壞情況驗證時間的一種方法是大幅增加EVM中很難證明的特定操作的費用成本。這可能涉及預編譯、KECCAK操作碼,還可能涉及調用約定或訪問內存、存儲或恢復的特定模式。
不斷變化的gas費用成本可能會降低開發人員工具的兼容性,并破壞了一些應用程序,但通常認為這比「更深層次的」EVM更改風險更小。開發人員應該注意,在交易中需要的gas費用不要超過區塊的容量,不要使用硬編碼的gas費用數量進行調用(這已經是很長時間以來對開發人員的標準建議)。
金色財經現場報道 以太坊創始人Vitalik Buterin:驗證節點的位置越多要的算力也越多 :金色財經6月3日現場報道,在今天的以太坊技術及應用大會上,以太坊創始人Vitalik Buterin做了題為“Casper與分片技術最新進展”的主題演講。V神說,驗證節點的責任為:驗證主鏈;驗證2個分片(為了生成區塊,為了確認區塊/交聯);生成分片區塊;生成主鏈的區塊;確認分片區塊并進行交聯。V神指出:你擁有的以太幣越多,你的驗證節點的位置越多,那么需要的算力也越多,這個機制支持協議的多中心化,對擁有較少以太幣的人會公平一些。[2018/6/3]
類型3(幾乎等同于EVM)
第3型ZK-EVM幾乎同等于EVM,但為了實現完全相同,需要做出一些犧牲,以進一步提高驗證時間并使EVM更容易開發。
優點:更容易構建,驗證時間更快
類型3ZK-EVM可能會刪除一些在ZK-EVM實現中特別難實現的功能。在這里,預編譯通常位于列表的頂部;此外,類型3ZK-EVM在處理合約代碼、內存或堆棧的方式上有時也有細微的差異。
缺點:更多的不兼容
類型3ZK-EVM的目標是與大多數應用程序兼容,其余部分只需要最少的重寫。也就是說,有些應用程序需要重寫,要么是因為它們使用了類型3ZK-EVM刪除的預編譯,要么是因為對邊緣情況的微妙依賴,而這些邊緣情況是由EVM以不同的方式處理的。
構建者是誰?
Scroll和Polygon目前形式都是類型3,盡管隨著時間的推移,他們有望改善兼容性。Polygon有一個獨特的設計,他們用ZK驗證自己的內部語言zkASM,并使用zkASM實現解釋ZK-EVM代碼。盡管有這樣的實現細節,我仍然將其稱為真正的Type3ZK-EVM;它仍然可以驗證EVM代碼,只是使用了一些不同的內部邏輯來完成。
今天,沒有ZK-EVM團隊想要成為類型3;類型3只是一個過渡階段,直到添加預編譯的復雜工作完成,項目可以轉移到類型2.5。然而,在未來,類型1或類型2ZK-EVM可能會自愿成為類型3ZK-EVM,方法是添加新的ZK-SNARK友好預編譯器,為開發人員提供低驗證時間和gas費用成本的功能。
類型4(相當于高級語言)
類型4系統的工作方式是采用用高級語言編寫的智能合同源代碼(例如,SOLIDITY、VYPER或某種兩者都編譯為的中間語言),并將其編譯成某種明確設計為ZK-snark友好的語言。
優點:驗證時間非常快
通過不使用ZK來證明每個EVM執行步驟的所有不同部分,并直接從更高級別的代碼開始,可以避免很多開銷。
我在這篇文章中只用一句話描述了這一優點(與下面與兼容性相關的缺點的大項目符號列表相比),但這不應被解釋為價值判斷!直接從高級語言編譯確實可以極大地降低成本,并通過使其更容易成為證明者來幫助分散。
缺點:更多的不兼容
一個用Vyper或Solidity編寫的“正常”應用程序可以被編譯下來,它會「正常工作」,但有一些重要的方面,很多應用程序不是「正常工作」的:
合約在類型4系統中的地址可能不同于它們在EVM中的地址,因為CREATE2協定地址取決于確切的字節碼。這打破了依賴于尚未部署的“反事實合同”、ERC-4337錢包、EIP-2470單例和許多其他應用程序的應用程序。
手寫的EVM字節碼更難使用。為了提高效率,許多應用程序在某些部分使用手寫EVM字節碼。類型4系統可能不支持它,盡管有一些方法可以實現有限的EVM字節碼支持來滿足這些用例,而不需要努力成為一個完整的Type3ZK-EVM。
許多調試基礎設施不能繼續,因為這些基礎設施運行在EVM字節碼上。也就是說,通過更多地從“傳統”高級或中間語言訪問調試基礎設施,這一缺點得到了緩解(例如,LLVM)。
開發人員應該注意這些問題。
構建者是誰?
ZKSync是一個類型4的系統,盡管隨著時間的推移,它可能會增加對EVM字節碼的兼容性。NetherMind的Warp項目正在構建一個從Solidity到Starkware的Cairo編譯器,這將把StarkNet變成事實上的類型4系統。
幾類ZK-EVM的未來
這些類型并不是明確地比其他類型「更好」或「更差」。相反,它們在權衡空間上是不同的點:編碼難度較低的類型與現有基礎設施更兼容,但速度較慢;編碼難度較高的類型與現有基礎設施不太兼容,但速度更快。總體而言,所有這些類型的人都在探索,這對這個領域是健康的。
ZK-EVM可以從類型3開始,決定不包括一些特別難ZK-證明的功能。稍后,他們可以隨著時間的推移添加這些功能,并轉移到類型2。
ZK-EVM可以從類型2開始,然后通過提供在全以太兼容模式下運行或使用可以更快證明的經修改的狀態樹的可能性而變成混合型2/類型1ZK-EVM。Sroll正在考慮朝這個方向發展。
從類型4開始的系統可能會隨著時間的推移而變成類型3,因為后來添加了處理EVM代碼的能力(盡管仍鼓勵開發人員直接從高級語言編譯,以減少費用和驗證時間)。
如果Etherum本身采用其修改以努力變得對ZK更友好,則類型2或類型3ZK-EVM可以成為類型1ZK-EVM。
類型1或類型2的ZK-EVM可以通過添加預編譯器來驗證ZK-SNARK友好語言中的代碼,從而成為類型3?ZK-EVM。這將讓開發人員在以太兼容性和速度之間做出選擇,這將是類型3,因為它打破了完美EVM的同等性,但從實際目的和目的來看,它將具有類型1和類型2的許多好處。主要缺點可能是一些開發人員工具不理解ZK-EVM的定制預編譯,盡管這是可以修復的:開發人員工具可以通過支持包括預編譯的EVM代碼等價實現的配置格式來添加通用預編譯支持。
就我個人而言,我希望隨著時間的推移,所有的東西都會變成類型1,通過改進ZK-EVM和改進以太坊本身來使其更適合ZK-Snark。在這樣的未來,我們將有多個ZK-EVM實現,既可以用于ZKrollups,也可以用于驗證以太坊本身。從理論上講,以太坊沒有必要為L1使用的單個ZK-EVM實現進行標準化;不同的客戶端可以使用不同的證明,因此我們繼續受益于代碼冗余。
然而,我們需要相當長的時間才能達到這樣的未來。與此同時,我們將在擴展以太坊和基于以太坊的ZK-匯總的不同途徑上看到許多創新。
原文鏈接
尊敬的唯客用戶您好! 七夕好禮傳心意天天獎勵送不停活動時間:2022/07/2712:00?至?2022/08/0911:59 活動三:七夕紅包天天發 匯豐:將借助香港科技大學校園環境模擬數碼港.
1900/1/1 0:00:00親愛的用戶: 您好!CoinMark現貨交易區將于2022年8月4日上線BAR、ATM及ASR(ASRomaFanToken).
1900/1/1 0:00:00TobyGilbert自2017年底引入區塊鏈技術及其潛力以來,已經取得了長足的進步,這使他開始探索這一新的增長點.
1900/1/1 0:00:00尊敬的XT.COM用戶:應項目方要求,XT.COM將於2022年8月5日03:00恢復1BCARES/USDT交易.
1900/1/1 0:00:00親愛的ZT用戶: 根據OriginProtocol官方發布的公告,ZT已完成對持有OGN的用戶進行1:1空投OGV,用戶可以在幣幣賬戶查看OGV並進行提幣操作.
1900/1/1 0:00:00LidoFinance更新后的財庫多元化提案投票于8月5日0:00結束,該提案已超過99%的支持率通過,Lido將向DragonflyCapital出售1000萬枚LDO.
1900/1/1 0:00:00