撰文:Bryan, IOSG Ventures
皇冠足球 app畴昔的 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)。
最先,基于电路的系统的功能是将程序 (program) 平直升沉为管理条目 (constraints) 并送入阐发系统 (proving system);基于诬捏机的系统通过辅导集 (ISA) 扩充程序,在此过程中产生扩充轨迹 (execution trace)。这个扩充轨迹之后会被映射成管理条目,然后被送入阐发系统。
对于一个基于电路的系统,程序的计较由扩充程序的每台机器 (machine) 进行管理。而对于基于诬捏机的系统,ISA 被镶嵌到电路产生器 (circuit generator) 中,并产生程序的管理 (constraints),同期电路产生器有辅导集、运行周期、内存等等步调。诬捏机提供了通用性,即任何机器齐不错运行一个程序,独一该程序的运行条目在上述步调范畴内。
据群名为“工作通知群”聊天记录显示,该群共74,徐姓工作人员发布工作相关消息:“请涉及生态环境治理科室,对照《清单》将佐证材料梳理成册装订备检。”随后群名称“耿卫平局长”跟着回应:“涉及哪个科室请回复。”赵姓、张姓、魏姓、范姓4名工作人员回复后,“耿卫平局长”紧接着发送消息称:“明天一回戴套。”在诬捏机中一个 zkp 程序大约资历如下的进程:
图片起首: Bryan, IOSG Ventures
优裂缝:
从开采者 (developer) 的角度来看,在基于电路的系统中开采频频需要对每个管理条目的本钱有长远的了解。关联词,对于编写诬捏机程序来说,电路是静态的,开采者需要更饶恕的是辅导 (instructions)。从考据者 (verifier) 的角度来看,假定使用交流的纯 SNARK 手脚后端,基于电路的系统和诬捏机在电路的通用性方面有很大的不同。电路系统对每个程序产生不同的电路,而诬捏机对不同程序产生交流的电路。这意味着,在一个 rollup 中,电路系统需要在 L1 上部署多个考据合约 (verifier contract)。从应用 (application) 的角度来看,诬捏机通过将内存模子 (memory) 镶嵌到缠绵中,使应用程序的逻辑愈加复杂,而使用电路系统的想法是为了提高程序的性能。从系统复杂性 (complexity) 的角度来看,诬捏机将更多的复杂性纳入系统,如内存模子、主机 (host) 和客户 (guest) 之间的通讯等,比较之下电路系统更爽朗。以下是当前 L1/L2 中基于电路和基于诬捏机的不同的款式预览:
图片起首: Bryan, IOSG Ventures
诬捏机的缠绵原则在诬捏机中,有两个要津的缠绵原则。最先,确保程序被正确扩充。换句话说,输出 (output)(即管理条目 constraint)与输入 (input)(即程序 program)应当正确匹配。一般这是通过 ISA 辅导集完成的。其次,确保编译器 (compiler) 在从高档言语革新为适合的管理形状时能正确使命。
1. ISA 辅导集
杏彩体育代理轨则了电路产生器的使命神志。它的主要背负是将辅导 (instructions) 正确地映射到管理条目 (constraint) 中,这些管理条目随后被送入阐发系统 (proving system)。zk 系统使用的齐是 RISC( 精简辅导集 )。有两种 ISA 的选用:
第一种是自建一个自界说的 ISA(custom ISA),这在 Cairo 的缠绵中不错看到。一般来说,有如下四种类型的管理逻辑。
自界说 ISA 的基本缠绵要点是确保管理条目尽可能少,从而使程序的扩充和考据齐能快速运行。
皇冠澳门赌场第二种是愚弄现存的 ISA(existing ISA),这在 Risc0 的缠绵中被采取。除了以爽朗的扩充时候为想法外,现存的 ISA(如 Risc-V)还提供了罕见的公道,如对前端言语 (front-end language) 和后端硬件 (backend hardware) 友好。一个(有待惩办的可能)问题是,现存的 ISA 会不会在考据时候上有所逾期(因为考据时候并不是 Risc-V 的主要缠绵追求。
皇冠客服飞机:@seo36872. 编译器 (Compiler)
迂缓地来说,编译器会自由将编程言语翻译成机器代码。在 ZK 的环境下,它指的是使用 C、C++、Rust 等高档言语编译成管理系统(R1CS、QAP、AIR 等.)的初级代码示意。有两种方法,
菠菜注册送平台缠绵一个基于现存 zk 电路示意 (existing circuit representations) 的编译器 -- 比如说在 ZK 中,电路施展体式从 Bellman 这么的不错平直调用的库 (library) 和 Circom 这么的初级言语运转。为了团员不同的施展体式,Zokrates 这么的编译器(身亦然一个 DSL)旨在提供一个概述层,不错编译成轻易的更初级施展体式。基于(现存的)编译器基础设施 (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) 电路
耀才证券研究部总监植耀辉表示,原以为港股走势有望好转,但在刺激措施预期落空加上人民币汇价持续贬值,中港股市皆出现调整,恒指过去三个交易日便急挫822点或4.1%,并再度失守250天线(约19,550点)水平。究竟何时才推出一篮子刺激措施仍未可料(有传在7月中央经济工作会议后),只是市场气氛及信心进一步转弱的情况相当明显。由于现时投资者入市意欲甚低,恒指要扭转颓势不易,恐怕要待内地真正‘出招’后,走势始有望有所好转。但正如早前所指,即使港股有望反弹,但亦不宜有太大憧憬,始终港股缺乏‘领头羊’股份及受制于内地政策因素,何况港股上方阻力重重,250天线再度失守顿成短期阻力,另外两万关以及250月线(21,100点)阻力亦非轻。
使用通用模子 (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 的总裁。让咱们更长远地了解它们的分裂:
* 怎样读懂上头的表格?一些注解...Word size(字长) - 由于这些诬捏机所基于的管理系统是 AIR,其功能与 CPU 架构雷同。是以选用 CPU 字长(32/64 位)比较合适。Memory access(内存读取)- Risc0 使用寄存器 (register) 的原因主若是 Risc-V 辅导集是基于寄存器的。Miden 主要使用堆栈 (stack) 来存储数据,因为 AIR 的功能与堆栈雷同。CairoVM 莫得使用通用寄存器 (general-purpose register),因为 Cairo 模子中的内存看望 (main memory) 本钱较低。Program feed(程序扩充)- 不同方法是有弃取的。举例,对于 mast root 方法来说,它需要在处理辅导时进行解码,因此在扩充法子较多的程序中下阐发者的本钱较高。Bootloading 方法试图在保合手诡秘的同期在阐发者本钱和考据者的本钱之间取得均衡。Non-determinism(非笃定性)- 非笃定性是 NP-complete 问题的一个紧要属性。愚弄非笃定性有助于快速考据畴昔的扩充。反过来说,它增多了更多的管理条目,因此在考据方面会有一些和洽。Acceleration on complex operations(复杂运算的加快)- 有些计较在 CPU 上运行很慢。举例,位操作,如 XOR 和 AND,哈希程序 (hash program),如 ECDSA,还有范畴搜检 (range-check)......大多是区块链 / 加密技艺的原生但不是 CPU 原生的运算(除了位操作)。平直通过 DSL 来结束这些运算会很容易导致阐发的周期 (cycle) 破费。Permutation/multiset ( 成列 / 多列组合 ) - 在大多数 zkVM 中多数使用,有两个想法 --1.通过减少存储齐备的扩充轨迹 (execution trace) 来裁减考据者的本钱 2.阐发考据者知谈齐备的扩充轨迹著作临了笔者想谈谈 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 对本文的解救和修改冷落!亚星轮盘