TL;DR
1.我们正在努力构建第一个基于PE-VM的ZKVM,通过ZK-friendly的设计和ZK算法的改进,使它具备更高的吞吐率;其技术特点如下:
a.证明快:
i.ZK-friendly:获得更小的电路规模,以及精简的底层约束单元;
ii.更快的ZK实现:对plonky2的进一步优化改进;
b.执行快:
采用并行执行的VM。
2.我们已经做的工作:
a.2022年7月份,发布了OlaVM的白皮书;
b.2022年11月份,完成指令集的设计和开发,并初步实现了OlaVM的虚拟机执行模块,你可以打开链接:https://github.com/Sin7Y/olavm去查看我们的代码,持续更新中!!!
c.针对目前执行效率最快的ZK算法,我们完成plonky2的电路设计及算法研究,你可以打开链接:https://github.com/Sin7Y/plonky2/tree/main/plonky2/designs去了解plonky2更多的设计,下一步我们将对其进行优化改进,请持续关注。。。
Aleo CEO透露该项目在Gemini的账户被该交易所无端关停:6月29日消息,可编程隐私网络Aleo的首席执行官Alex Pruden透露,该项目在Gemini的账户上周被该交易所无端关停。Alex就此评论称,虽然Aleo收回了该账户内的资金,但Gemini并未就关停做出任何解释,这再次证明了交易所作为中心化服务商可以随心所欲地就是否提供服务改变主意,“不是你的私钥,就不是你的代币”。[2023/6/29 22:06:58]
我们正在做什么?
OlaVM是首个把并行执行的VM引入的二层的ZKVM,融合两种方案的技术点,获得更快的执行速度和更快的证明速度,从而在未来实现更高的系统吞吐率。
在现在的以太坊系统中,造成吞吐率慢的原因主要有两个:
1.共识的过程:每个节点重复执行交易进行交易的有效性校验;
2.交易的执行:交易的执行是单线程的。
耐克将其.SWOOSH NFT引入EA Sports游戏生态:6月2日消息,运动服装巨头的数字化部门Nike Virtual Studios和视频游戏开发商EA Sports正在合作,将耐克的 .SWOOSH平台的数字创作带入EA Sports游戏生态系统,此次合作将允许.SWOOSH成员和EA Sports粉丝“通过游戏来表达他们的个人风格”,这包括“沉浸式体验”和“EA Sports生态系统内的新级别定制”。[2023/6/2 11:53:14]
为了解决问题第1点,且需要同时具备可编程性,许多项目进行了ZK(E)VM的研究,即交易在链下完成,链上只验证状态,但是想要真正提高系统吞吐率,则需要尽可能快的生成证明;为了解决问题第2点,Aptos,Solona,Sui等新公链引入了可以并行执行的VM来提高系统的吞吐率。
尽管在现阶段,对于ZK(E)VM来讲,影响整个系统吞吐率瓶颈在于证明的生成;但是当采用Parallelprove去加快整个系统吞吐率时,区块生成的越快,则对应的证明生成开始的时间就越早。
如何获取高吞吐率?
比特币全网未确认交易数量为11935笔:金色财经报道,BTC.com数据显示,目前比特币全网未确认交易数量为11935笔,全网算力为270.51 EH/s,24小时交易速率为3.50交易/s,目前全网难度为34.09 T,预测下次难度上调9.87%至37.46 T,距离调整还剩4天3小时。[2023/1/12 11:07:17]
尽可能快的证明生成(目前最高优先级)
想要加速证明的生成,其大体可以分为两个部分:尽可能小的电路规模和尽可能快的算法执行;尽可能快的算法执行又可以分为:算法本身参数的提升和外部执行环境的改善。
1.尽可能小的约束规模
是的,证明生成的消耗是和约束的整体规模n强相关的,如果能大幅缩减整体的约束规模,则证明的生成的时间则会明显减少。这就要求,在VM的设计中,你需要使用尽可能多的设计以减少整体的约束规模。
a.Prophet
Prophet的意思为“预言家”,先“预言”再“校验“,其主要目的是:针对一些复杂的计算,我们不需要用VM的指令去实现这些复杂的计算;而是利用内置的Prophet去完成计算,并且把结果发送给VM,然后VM只是执行对于这个结果的合法性校验。Prophet是一些具备特定计算功能的内置函数,比如除法计算,平方根计算,立方根计算等等,我们会根据实际场景,逐渐丰富Prophets库,使得对于大部分复杂计算场景,整体约束的缩减效果达到最大化。
Jump Crypto报告:UST崩盘期间,大型投资者选择退出而散户继续买入:6月3日消息,Jump Crypto在一份关于Terra崩盘的报告中表示,UST脱锚期间,一些大型投资者退出了与Terra相关的头寸,而小型投资者却在继续买入。
到目前为止,该公司基本上对Terra的消亡保持沉默。尽管Jump的总裁Kanav Kariya在LFG基金会的网站上被列为管理委员会成员,但该报告没有讨论他的公司在此次事件中扮演的角色。
基于公开区块链交易(不包括Jump的内部数据)的发现表明,一些大型投资者比许多较小的投资者更早地退出了UST头寸,这再次表明加密货币仍然是大型专业玩家的游戏。
由研究人员Nihar Shah和Maher Latif撰写的Jump Crypto报告指出,UST的一些大储户早在5月7日就退出了Anchor,而一些小储户则在5月7日至5月9日期间增加了敞口。Jump表示,UST从Anchor流出在UST进一步脱锚方面发挥了关键作用。
报告总结称:“然而,小储户的总仓位规模比中型和大型储户小一个数量级,因此敞口的增加不足以抵消资金外流。”此外,Jump认为,根据对钱包历史的分析,引发这场崩盘的钱包不太可能与专业交易实体有关。(彭博社)[2022/6/3 3:59:59]
b.Zk-friendly
Web3项目Saga完成650万美元种子轮融资,Polygon Studios等参投:5月19日消息,专注于为游戏和娱乐开发商提供区块链空间的协议Saga以1.3亿美元估值完成650万美元种子轮融资,Maven 11、Longhash Ventures、Hypersphere、Figment、Polygon Studios、Samsung NEXT、Chorus One、GSR、C2X、CRIT Ventures、Akash Network、Unanimous Capital、Strangelove Ventures、Tess Ventures、Merit Circle、Hustle Fund、Polymer、Zaki Manian、Jae Kwon、Garrette Furo、Alex Shin、Nick Tomaino和其他天使投资人参投。
据悉,Saga允许Web3开发人员访问专用的“chainlets”,以帮助扩展其操作。此外,Saga计划在明年年初推出其主网和代币。在接下来的几个月里,它将发布一个“AlphaNet”,开始引入开发者,并与基础设施和游戏公司建立合作关系。(The Block)[2022/5/20 3:29:02]
当计算是复杂计算时,Prophet可以帮助缩减VM执行的轨迹大小;但在此之前,我们更希望这个计算本身是Zk-friendly。因此,在设计中,我们会采用一些Zk-friendly的操作,比如常见的哈希算法,验签算法等;这些优化也经常存在于其他ZK(E)VM的方案里;但最终的关键就是,当你选择一个Zk-friendly的复杂计算时,如何用更小的约束去约束这个复杂的计算?
VM本身除了要执行计算逻辑之外,还会有一些其他的操作同样需要被证明,比如RAM操作。基于堆栈的VM,每次访问时,都要进行POP,PUSH的操作;而在验证层面,仍然需要去校验这个操作的有效性,这些操作会组成独立的Table,然后用约束去校验这些堆栈操作的有效性;而基于寄存器的VM,执行相同的逻辑,得到的执行轨迹更小,因此约束规模也更小。
2.尽可能快的算法执行
由于Plonky2的惊人性能表现,我们暂时以Plonky2作为OlaVM的ZK后端。我们已经深入分析了Plonky2的Gate设计,Gadget设计和协议原理,并从中找到了一些优化方向,你可以关注我们的GithubRepo:Plonky2designs去了解更多相关的信息。
更快的交易执行(现阶段不是瓶颈)
在OlaVM的设计中,Prover是无许可的,任何人都可以接入;因此,当你有许多Prover资源时,你可以并行的去为这些区块生成证明,然后把这些证明聚合在一起,提交到链上验证。由于Prover是可以并行的,因此区块生成的越快,对应的证明就可以提前生成,这样最终链上验证的时间也会提前。
当证明生成需要很久的时候,比如几个小时,并行执行带来的提升并不是很明显;有两个场景可以提高这种并行带来的效果,一个是聚合的区块数量变大,达到量变引起质变;另外一个是证明时间大大缩短。当然两个提升效果叠加,会更好一些。
兼容性?
对于ZKVM来说,具备某种兼容性是为了方便初期的生态构建,毕竟在区块链行业发展至今,已经有许多成熟的应用部署在现有的系统上,以太坊上的生态更为丰富。因此,能实现对这些既有生态的兼容,使得这些项目可以无缝迁移,对项目初期生态的构建有很大的帮助。
当然,OlaVM的主要目标仍然是构建一个高吞吐的ZKVM,当我们的第一步做的不错时,我们会考虑去实现兼容性,特别是以太坊的兼容性,这也会在我们的路线图中。
AllTogether
集成上述所有模块,整个系统的数据流程图大概如下图所示:
ComingSoon
1.2022-12月初:
a.完成OlaVMDSL设计;
b.完成OlaVM预编译合约的设计和开发;
c.完成OlaVM指令约束和Context约束和预编译合约约束;
d.完成Plonky2的第一阶段优化。
参考
1.OlaVM:https://olavm.org/whitepaper/OlaVM-07-25.pdf
2.Plonkish:https://zcash.github.io/halo2/concepts/arithmetization.html
3.CairoVM:https://starknet.io/docs/how_cairo_works/cairo_intro.html#field-elements
4.Plonky2:https://github.com/Sin7Y/plonky2/blob/main/field/src/goldilocks_field.rs
5.Ingonyama:https://github.com/ingonyama-zk/cloud-ZK
6.Semisand:https://semisand.com/
7.Plonky2designs:https://github.com/Sin7Y/plonky2/tree/main/plonky2/designs
关于我们
Sin7y成立于2021年,由顶尖的区块链开发者组成。我们既是项目孵化器也是区块链技术研究团队,探索EVM、Layer2、跨链、隐私计算、自主支付解决方案等最重要和最前沿的技术。
微信公众号:Sin7Y
GitHub|Twitter|Telegram|Medium|Mirror|HackMD|HackerNoon
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。