買比特幣 買比特幣
Ctrl+D 買比特幣
ads
首頁 > Filecoin > Info

ZKS:ZKVM 生存之道,一文詳解派系之爭_ISA

Author:

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

作者:Bryan,IOSGVentures

目錄

ZKP證明系統的電路實現-基于電路(circuit-based)VS基于虛擬機(vm-based)

ZKVM的設計原則

STARK-basedVM之間的比較

為什么Risc0讓人興奮

寫在前面:

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

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

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

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

zkSync 2.0測試網即將進行重置:10月25日消息,以太坊Layer 2擴容解決方案zkSync 2.0測試網即將進行重置,本次重置將依然會清除交易歷史、代幣余額并需要開發人員重新部署合約。[2022/10/25 16:38:23]

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

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

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

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

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

優缺點:

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

zkSync將計劃明年推出Layer 3測試網Pathfinder更名為Opportunity:10月14日消息,以太坊二層網絡zkSync發推表示,由于與StarkWare開發的產品的命名沖突,將把以太坊Layer3測試網絡“Pathfinder”重新命名為“Opportunity”。

Matter Labs將在2023年1季度推出Layer 3測試網“Pathfinder”。據介紹,這是第一個在以太坊之上啟動的Layer 3網絡,可以顯著改善擴展性。[2022/10/14 14:27:25]

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

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

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

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

虛擬機的設計原則

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

以太坊二層隱私擴容解決方案Zkopru將在兩周內發布測試網:據官方消息,采用zk-SNARK和Optimistic Rollup實現的以太坊二層隱私擴容解決方案Zkopru Network計劃兩周內在發布公共測試網,若再過兩周測試網無重大問題將發布主網合約,目前處于網絡錢包和系統壓力測試的最后階段。該合約將支持在二層網絡中以低成本實現ETH、ERC20和ERC721之間的隱私轉移和隱私原子交換。具體來說,用戶在存入資產至一層ZKopru合約后,就能夠在二層上查看和隱私轉移其資產。

Zkopru由Ethereum 9?創始人Wanseob Lim于2020年在太坊技術論壇ethresear.ch上提出,曾在2020年11月份獲得以太坊基金會資助。Ethereum 9?是一種概念證明系統,使用Mimblewimble以及零知識證明等隱私技術來隱藏以太坊代幣交易。[2021/8/10 1:46:13]

1.ISA指令集

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

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

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

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

ZKSwap于今日18:00正式開啟第五期流動性挖礦:官方消息,ZKSwap將于北京時間2021年5月24日18:00開啟第五期的流動性挖礦(PoL)和交易挖礦(PoT)活動,本次活動持續14天,至6月7日18:00結束。PoL總獎勵約為130萬ZKS,PoT總獎勵約為15萬ZKS。

為再度提升ZKSwap使用體驗和激勵ZKS持有者,本次活動延續了上一期流動性挖礦的規則,在大幅削減交易對挖礦產出的同時,把更多的挖礦獎勵給到交易需求量大的交易對(整體ZKS挖礦產出降低30%),其中大部分交易對的獎勵減少25%,少部分年化過高的交易對獎勵降低50%。此外,ZKS單幣挖礦,用戶只需在L2錢包中持有ZKS即可參與挖礦(可同時參與ZKS持幣生息活動)。[2021/5/24 22:38:39]

2.編譯器(Compiler)

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

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

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

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

ZKSwap將于4月26日18時開啟第三期流動性挖礦 增加ZKS單幣挖礦:官方消息顯示,ZKSwap 已于北京時間 2021 年 4 月 24 日 18 時完成流動性挖礦加碼活動的第二次減產,本次減產涉及 WBTC/ETH、BBTC/ETH、WBTC/BBTC 三個交易對及 WBTC、BBTC、ETH 單幣挖礦池。根據公告,ZKS 挖礦產出量減少 20%。

此外,ZKSwap 將于北京時間 2021 年 4 月 26 日 18 時開啟第三期流動性挖礦活動。為提升ZKSwap 使用體驗和激勵 ZKS 持有人,本次活動將削減大部分交易對的挖礦產出,更多的挖礦獎勵給到交易需求量大的交易對(整體 ZKS 挖礦產出降低 70%)。并且為賦能 ZKS、提升 ZKS 使用場景,本次活動新增了 ZKS 單幣挖礦,只需在 L2 錢包中持有 ZKS 即可參與挖礦(可同時參與 ZKS 持幣生息活動)。

ZKS 與 XDEX 項目方聯合開展的雙挖活動已接近尾聲,活動期間雙方聯合提供了上百萬美金的獎勵,共計吸引了數百萬美金的資金參與流動性挖礦。XDEX 項目方為答謝用戶,將額外提供 10 萬個 XDEX 對 LP 提供者進行空投,已按照 4 月 25 日 17 時附近隨機快照中的資金池的占比發放至用戶 Layer2 錢包中,并且將于北京時間 2021 年 4 月 26 日起開啟新一輪雙挖活動。[2021/4/25 20:57:14]

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

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

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

系統使用的比特數越高,意味著驗證的成本越高。安全性反映在密鑰生成器。

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

兼容性取決于為電路的中間表示(intermediaterepresentation)的有效性。IR需要在正確性和靈活性之間取得了平衡。如果IR最初是為解決像R1CS這樣的低度(low-degree)約束系統而設計的,那么與其他更高級別(high-degree)的約束系統如AIR的兼容就很難。

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

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

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

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

Pinocchio協議:?在可驗證性和驗證成功率方面提供了理論上的可行性,是基于電路的系統

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

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

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

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

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

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

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

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

*如何讀懂上面的表格?一些注解...

●Wordsize?-由于這些虛擬機所基于的約束系統是AIR,其功能與CPU架構類似。所以選擇CPU字長比較合適。

●Memoryaccess-Risc0使用寄存器(register)的原因主要是Risc-V指令集是基于寄存器的。Miden主要使用堆棧(stack)來存儲數據,因為AIR的功能與堆棧類似。CairoVM沒有使用通用寄存器(general-purposeregister),因為Cairo模型中的內存訪問(mainmemory)成本較低。

●Programfeed-不同方法是有取舍的。例如,對于mastroot方法來說,它需要在處理指令時進行解碼,因此在執行步驟較多的程序中下證明者的成本較高。Bootloading方法試圖在保持隱私的同時在證明者成本和驗證者的成本之間取得平衡。

●Non-determinism-非確定性是NP-complete問題的一個重要屬性。利用非確定性有助于快速驗證過去的執行。反過來說,它增加了更多的約束條件,因此在驗證方面會有一些妥協。

●Accelerationoncomplexoperations-?有些計算在CPU上運行很慢。例如,位操作,如XOR和AND,哈希程序(hashprogram),如ECDSA,還有范圍檢查(range-check)......大多是區塊鏈/加密技術的原生但不是CPU原生的運算。直接通過DSL來實現這些運算會很容易導致證明的周期(cycle)耗盡。

●Permutation/multiset(排列/多列組合)?-在大多數zkVM中大量使用,有兩個目的--1.通過減少存儲完整的執行軌跡(executiontrace)來降低驗證者的成本2.證明驗證者知道完整的執行軌跡

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

R0目前的發展:

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

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

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

d.Stillawork-in-progress!還在開發中!

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

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

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

WHATEXCITESME:

a.簡單且可驗證!

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

b.更多更實際的用例:

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

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

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

Tags:ZKSISCIONISAzksync幣imtokenisc幣騙局Aphelionunisat.io

Filecoin
MNI:Waterdrip Capital:比特幣閃電網絡上的 DeFi 研究_OMN

原文作者:Bill,WaterdripCapital 引言 比特幣是現今最成熟的數字貨幣系統,無需任何中間人,用戶可在比特幣的網絡里轉移貨幣,實現對商品和服務的支付能力.

1900/1/1 0:00:00
EOS:安全公司 Dedaub 發現 Solidity 編譯器存在漏洞,多數已部署合約中的死代碼極大增加 Gas 費成本_ELD

安全公司Dedaub團隊發現以太坊編程語言Solidity編譯器存在漏洞,導致已部署的合約字節碼中包括死代碼,致使部署和操作智能合約時極大地增加了Gas費成本.

1900/1/1 0:00:00
PAR:Paradigm 新任命兩位普通合伙人,其投資策略會有哪些影響?_ADI

作者:潤升,ChainCatcher熊市期間,在一眾加密公司裁員、降薪的波動之際,加密頂級VC基金Paradigm的人事動向引發關注.

1900/1/1 0:00:00
EFI:2022 年 Web3 開發者報告:新人開發者數創新高,DeFi 開發者增加 240%_NFT

撰文:Maria,ElectricCapital 編譯:十文,星球日報 ElectricCapital發布了2022年度區塊鏈開發者報告,分析了多個生態提交的2.5億份代碼.

1900/1/1 0:00:00
比特幣:2023 年 ZKR 和 OR 的首次論戰:EVM 等效是下限,而不是上限?_ROL

作者:念青,ChainCatcher從去年下半年以來,zk-Rollup擴容項目開始集中發力,不斷追趕進度,相關的方案和項目也開始涌現,也在獲得更多的資金和關注度.

1900/1/1 0:00:00
VER:Web3 多鏈錢包 Cypher 完成 430 萬美元種子輪融資,Y Combinator 領投_ROVER幣

Web3多鏈錢包Cypher宣布完成430萬美元的種子輪融資,由YCombinator領投。根據一份公告,這項股權交易于6月完成,OrangeDAO、SamsungNext和Coinbase前首.

1900/1/1 0:00:00
ads