比特幣價格 比特幣價格
Ctrl+D 比特幣價格
ads

ARK:zkVM 生存之道 一文詳解派系之爭_ZkTsunami

Author:

Time:1900/1/1 0:00:00

撰文:Bryan, IOSG Ventures

過去的 2022 年關于 rollup 主要的討論焦點似乎都集中在 ZkEVM,但是別忘記 ZkVM 也是另一種擴容手段。雖然 ZkEVM 并不是本文的重點,但是值得回味一下 ZkVM 與 ZkEVM 之間的的幾個維度的不同之處:

兼容性:雖然都是擴容,但是側重點并不同,ZkEVM 的側重點在于直接實現與現有 EVM 的兼容,而 ZkVM 的定位在于實現完全的擴容,也就是將 dapp 的邏輯以及性能提升到最優,兼容性并不是首要的。底層搭好了,EVM 兼容也可以實現。

性能:兩者都有比較可以預見的性能方面的瓶頸,ZkEVM 主要瓶頸在于兼容 EVM 這樣一個并不適合封裝在 ZK 證明系統時產生的多余成本。ZkVM 的瓶頸在于因為引入了指令集 ISA,導致最終輸出的約束更復雜。

開發者體驗:Type II ZkEVM ( 如 Scroll, Taiko) 主打的是對于 EVM Bytecode 的兼容,換句話說就是 Bytecode 級別及其以上的 EVM 代碼都可以通過 ZkEVM 產生對應的零知識證明。對于 ZkVM 來說,有兩個方向,一個方向是做自己的 DSL( 如 Cairo), 另一個則是目標兼容現有的比較成熟的語言如 C++/Rust(如 Risc0)。未來我們預計原生的 solidity 以太坊開發者會可以無成本遷移至 ZkEVM,而更新更強大的應用則會跑在 ZkVM 上。

很多人應該還記得這張圖,CairoVM 事不關己游離于 ZkEVM 派系斗爭的本質原因是設計思想的不同

在討論 ZkVM 之前,我們首先思考的是如何在區塊鏈中實現 ZK 證明系統。大致上,有兩種方法實現電路 - 基于電路的系統 (circuit based) 以及基于虛擬機的系統 (vm-based)。

V神:未來10年zk-SNARKs將與區塊鏈一樣重要:5月21日消息,在黑山舉辦的 EDCON 2023 大會上,以太坊聯合創始人 Vitalik Buterin 表示,未來 10 年,zk-SNARKs 將與區塊鏈一樣重要。

以太坊社區大會(EDCON)于 2023 年 5 月 19 日至 23 日在黑山波德戈里察舉行,本次會議演講嘉賓包括了以太坊聯合創始人 Vitalik Buterin、以太坊核心開發者 Tim Beiko、以太坊基金會 Devcon 團隊負責人 Skylar Weaver 與以太坊基金會研究員 Vlad Zamfir、Piper Merriam、Andy Guzman 等。EDCON 是一個非營利性的年度全球以太坊會議,每年在不同國家 / 地區舉辦,致力于通過促進全球以太坊社區的交流和互動來服務于以太坊生態系統。[2023/5/21 15:17:04]

首先,基于電路的系統的功能是將程序 (program) 直接轉化為約束條件 (constraints) 并送入證明系統 (proving system);基于虛擬機的系統通過指令集 (ISA) 執行程序,在此過程中產生執行軌跡 (execution trace)。這個執行軌跡之后會被映射成約束條件,然后被送入證明系統。

對于一個基于電路的系統,程序的計算由執行程序的每臺機器 (machine) 進行約束。而對于基于虛擬機的系統,ISA 被嵌入到電路產生器 (circuit generator) 中,并產生程序的約束 (constraints),同時電路產生器有指令集、運行周期、內存等等限制。虛擬機提供了通用性,即任何機器都可以運行一個程序,只要該程序的運行條件在上述限制范圍內。

在虛擬機中一個 zkp 程序大概經歷如下的流程:

Polygon zkEVM主網測試版即將上線:金色財經報道,Polygon 將于周一向公眾發布 zkEVM 測試版,Polygon 表示,它正在將其 zkEVM 的所有方面都開源,因此開發人員能夠研究和共享代碼,從而使他們能夠為零知識領域的更多創新做出貢獻。

此外,以太坊區塊鏈的聯合創始人 V神 將在新的 zkEVM 上啟動第一筆交易,并將于東部時間上午 10:30 在 ETHGlobal 進行直播。據 Polygon 新聞稿,目前超過 50 家公司表示他們將使用 Polygon zkEVM 技術進行構建。[2023/3/27 13:29:25]

圖片來源: Bryan, IOSG Ventures

優缺點:

從開發者 (developer) 的角度來看,在基于電路的系統中開發通常需要對每個約束條件的成本有深入的了解。然而,對于編寫虛擬機程序來說,電路是靜態的,開發者需要更關心的是指令 (instructions)。

從驗證者 (verifier) 的角度來看,假設使用相同的純 SNARK 作為后端,基于電路的系統和虛擬機在電路的通用性方面有很大的不同。電路系統對每個程序產生不同的電路,而虛擬機對不同程序產生相同的電路。這意味著,在一個 rollup 中,電路系統需要在 L1 上部署多個驗證合約 (verifier contract)。

從應用 (application) 的角度來看,虛擬機通過將內存模型 (memory) 嵌入到設計中,使應用程序的邏輯更加復雜,而使用電路系統的目的是為了提高程序的性能。

從系統復雜性 (complexity) 的角度來看,虛擬機將更多的復雜性納入系統,如內存模型、主機 (host) 和客戶 (guest) 之間的通信等,相比之下電路系統更簡潔。

ZK開發商Nil Foundation推出zkLLVM新技術:2月2日消息,ZK技術開發商Nil Foundation發布一項新技術zkLLVM,使開發人員能夠使用流行的編碼語言Rust和C++來構建零知識電路,從而顯著減少工作負載。

LLVM代表“低級虛擬機”,指的是一組開源代碼庫,開發人員使用這些庫將可讀代碼“編譯”為計算機可以解釋的格式。

zkLLVM項目還將自動插入Nil Foundation最近宣布的ZK證明市場,它創建該市場是為了幫助ZK團隊分擔他們的工作,并將某些類型的計算外包給第三方。[2023/2/3 11:44:17]

以下是目前 L1/L2 中基于電路和基于虛擬機的不同的項目預覽:

在虛擬機中,有兩個關鍵的設計原則。首先,確保程序被正確執行。換句話說,輸出 (output)(即約束條件 constraint)與輸入 (input)(即程序 program)應當正確匹配。一般這是通過 ISA 指令集完成的。其次,確保編譯器 (compiler) 在從高級語言轉換為適當的約束格式時能正確工作。

1. ISA 指令集

規定了電路產生器的工作方式。它的主要責任是將指令 (instructions) 正確地映射到約束條件 (constraint) 中,這些約束條件隨后被送入證明系統 (proving system)。zk 系統使用的都是 RISC( 精簡指令集 )。有兩種 ISA 的選擇:

第一種是自建一個自定義的 ISA(custom ISA),這在 Cairo 的設計中可以看到。一般來說,有如下四種類型的約束邏輯。

zkTube Labs官方:尚未發行ZKT代幣,當前只有ZKTR早期白名單令牌 ?:據zkTube Labs官方消息,zkTube Protocol尚未發行ZKT代幣,目前唯一權證僅有ZKTR(ERC20)早期白名單令牌。ZKT代幣發行與流通時間為:zkTube Protocol主網正式上線之際。

zkTube.io是layer2賽道項目。目前,市面上有打著zkTube旗號售賣虛假ZKT代幣,請各位zkTube愛好者切勿上當。請認準ZKTR唯一權證。

此外,zkTube Labs旗下PayTube錢包目前未上線,上線時間請關注官網paytube公告。[2021/6/3 23:09:18]

自定義 ISA 的基本設計重點是確保約束條件盡可能少,從而使程序的執行和驗證都能快速運行。

第二種是利用現有的 ISA(existing ISA),這在 Risc0 的設計中被采用。除了以簡潔的執行時間為目標外,現有的 ISA(如 Risc-V)還提供了額外的好處,如對前端語言 (front-end language) 和后端硬件 (backend hardware) 友好。一個(有待解決的可能)問題是,現有的 ISA 會不會在驗證時間上有所落后(因為驗證時間并不是 Risc-V 的主要設計追求。

2. 編譯器 (Compiler)

籠統地來說,編譯器會逐步將編程語言翻譯成機器代碼。在 ZK 的環境下,它指的是使用 C、C++、Rust 等高級語言編譯成約束系統(R1CS、QAP、AIR 等.)的低級代碼表示。有兩種方法,

設計一個基于現有 zk 電路表示 (existing circuit representations) 的編譯器 -- 比如說在 ZK 中,電路表現形式從 Bellman 這樣的可以直接調用的庫 (library) 和 Circom 這樣的低級語言開始。為了聚合不同的表現形式,Zokrates 這樣的編譯器(身也是一個 DSL)旨在提供一個抽象層,可以編譯成任意的更低級表現形式。

ETH 2.0項目負責人稱階段0預計很快推出 V神明確反對zk-STARKS應用:ETH 2.0項目負責人Danny Ryan近日在reddit上解答ETH 2.0有關進展和功能時表示,ETH 2.0的開發當前集中在“信標鏈”的構建上,這是ETH 2.0的基礎。但是階段1的開發正在逐步進行,該階段引入了用于與信標鏈連接的“分片”的分片鏈,并且階段0發布預計將很快推出。此外,Ryan還表示,團隊的目標是讓整個以太坊社區參與進來,并與盡可能多的客戶建立聯系。

而針對有人提出的量子保護隱私保護技術“ zk-STARKS”的“ Etherium 3.0”的想法,Vitalik Buterin本人在reddit上明確表示不支持。V神稱,目前,希望以太坊的基本結構在ETH 2.0發布后不會改變。(注:zk-STARKS是一種區塊鏈隱私解決方案,該方案能夠將大量信息壓縮成名為starks的小樣本并使用零知識來保護信息的隱私。)(Coinpost)[2020/6/1]

基于(現有的)編譯器基礎設施 (compiler infrastructure) 來構建。基本邏輯是利用一個針對多個前端和后端的中間表現形式 (intermediate representation)。

Risc0 的編譯器是基于 multi-level intermediate representation(MLIR),可以生成多個 IR(類似于 LLVM)。不同的 IR 給開發者帶來了靈活性,因為不同的 IR 有各自的設計重點,例如其中有一些的優化是專門針對硬件,所以開發者可以根據自己的意愿進行選擇。類似的想法在使用 GCC 的 vnTinyRAM 和 TinyRAM 中也可以看到。ZkSync 也是另一個利用編譯器基礎設施的例子。

此外,你還可以看到一些針對 zk 的編譯器基礎設施,如 CirC,它也借用了 LLVM 的一些設計理念。

除了上述兩個最關鍵的設計步驟外,還有一些其他的考慮因素:

1.系統的安全性 (security) 和驗證的成本 (verifier cost) 之間的權衡

系統使用的比特數越高(即安全性越高),意味著驗證的成本越高。安全性反映在密鑰生成器(比如在 SNARK 中代表橢圓曲線)。

2.與前端和后端的兼容性 (compatibility)

兼容性取決于為電路的中間表示 (intermediate representation) 的有效性。IR 需要在正確性(程序的輸出是否與輸入相匹配 + 輸出是否符合證明系統)和靈活性(支持多種前端和后端)之間取得了平衡。如果 IR 最初是為解決像 R1CS 這樣的低度 (low-degree) 約束系統而設計的,那么與其他更高級別 (high-degree) 的約束系統如 AIR 的兼容就很難。

3.為提高效率需要手工制作 (hand-crafted) 電路

使用通用模型 (general purpose) 的缺點是,對于一些不需要復雜指令的簡單操作,其效率較低。

簡述一下先前的一些理論,

Pinocchio 協議之前: 實現了可驗證的計算,但驗證時間非常慢

Pinocchio 協議: 在可驗證性和驗證成功率方面提供了理論上的可行性(即驗證的時間比執行程序的時間短),是基于電路的系統

TinyRAM 協議: 相對于 Pinocchio 協議,TinyRAM 更像一個虛擬機,引入了 ISA,因此擺脫了一些限制,如內存訪問 (RAM)、控制流 (conttrol flow) 等

vnTinyRAM 協議: 使得密鑰生成 (key generation) 并不取決每個程序,提供了額外的通用性。擴展電路產生器,即能夠處理更大的程序。

上述模型都以 SNARK 作為其后端證明系統,但是特別是在處理虛擬機時,STARK 和 Plonk 似乎是一個更合適的后端,從根本上說是由于其約束系統更適合于實現 cpu 一樣的邏輯。

接下來,本文會介紹三個基于 STARK 的虛擬機 - Risc0, MidenVM, CairoVM。簡而言之,除了都以 STARK 作為證明系統外,它們各自有一些不同:

Risc0 利用 Risc-V 來實現指令集的簡潔性。R0 在 MLIR 進行編譯,這是 LLVM-IR 的一個變種,旨在支持多種現有的通用編程語言,如 Rust、C++。Risc-V 還有一些額外的好處,比如對于硬件較為友好。

Miden 的目標是與以太坊虛擬機(EVM)兼容,本質上是 EVM 的 rollup。Miden 現在有自己的編程語言,但也致力于在未來支持 Move。

Cairo VM 是由 Starkware 開發的。這三個系統所使用的 STARK 證明系統是由 Eli Ben-Sasson 發明的,目前 Starkware 的總裁。

讓我們更深入地了解它們的區別:

文章最后筆者想談談 Risc0 目前的發展以及其讓我興奮的原因。

R0 目前的發展:

a.自研的「Zirgen」的編譯器基礎設施正在開發中。將 Zirgen 與一些現有的 zk 專用編譯器的性能進行比較會很有趣。

b.一些很有意思的的創新,如 field extension,可以實現更堅實的安全參數以及在更大的整數上進行操作。

c.見證了在 ZK 硬件和 ZK 軟件公司之間的整合中看到的挑戰,Risc0 使用了一個硬件抽象層,以便在硬件方面進行更好的開發。

d.Still a work-in-progress! 還在開發中!

支持手工制作的電路 (hand-crafted circuits),支持多種哈希算法。目前,專用的 SHA256 電路已實現,然而還不能滿足所有的需求。筆者相信具體選擇優化哪類電路取決于 Risc0 所提供的用例 (use case)。SHA256 是一個非常好的起點。另一方面,ZKVM 的定位給人以靈活性,例如,只要他們不想,就不必去管 Keccak :)

遞歸 (recursion):這是一個很大的話題,筆者傾向于不在該報告進行深入研究。需要知道的是,隨著 Risc0 傾向于支持更復雜的用例 / 程序,更迫切地需要遞歸。為了進一步支持遞歸,他們目前正在研究一個硬件端的 GPU 加速方案。

處理非確定性 (non-determinism):這是 ZKVM 必須處理的一個屬性,而傳統的虛擬機是沒有這個問題的。非確定性可以幫助虛擬機執行得更快。MLIR 相對更擅長處理傳統虛擬機方面的問題,而 Risc0 如何將非確定性嵌入到 ZKVM 系統設計中值得期待。

WHAT EXCITES ME:

a.簡單且可驗證!

在分布式系統中,PoW 需要高水平的冗余,因為人們不信任他人,因此需要重復執行相同的計算來達成共識。而通過利用零知識證明,狀態的實現應該和同意 1+1=2 一樣容易。

b.更多更實際的用例:

除了最直接的擴容外,更多有意思的用例將變得可行,比如零知識機器學習、數據分析等。相比于 Cairo 這樣的特定的 ZK 語言,Rust/C++ 的功能更普適且更強大,更多 web2 的用例跑在 Risc0 VM 上。

c.更具包容性 / 成熟的開發者社區:

對 STARK 和區塊鏈感興趣的開發者不必再重新學習 DSL,使用 Rust/C++ 即可。

感謝 Xin Gao、p0xeidon 的 Boyuan、Taiko 的 Daniel 以及 Sin7Y 對本文的支持和修改建議!

IOSG Venture

個人專欄

閱讀更多

金色財經

金色早8點

Odaily星球日報

Arcane Labs

澎湃新聞

深潮TechFlow

歐科云鏈

MarsBit

BTCStudy

鏈得得

Tags:ARKISCZKTISAQuarkChainDisCas VisionZkTsunamiOneKeyCard虛擬visa有額度嗎

芝麻開門交易所下載
區塊鏈:金色觀察 | Andre Cronje親筆:從Fantom經驗解決dApp開發者5大困惑_BSPAY價格

金色財經 區塊鏈2月10日訊 Andre Cronje近日發文解讀dApp開發者最長面臨的五大困惑,并希望通過自己構建Fantom的經驗來給予他們支持.

1900/1/1 0:00:00
人工智能:ChatGPT爆火帶來思考:醫學界或將迎來與AI融合的奇點?_Venus Chain

ChatGPT猶如一枚石子不經意地投入到人工智能行業平靜的水面,迅速在全球范圍內激起一波大浪。  AI翻譯、AI繪畫、AI家居……如今,人工智能已經跨入各個領域,與人們的生活越來越近,

1900/1/1 0:00:00
穩定幣:穩定幣是什么?如何使用去中心化穩定幣?_USD

原文:《Bankless 實踐課:如何使用去中心化穩定幣》撰文:William M. Peaster編譯:二丫&Cecilia.

1900/1/1 0:00:00
ROLL:為什么模塊化區塊鏈是未來?_以太坊最新價格美元計價

原文標題:Is modular design the future?原文作者:Robert McTague編譯:倩雯,ChainCatcher過去十年是智能手機不斷發展的十年.

1900/1/1 0:00:00
元宇宙:元宇宙熱退潮 XR產業回歸理性_ETA

2月16日,字節跳動旗下VR公司PICO爆出裁員200-400人,優化比例達20%-30%;騰訊傳出XR業務變更路徑,團隊調整;而在不久前,快手解散全景視頻業務.

1900/1/1 0:00:00
比特幣:告別熊市?比特幣表現強勁回歸_LID

在長期的現貨需求和一系列軋空的推動下,比特幣市場呈現出自 2021 年 10 月以來最強勁的月度價格表現。本文,我們將探討衍生品市場和現貨交易平臺的動態.

1900/1/1 0:00:00
ads