前情回顧:
小學生也能看懂的零知識證明科普(1)零知識證明與交互式證明 | ZKP101
小學生也能看懂的零知識證明科普(2)虛擬機與非交互式證明 | ZKP101
小學生也能看懂的零知識證明科普(3)zkSNARK、zkSTARK 都是什么?| ZKP101
小學生也能看懂的零知識證明科普(4):什么zk-Rollup?
上一篇文章中,我們介紹了 zk-Rollup 相關(guān)原理。
Rollup 內(nèi)的交易,隔一段時間統(tǒng)一壓縮,提交到以太坊主網(wǎng),相當于這段時間內(nèi),Rollup 上所有交易者共同承擔了原本要交給以太坊主網(wǎng)的 Gas,類似“AA” Gas。再由以太坊主網(wǎng)提供結(jié)算、驗證交易數(shù)據(jù)。2/ zk-Rollup 不需要將全部交易數(shù)據(jù)發(fā)布至以太坊主網(wǎng),僅發(fā)布狀態(tài)差異(類似用戶賬戶狀態(tài)變化)和有效性證明,Gas 更低。使用 ZK 完備性和合理性,達到壓縮計算目的。用戶在 zk-Rollup 交易信息仍是透明可查詢的。而 Manta 是基于 ZK 的可編程隱私公鏈,除前兩個特性外,還重點應(yīng)用了零知識性,讓鏈上交易隱私化。3/ 本質(zhì)上,Optimistic Rollup 安全來自經(jīng)濟博弈,作惡者要考慮損失的成本,挑戰(zhàn)者的動機由經(jīng)濟利益驅(qū)動。zk-Rollup 安全來自于密碼學,用密碼學手段驗證證明,可以做到去信任化。上篇文章中,我們也提到了 zk-Rollup 短期內(nèi)受制于 zkEVM 的發(fā)展。本篇,我們會嘗試理清 zkEVM 相關(guān)概念。zkEVM 相關(guān)技術(shù)術(shù)語比較多,看起來較為復雜,但只要弄清最核心目的,圍繞核心目的去理解,就會清晰很多。本系列將試圖用通俗的舉例和語言,幫助大家理解復雜概念。本系列非學術(shù)論述,舉例只為幫助大家通俗理解。如有錯誤,歡迎指正。更嚴謹?shù)谋硎觯瑲g迎大家查看專業(yè)論文學習。以太坊虛擬機 EVM,是以太坊賬戶體系和智能合約運行的環(huán)境,是以太坊從一個區(qū)塊到另一個區(qū)塊計算新的、有效狀態(tài)的規(guī)則。狀態(tài),是以太坊重要概念之一。狀態(tài)是以太坊當前應(yīng)用的梅克爾帕特里夏樹(Merkle Patricia Tree)數(shù)據(jù)結(jié)構(gòu),可讓我們把交易信息從當前區(qū)塊溯源到創(chuàng)世區(qū)塊。所有參與維護以太坊的節(jié)點,所謂的共識,甚至是以太坊本身存在的意義,就是為了保證狀態(tài)連續(xù)、統(tǒng)一,讓每個節(jié)點看到的當前狀態(tài)一致。EVM就是維護一致的規(guī)則和環(huán)境。若某區(qū)塊鏈是 EVM 兼容的,簡單理解,以太坊現(xiàn)有開發(fā)者,可在稍加改動后,將以太坊上現(xiàn)有 DApp 直接“復制粘貼”到該鏈上。EVM 兼容,可讓開發(fā)者使用熟悉的 Solidity 語言編寫智能合約,且能便捷地將以太坊上現(xiàn)有智能合約部署至該鏈。對用戶來說,EVM 兼容鏈地址與以太坊相同,支持 Metamask 等主流錢包,操作習慣相同,Gas更低,Tps 更高。當前,無論是地址數(shù)量、現(xiàn)有開發(fā)者數(shù)量、新開發(fā)者的選擇還是流動性,以太坊都處于領(lǐng)先地位。所以,以太坊開發(fā)語言 Solidity 和 EVM 虛擬機實際已成為區(qū)塊鏈標準。在上一輪牛市 DeFi 之夏與 NFT、GameFi 熱潮中,EVM 兼容鏈承接了以太坊外溢價值,發(fā)展出以 BNB 鏈、Avalanche C網(wǎng)、Polygon、Fantom 等為代表的 EVM 生態(tài)。當前,以 Arbitrum、Optimism 為代表的 Optimistic Rollup 以 EVM 兼容性逐漸在 Rollup 競爭中取得優(yōu)勢。而 zk-Rollup 需要解決 EVM 兼容問題,其實就是讓零知識證明(ZK)這項技術(shù),與以太坊 EVM 更好地,在兼容以太坊現(xiàn)有基礎(chǔ)設(shè)施的前提下,提高 ZK 證明生成和驗證效率。zk-Rollup EVM 兼容,之所以成為一個需要解決的問題,原因是以太坊在創(chuàng)立之初,并未考慮兼容 ZK 技術(shù)。用 EVM 直接生成、驗證 ZK 證明的速度極慢,以太坊目前情況,可能要幾個小時。zk-Rollup 需要在 EVM 兼容與 ZK 效率之間,做平衡。關(guān)于 zkEVM 分類,Vitalik 曾在博客里,進行過詳細劃分。下圖是 Vitalik 在原文中插入的圖片。橫軸為 ZK 性能效率,縱軸為與以太坊的兼容度。可以看到,類型1兼容性最強,但 ZK 性能最差。而類型4,ZK 性能最強,但兼容性最差。若要嚴謹些,這里需要區(qū)分“等效”與“兼容”。簡單理解,比如我上一臺電腦是 Apple 系統(tǒng),新電腦仍使用該系統(tǒng)??芍苯油ㄟ^ Apple Cloud 恢復先前的文件和設(shè)置,這可以理解成“等效”。若新電腦換成了 Windows 系統(tǒng),原有的文件需要通過云盤下載,轉(zhuǎn)換格式恢復,這可以理解為“兼容”。類型1,共識級別等效:與以太坊完全等效的 zkEVM在共識級別上與以太坊等效,該類型的 zkEVM 鏈狀態(tài)、事物等與以太坊完全相同,可直接使用以太坊執(zhí)行客戶端,與以太坊相互驗證區(qū)塊。所以,該類型 zkEVM,也被稱為“Enshrined Rollups”。類型1 zkEVM 使以太坊本身更具可擴展性,在其上的一些探索,可直接引入以太坊主網(wǎng)。缺點是,ZK 證明效率極差,需要大量計算驗證 ZK。解決辦法是,未來可以通過大規(guī)模并行化驗證器,或通過 zk-SNARK 專用集成電路緩解。理論上,一個 ZK 效率高的類型1 zkEVM,是 zkEVM 未來最理想的形態(tài)。目前,構(gòu)建或探索該類型的主要團隊有 AppliedZKP、Taiko。類型2,字節(jié)碼級別等效:與 EVM 完全等效不完全等效以太坊,但完全等效 EVM。與以太坊在數(shù)據(jù)結(jié)構(gòu),比如區(qū)塊結(jié)構(gòu)和狀態(tài)樹有所不同,刪除了部分對 ZK 不友好的堆棧。完全兼容以太坊現(xiàn)有 DApp、調(diào)試工具和開發(fā)人員基礎(chǔ)設(shè)施。未來的 Scroll、Polygon Hermez 正在向這個方向努力。在類型2的優(yōu)勢上多了一點,Gas 費用低。類型3,字節(jié)碼級別等效:幾乎等效 EVM在類型2基礎(chǔ)上,進一步犧牲兼容性,提高 ZK 效率。刪除在 zkEVM 上較難實現(xiàn)的功能,比如預(yù)編譯 Compile,使得一些需要該功能的 DApp,部分代碼需要重新編寫。一般認為目前的 Scroll 和 Polygon Hermez 處于該階段。類型4,開發(fā)語言級別等效:高級語言等效 EVM目前代表項目有 StarkWare 和 zkSync。zkEVM類型部分較難理解,技術(shù)名詞多、枯燥,項目方、部分開發(fā)者與分析師之間,在定義方面存在分歧,觀點不一致,造成不同內(nèi)容間存在出入。但大家不要過分陷入技術(shù)概念中。zkEVM 實現(xiàn)目的,目前最主要的,仍是方便以太坊現(xiàn)有開發(fā)者,便于以太坊現(xiàn)有項目部署,以此增加自身生態(tài)項目,實現(xiàn)網(wǎng)絡(luò)效應(yīng)。類型1到4,是各個 zkEVM 項目對于兼容性和 ZK 效率不同的取舍。zkEVM 是 ZK + 以太坊虛擬機 EVM,而 zkVM 則是 ZK + 其他生態(tài)虛擬機 VM。問題是,ZK 還有沒有可能兼容更大的生態(tài),比如 Web2 ?這就要說到 zkWASM(zk-WebAssembly) 以及 Manta Network 參與發(fā)起的 ZPrize 計劃。WASM(WebAssembly)誕生于傳統(tǒng)互聯(lián)網(wǎng),由萬維網(wǎng)聯(lián)盟(W3C)創(chuàng)建,是可在 Web 中運行的語言格式,具備體積小、性能高、可移植性強等特點。幾乎現(xiàn)有全部瀏覽器都支持 WASM,包括谷歌 Chrome、蘋果 Safari、微軟 Edge、Firefox 等。更直觀地說,WASM 可以讓較為復雜的應(yīng)用,兼容各個瀏覽器,且流暢運行。例如,Google Earth(谷歌地球)可以在 Firefox 瀏覽器上流暢運行(注意“流暢”),WASM 起到了關(guān)鍵作用。跨平臺 OpenGL 圖形引擎 Magnum、知名 HTML5 游戲引擎 Egret Engine 等等,也都利用 WASM 兼容瀏覽器版本,并提升性能。所以,如果使用 WASM 編寫 Web3 錢包,理論上是可以在 Safari 等不同瀏覽器上使用 Metamask 這類錢包應(yīng)用的。而且,可以讓 Web3 領(lǐng)域,一些使用 Web 作為前端的 DApp,更流暢地跨多個瀏覽器部署。可以說,WASM 生態(tài)系統(tǒng)是一個融合 Web2 的、比當前 Web3 生態(tài)更龐大的系統(tǒng)。而 zk-WASM,是通過使用 ZK 電路編寫 WASM,將 ZK 與 WASM 優(yōu)點結(jié)合,使 WASM 具有去信任化、去中心化等 Web3 特點。將 WASM 與 ZK 相結(jié)合的意義在于,讓 Web3 應(yīng)用更易用、更流暢,讓已經(jīng)對傳統(tǒng)互聯(lián)網(wǎng)瀏覽器使用習慣了的用戶,可以更容易地接觸到 Web3,進入Web3,真正讓 Web3 觸及1億,乃至10億用戶。ZPrize 是 Manta Network 聯(lián)合21家業(yè)內(nèi)公司與機構(gòu)聯(lián)合發(fā)起的、旨在推動 ZK 技術(shù)大規(guī)模采用的競賽計劃,得到了以太坊基金會、AMD、Matter Labs(zkSync 開發(fā)團隊)其中,Manta Network 與 Polkadot Pioneers Prize 等共同設(shè)立75萬美元挑戰(zhàn)獎項,致力于解決多變量乘法(MSM),這也是零知識計算的重要組成部分。該獎項將側(cè)重于最大限度地提高客戶端和虛擬機上的吞吐量/最小化延遲,特別是 WebAssembly(WASM)的運行時間。Manta Network 創(chuàng)始人 Shumo 將 WASM ZKP 性能視為 ZKP 大規(guī)模采用的“最后一英里問題”。12月7日,ZPrize 公布參賽獲獎名單,Manta Network 與 Jump 合作的《Accelerating Elliptic Curve Operations and Finite Field Arithmetic (WASM)》(加速橢圓曲線運算和有限域算術(shù)WASM)獲獎。其他項目獲獎?wù)哌€包括 zkSync 開發(fā)團隊 Matter Labs,以太坊核心開發(fā)組織、Metamask 開發(fā)團隊 ConsenSys。首先,非常感謝看完這篇長文,能堅持到這確實很不容易。1)所有參與維護以太坊的節(jié)點,所謂的共識,甚至是以太坊本身存在的意義,就是為了保證狀態(tài)連續(xù)、統(tǒng)一,讓每個節(jié)點看到的當前狀態(tài)一致。EVM就是維護一致的規(guī)則和環(huán)境。2)而 zk-Rollup 需要解決 EVM 兼容問題,其實就是讓零知識證明(ZK)這項技術(shù),與以太坊 EVM 更好地,在兼容以太坊現(xiàn)有基礎(chǔ)設(shè)施的前提下,提高 ZK 證明生成和驗證效率。3)zk-Rollup 需要在 EVM 兼容與零知識證明生成和驗證效率之間,做平衡。4)zkEVM 實現(xiàn)目的,目前最主要的,仍是方便以太坊現(xiàn)有開發(fā)者,便于以太坊現(xiàn)有項目部署,以此增加自身生態(tài)項目,實現(xiàn)網(wǎng)絡(luò)效應(yīng)。5)將 WASM 與 ZK 相結(jié)合的意義在于,讓 Web3 應(yīng)用更易用、更流暢,讓已經(jīng)對傳統(tǒng)互聯(lián)網(wǎng)瀏覽器使用習慣了的用戶,可以更容易地接觸到 Web3,進入Web3,真正讓 Web3 觸及1億,乃至10億用戶。6)WASM ZKP 性能或為 ZKP 大規(guī)模采用的“最后一英里問題”。Manta Network 正在致力于解決該問題。
Manta Network 致力于通過隱私保護構(gòu)建一個更好的 Web3 世界。Manta 的產(chǎn)品設(shè)計從第一性原理出發(fā),通過 zkSNARK 等領(lǐng)先的密碼學架構(gòu)為區(qū)塊鏈用戶提供端對端的隱私保護。在保障隱私的同時,Manta 兼具互操作性、便捷性、高性能以及可審計性,允許用戶進行任意平行鏈資產(chǎn)間的隱私轉(zhuǎn)賬和交易。Manta 的愿景是為整個區(qū)塊鏈世界提供更便捷的隱私保護服務(wù)。Manta 的創(chuàng)始團隊由多位加密貨幣資深人士,教授和學者組成,他們的經(jīng)驗包括哈佛大學,麻省理工學院和 Algorand。Manta 的投資機構(gòu)包括 Polychain、ParaFi、Binance Labs、CoinFund 以及 Hypersphere 等。Manta 也是波卡官方 Web3 基金會資助獲得者,Substrate Builder Program 成員,伯克利大學區(qū)塊鏈加速器成員。訪問查看開放職位:https://jobs.lever.co/MantaNetwork關(guān)注官方頻道了解有關(guān) Manta/Calamari 的更多信息:Website:https://manta.network/
Github:https://github.com/Manta-Network
Twitter:https://twitter.com/MantaNetwork
Medium:https://mantanetwork.medium.co
Telegram:https://t.me/mantanetwork
Discord:https://discord.gg/ZtSuSKRy8X
Telegram中文:https://t.me/mantanetwork_zh
Twitter中文:https://twitter.com/manta_china