menu-icon
anue logo
澳洲房產鉅亨號鉅亨買幣
search icon

區塊鏈

基於實際場景解析零知識證明與zkEVM的原理

BlockBeats 律動財經 2023-04-06 18:30

cover image of news article
律動財經圖片

  一、零知證明 

首先我們需要明確,零知證明(ZKP)真的很難。

如果我們用幾句話簡單概括 ZKP 的話,一定會產生理解與事實上的偏差。但是我們相信在 TL;DR 的巨大魅力面前,大家都不會過於在意的。下面就讓我們以實際生活為背景,描述三個場景的遞進,來形象地理解 ZKP 的原理。

場景 A:


想象一個暑假結束開學了,老師檢查《暑假生活》的場景,全班同學交上來一摞厚厚的大本子。老師是不可能一道題一道題批改的,於是他開始快速翻動眼前的練習冊,以作業本上有沒有留空白來檢查學生是不是把每道題都寫了。

在這個場景下老師並不知道每道題學生是否答題正確,只是他能確定學生有沒有完成作業。

場景 B:

他發現有一些同學在空白處填上意義不明的內容如和路雪棒棒冰、肯德基瘋狂星期四等等,他才意識到自己是過於天真了——學生們偷奸耍滑。於是他把作業全部打回去,宣布自己將要抽查部分題目,希望同學們認真對待。

在這個場景下老師通過隨機抽查驗證非常小部分的題目以確定學生有沒有正確地完成作業。

場景 C:

老師再把作業收上來檢查後,大部分同學因為懼怕抽查好好完成了作業,老師表示比較滿意。然而總有一些人繼續偷奸耍滑,他們會在隨機少量題目下瞎寫。而老師只能隨機抽查部分題目,若不是部分人運氣不好恰好撞上被抽查那道題,又險些被他們混過去。

所以老師最終還是需要一個方案,既能保證學生每道題都正確完成了,還可以儘可能降低自己的工作量。

這就是目前區塊鏈中零知證明真正克服的困難:如何在驗證儘量少的題目的同時,保證答案整體的正確性。在以上的場景中,每道題的答案之間並沒有任何的邏輯聯繫,即這一道題的正確與否與另外一道題的正確與否無關。所以,是否有一種巧妙的方式,讓老師在抽查一道題並判斷正確與否的同時,就能知道學生整本作業是不是全部回答正確的?  

那麼,以下是超現實部分:老師想要把所有正確的答案「串」起來,並為此引入了新的數學工具:多項式。通過構造含多項式的等式進行驗證,能夠幾乎同時確認同學們的答案部分個體與整體的正確性。這樣,老師終於可以放心地宣布,同學們正確且完整地完成了暑假作業。

所以多項式是什麼魔法?

在這裡舉一個簡單的例子:作業只有三道題,序號與答案分別是 (1,4),(2,6),(3,3),用一個多項式「串」起來得到 y=-52x2+192x-3

至此,老師批改作業只需要完成兩個步驟,1)檢查多項式本身,驗證整體是否正確;2)隨機抽一個點以驗證這個同學是不是真的寫了這道題。當然這是一個非常幼稚的例子,在實際的工程中,我們構造的是含多項式的等式,一部分是待驗證某個由數學語言表達的 statement,另外一部分則是用多項式串起來的可驗證且完整的資訊(聰明的讀者可能已經想到了數據可用性 DA 這個概念)。

多項式有很多美妙的性質,在零知證明中我們主要利用了其中的兩個:

原有的資訊被串起來了,而我們驗證一組多項式等式中的點就可以同時驗證整個等式。

如果一個多項式等式在某些隨機選擇的點上成立,那麼這個等式極大機率是在全集上也成立的。

一句話總結:零知證明的本質是一個機率性證明,即抽查(約等同於有效性證明 validity proof),同時通過引入多項式構造以及一些密碼學的工具來彌補簡單隨機抽查在完整性上的缺陷。

有趣的是,在 rollup 的語境中,零知識證明的「零知」更多的體現在 validity proof 對於資訊的壓縮上,而非直覺上的對每條單個的資訊進行隱私處理。

image

  二、所以 zkp 有什麼用?

 

我相信你應該聽過 ZK-Rollup。我們在前文中花了大量篇幅說明老師是怎麼想辦法在完成檢查作業的前提下偷懶的,而 ZK-Rollup 做的事情就是偷懶。

簡而言之,比如現在有一千個 statements(通常是交易),在 ZK 的幫助下只需要進行十次驗證即可證明其正確性。隨著證明工作量的增加,其對於驗證次數相應需要的增加量是遠低於一個線性關係的,即增加到一萬個 statements,驗證次數並沒有增加到一百次,可能我們只需要十一次即可證明。

所以這是一個很好的擴容方案。類似其他擴容方案一樣(如 Optimistic Rollup),現在已經有的 ZK-Rollup 應用過程如下,:

用戶將資產鎖在某個 L1 上的 ZK-Rollup 的智能合約中

用戶開始進行交易,這些交易內容由 L2 的 sequencer 進行整理打包,生成一個 validity proof(這裡用 ZK 證明)以及在每個包(batch)里進行狀態的更新

狀態的更新與證明會被交給 L1 上的 ZK-Rollup 智能合約進行驗證,以用來更新 L1 的狀態

用戶用在 L1 已經更新的狀態來進行下一步操作。

三、ZK-Rollups vs Optimistic Rollups

 

作為 Rollups 的兩個技術路線之一,基於 ZK 構建的 Rollups 提供了更高的安全性。因為 ZK-Rollups 僅依靠數學及以太坊本身提供安全性保證,而 Optimistic Rollups 在這一方面則依賴於博弈論框架下的經濟學激勵以及懲罰。

對於用戶而言,這意味著 ZK-Rollups 擁有更快的 L1 finality 確認,而 Optimistic Rollups 需要等待一周的挑戰期。當然現在有各類跨鏈協議可以用 Defi 的手段讓 Optimistic Rollups 用戶體驗更方便快捷,例如 Celer, Stargate, Across, Synapose 等。但這往往是通過犧牲一定的整體安全性來換取局部單點用戶的體驗提升,同時這些協議中用戶支付的提款費用也是一般是官方提款渠道的數倍。

雖然 ZK Rollups 享有相對於 OP Rollups 這些在理論上的優勢,現狀則是基於 ZK-Rollups 發展的生態相比於 OP Rollups 們還遠不夠繁榮,所以用戶很難在 ZK 生態中獲得與 OP 中類似的交互體驗,而 ZK Rollups 也在短期內很難展現出一些在規模化之後才能體現出來的優勢(高並發,低延遲,L1 交互安全性等)。

四、那麼 zkp 的問題在哪?

 

因為 ZKP 在理論上達到可用的時間不早於 2015 年,所以以太坊在設計之初與 ZKP 並沒有任何關係。從小節一的閱讀,你可能隱隱有一個感覺:這是一個很數學的玩意兒。你的感覺是對的,它帶來的最直接的問題是 EVM 的核心基礎設施與 ZK-Rollup 並不兼容,原因包括但不限於以太坊儲存布局,以太坊的簽名加密機制。以太坊 EVM 的運算基於正常人的數學世界,而 ZKP 的計算與證明在素域(Prime Fields)上。(註:這一條與前面兩條在邏輯上使並列的關係)

而這樣的種種不兼容,一方面給基於 ZKP 的區塊鏈項目帶來了巨量鏈上計算的額外負擔(overhead);其二,因為需要 ZKP 在工程學上的實現,算數電路、邏輯門等數學概念的實施複雜度成為一個在編程時不得不考慮的約束,也使得開發者們要在開發學習成本與實現精度兩者之間做一定取捨。

而在應用層面,現有基於 ZKP 的技術棧(Tech Stack),要麼是部署在 L1 上面的智能合約指向某一個 L2 的 ZK-Rollups(在這裡我管它們叫通用 ZK-Rollups),要麼是基於 Dapp 設計的專用 ZK-Rollup,比如 dYdX V3 用的就是 ZK-Rollup(本質上是基於 Starkware 的專用 ZK-Rollup)。

不管是哪一種形式,因為數學底層的巨大差異導致了這些 ZK Projects 和其他項目的可組合性很差。比如在 ZK-rollup 生態部署的一個 Defi 協議希望找一個有公信力的預言機,這個場景的需求是真實存在的;然而由於這個協議是基於 ZK-Rollup 開發的,那麼和其他交互起來就十分困難,例如 Etherscan 就不能簡單在基於 ZKP 的區塊鏈上進行 fork 而直接服務這條鏈。

五、為什麼要和以太坊(或者說是 EVM)兼容呢?

 

因為以太坊生態很大,如果你的鏈和它長得越像,最好就只是 Chain ID 不一樣,那麼你的生態被一些基於以太坊開發的 app 支持的機率就越大。比如 Polygon 一直以來致力於支持以太坊,提供了各種各樣高效又便宜的擴容方案,為用戶和以太坊生態發展作出了很大的貢獻。

用戶(開發者)的方面,熟悉,便宜,無痛轉換才是金標準。而對於絕大多數開發者來說,學一門新的高級語言的學習成本(比如 Rust/Move),是遠遠低於學習一門嚴肅的數學課程的(更不要說還要引入 ZKP 那樣繁複的工程上的實際應用)。因此一個協議項目在一條新公鏈上重新開發的難度,例如 Solana/Aptos,遠低於在一條較為陌生的、基於嚴肅精密且複雜的數學邏輯語言的區塊鏈(ZK-based)。 

當然並不是說自己搞一套新的標準一定不可行,在強大的開發團隊和適度的經濟激勵下,Solana 同樣取得了巨大的成功。在 EVM 的加持下,Cosmos 生態也成功吸引到了大量的 solidity 開發者前往部署自己的協議。

因此,所以如果 ZKP 可以和 EVM 無痛兼容,開發者們會更輕鬆地去移植已有的 Dapp 和智能合約到 ZK-based L2,或者在這一個新的框架下開發全新類型的 Dapp。進一步,如果第四小節中提到的可組合性問題也可以得到改善,從而 ZK-based projects 可以與其他應用有更好的交互,那麼我們會得到一個更繁榮的 ZK-based L2 生態。這一點上,ZK L2 玩家們和 Solana, Aptos 這些 L1 玩家底層驅動力是一致的。

六、那麼有沒有辦法讓 ZKP 和 EVM 兼容呢?

 

有的。現在很多團隊就在做這個事情。

6.1 等一下,什麼是 EVM?

EVM 是以太坊上運行智能合約的虛擬機。

6.2 再等一下,什麼是虛擬機?

一台用軟體模擬出來的幾乎與真實電腦一樣的虛擬電腦。

6.3 那為什麼以太坊需要虛擬機?

因為以太坊引入了智能合約,而執行合約需要一台電腦。在去中心化網路里,產生共識的前提是,不同節點對同一合約的計算和處理需要產生相同的結果,即不同計算機去計算 1+1(實數域),都應該得到 2 這個結果。然而每個節點的物理意義上的電腦可能有不同的底層環境,為了避免這些底層環境差異帶來的干擾,所以智能合約需要在虛擬機上運行,以保證相同問題產生相同結果,即確定性。

有很多很多的文章或者推已經總結了這些不同路線在技術上的差異,在此不再贅述,我覺得可能你們也沒有興趣。所以在這裡就聊一聊常識、商業、和更用戶向一點的東西。

第一個問題是我們對生態有什麼樣的期待。

現狀是 ZkSync StarkWARE 等團隊做了很多 Application specific zk-rollups,toB 的業務發展得很成熟,例如 Immutable 在 Starkware 上已經承載了像 Illuvium 這樣廣受期待的大型 Web3 遊戲。然而由於在前面幾段的講過的原因(主要是在可組合性上的缺乏),這些項目依然在等待形成一個共同且共通的生態來抱團發展。

Scroll/ Polygon Hermez/ zkSync Era 在構建 ZK-based L2 生態做的努力是將開發和現有協議移植的難度降低到幾乎無痛的水平。在實現完全 EVM 等效(type 2 by vitalik) 的這個過程里,我們目前在實踐中是處於「幾乎」EVM 等效(type 3 by vitalik) 這個進度。例如 zkSync Era 就可以使 99% 的以太坊項目無需重構或重新審計任何一行代碼即可部署。

image

對於用戶而言,在交互體驗上如果沒有很大的差異,選擇用哪一條鏈多數時候取決於現在已經在使用哪些鏈。Polygon 在這方面是占據了一定的優勢,特別是其現有生態中承載了大量的原生遊戲、社交的協議和用戶,以及獨特的 Web2 品牌露出。

然而我們認為 Scroll 和 zkSync Era 在吸引現有協議部署方面在短中期也不會有明顯的掣肘,主要是基於下面幾項我們對開發者生態的長期觀察:

以太坊生態的 Dapp 在 Zk-based L2 的部署開發難度在逐步下降到觸發大規模遷徙的拐點

L2toL2,L1toL2 的跨鏈協議逐漸走向簡單方便便宜,L2 原生定向跨鏈橋也有望興起,雖然中心化的挑戰依然可能長期存在,

從我們熟悉的領域來講,由於有經濟激勵的預期和積極的營運(參考 Optimism 成功的多輪空投激勵的經驗,Arbitrum 的開發者社區營運邏輯等),用戶可以做到對多條鏈的多個協議都一一進行嘗試

第二個問題是如何從中心化到去中心化。

首先要說明的是,目前的絕大部分 ZK-Rollups 是一個很中心化的結構。其很大的一個原因是路徑依賴:因為目前沒有可組合性,所以就不需要和別人組合,所以中心化暫時也沒有關係。但是如果想發展成一個生態,這個中心化的問題必須解決。

目前主流的 ZKEVM 方案提供者們共同認識到了解決這個問題的必要性。在這個方面 Scroll/ Polygon Hermez/ Zksync Era 認為推進 prover 網路和 sequencer 網路去中心化的進程應該是逐步漸進式的,最終實現將 prover/sequencer 的工作通過代幣經濟學達成算力外包和市場化,儘管具體實現步驟各家仍有分歧。

所以我們又回到了熟悉的領域:有錢出錢,有力出力,然後大家等着平台派發分紅。在這裡我們有一個小的 concern 是生成證明的算力產生的成本其實是很高的,所以 prover 在 zk-based L2 中的門檻會遠高於 PoS 鏈的對應部門;而 sequencer 出錯塊的問題其實是所有區塊鏈網路共同的問題,並不獨屬於 zk-based L2,。所以我認為在 ZK 生態中,prover 網路的去中心化可能會面臨更大的挑戰。

七、ZK-based L2 生態發展野望

 

StarkNet:

做為私募估值最高的以太坊 ZK 擴容解決方案以及 zk-STARK 的密碼學理論創始人,Starknet 所代表的技術流派一直以來是行業的例行標準。創始人 Eli Ben-Sassen 甚至就是區塊鏈中廣泛應用的 zk-SNARKs 和 ZK-STARKs 的發明者。

但我們同時也發現,在很多涉及與以太坊 EVM 生態融合至關重要的產品配置上,Starknet 生態由於技術路徑的原因,還在探索更加開發者友好、面向大眾的解決方案。我們認為將來 Starknet 團隊可能在商業上會繼續執行兩條腿走路的戰略:

一方面通過成熟的 Starknet 繼續用定製化開發服務有大規模 ZKP 需求的項目,比如 Web2 遊戲廠商的 AAA 大製作,或者 IP 持有者進行鏈上元宇宙的大規模試驗

另一方面,通過扶持智能合約錢包(Argent X, Braavos)、Cario x Solidity 開發者中間件橋樑(Kakarot, Wrap)等方式,增強和以太坊生態整體的協同能力。

與 OP-Rollups 需要和以太坊主網一起通過 EIP-4337 建立智能合約錢包的方式不同,Starknet 從一開始在 L2 上就支持基於帳戶抽象的智能合約錢包。Starknet 上部署的智能合約錢包可以在利用手機內置晶片的加密安全能力實現硬體簽名器和多重認證,並通過區塊鏈合約層面的創新完成社交恢復、行動錢包支付等場景。

屆時,我們似乎可以想象一家大型的行動硬體公司,攜帶海量 Web2 用戶,以元宇宙或者大型鏈上遊戲作為入口進場 Starknet 及 Web3 的盛況。

zkSync Era:

近期剛推出 zkEVM 2.0 版本的 zkSync 也是最受期待的 zk L2 解決方案之一,主打極高的性能天花板,兼顧安全與用戶體驗,最高 TPS 潛力可達 20,000+。最新的 zkSync Era 利用基 LLVM 的 Solidity 編譯器,zkSync 自創、屢獲殊榮的 GPU 證明器,以及 Matter Labs 即將推出的 Redshift 證明系統,將會把每筆交易的費用降低至遠小於 1 美分。

zkSync Era 也致力於降低區塊鏈數據儲存的問題,在 EIP-4844 之上還提供了創新的 zkPorter 功能,允許用戶和開發人員依據不同的安全級別需求選擇數據可用性格式,在具有無縫互操作性的高性能的 validium(zkPorter)和高安全性的 validity(zk-Rollup)之間平衡開發重心。

另外,zkSync Era 引入了 Hyperchains 的分形擴容方案作為其「L3」的主要發展方向。Hyperchains 是利用 LLVM(LLVM 是世界上最成熟的編譯器堆迭架構)的 zkEVM 類似分形的實例,可在 L1 上實現並行運行及共同結算。任何人都可以在無需許可的情況下部署 Hyperchains,它具有高度可定製的模塊化 zkEVM 鏈堆棧,並由與主 zkSync L2 完全相同的 zkEVM 引擎提供支持。開發人員可以選定的不同解決路線,選擇相應的虛擬機(例如 MoveVM)、定序器設計以及數據可用性(如上文中提到的 zkRollup、zkPorter 和 zkValidium)。

zkSync Era 推出如此高度可定製模塊化的堆棧,讓我們不得不聯想到近期藉由 Coinbase 旗下 Base 鏈進入大眾視野的 OP stack。

我們認為 zkSync 的 B 端發展路徑或許可以參考 Optimism 的經驗,即利用現有的大規模用戶、強大的機構支持者背景,與開發者社區建立良性循環的空投預期和促進生態發展的治理機制(Token House、RetroPGF 等)。這樣既可促進超越基建設施的創新應用,又能夠鼓勵現有協議(比如 L1 上的傳統 DeFi 藍籌們)的最新版本前來 Era 部署。

從 C 端來講,zkSync Era 可能可以從目前以太坊 L2 還不太強的 Web3 社交出發,着力打造以太坊系統內的最強的社交網路、社交圖譜等應用來吸引更多的輕量 Web3 用戶。我們注意到 Hyperchains 還有一項很適合運用於社交協議的創新。還可以用來實現高並發、短暫的執行環境。例如,開發者可以啟動一個 Rollup 來廉價地鑄造數百萬個社交網路內的同質化 NFT 資產,然後將這些 NFT 橋接到另一個執行層,最後關閉臨時的 Rollup,為社交協議提供必要的基礎設施容量彈性。

Polygon zkEVM:

Polygon 生態的大戰略一直就非常清晰,團隊也執行地非常堅決。我們看到 Polygon 和其他以太坊 Rollup 之間已經形成了差異化競爭。在社交生態上,Polygon 憑藉 Lens Protocol 生態和 Galxe 已經成為並肩 BNB 的 Web3 社交兩巨頭之一。而 Planet IX,Hunters On-Chain,Benji Bananas 等打金遊戲也都擁有數十萬的月度活躍錢包地址數。最近 Polygon zkEVM 也和 Immutable 在 2023 GDC 大會上宣布了戰略合作夥伴關係,以更好服務工作室和開發商更容易打造高質量的鏈上遊戲。根據 Cumbeland 的報告,Polygon 在非加密夥伴方面有望在短中期內達到每年 3 億美元的收入,是目前每天幾萬美元氣費收入的十倍以上。

最特別的是,Polygon 通過和大量區塊鏈行業之外的品牌合作,已經成為了 Web3 在傳統行業的形象大使。通過和星巴克奧德賽活動的承辦商 Forum3 的緊密合作,Polygon 有望能在近一年中迎來 2700 萬幾乎全新的北美區塊鏈用戶,這些增量對於行業存量來說是巨震級別的。Polygon 最近還加入了迪士尼的加速器計劃,融入 stripe 的全球支付系統,支持 Reddit 的表情包 NFT 系統,以及和 Adobe, 耐克、阿迪達斯,梅賽德斯奔馳,萬事達卡,可口可樂等世界知名品牌達成商業合作。

我們認為 Polygon zkEVM (Hermez),可以繼承整個 Polygon 生態在傳統領域的強大競爭力,通過 zkEVM L2 和以太坊生態實現更完整的結合,讓 Web2 品牌也能享受到以太坊 L1 帶來的資產安全性溢價。我們看好遊戲和社交兩大賽道持續在 Polygon 生態中快速成長。

Scroll:

作為最年輕的以太坊 zk L2 解決方案,Scroll 也許是和以太坊基金會走得最近的一個開發團隊,匯集了最新最強大的零知證明團隊之一。Scroll 正以實施技術能力和迭代速度為基礎,正奮力追趕其他 zk-based rollups 的開發進度。

Scroll 在 prover 網路和 sequencer 的去中心化設計中走在前沿,特別是已經提出了使用 GPU/ASIC 提升算力再來分散化驗證網路的解決方案。Scroll 的 EVM 在理論上,相對於 zkSync Era 和 Starkware 有更高的代碼兼容性天花板,這意味著開發者不需要再去相信新的虛擬機和編譯器(例如 zkSync 的 LLVM),也可以規避執行交易過程中藉助一段中間的代碼來實現 EVM 兼容帶來的風險(Polygon zkEVM 目前的方案特徵)。

Scroll 的團隊從第一天開始,就在和以太坊核心活動深度綁定,打造自己的品牌知名度和基礎設施套件,比如預言機、錢包等。雖然所有以太坊 L1, 甚至 L2 的協議開發都在理論上可以快速部署到 Scroll,我們認為 Scroll 最大的機會還在在於捕捉 DeFi 的皇冠明珠:去中心化的中央限價訂單簿交易所(CLOB)。Scroll 強大的性能潛力,配合以太坊主網大量流動性尋求安全高效的交易環境的急切需求,可能可以帶來這類 dex 協議的爆發。我們另外注意到如 Lens Protocol 等 Web3 項目也開始嘗試在 Scroll 上部署 - 我們期待更多類似的好消息。

原文連結

暢行幣圈交易全攻略,專家駐群實戰交流

▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群
不管是新手發問,還是老手交流,只要你想參與虛擬貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!

前往鉅亨買幣找交易所優惠

文章標籤


Empty