火星链 火星链
Ctrl+D收藏火星链
首页 > USDT > 正文

EMO:关于在ZKEVM中移除内存限制的一些想法-ODAILY

作者:

时间:1900/1/1 0:00:00

ZKEVM是一个具有可编程性,以ZK技术为基础的虚拟机,它可以为虚拟机执行的所有操作生成一个零知识证明,用来证明虚拟机执行操作的正确性。有关ZKEVM的几种实现方案介绍及优劣对比,可以参考V神的文章:ThedifferenttypesofZK-EVMs;如果你想了解更多的设计细节,你也可以阅读PSE的ZKEVM方案(native-level):privacy-scaling-explorations/zkevm-specsPolygon的ZKEVM设计(bytecode-level):PolygonzkEVMDocumentation;Sin7y的ZKEVM设计(language-level):OlaVM:AnEthereumcompatibleZKVM。\n\n无论是哪种方案,都需要用zk去约束VM的所有的行为,这些行为包括:

印度财政部长:G20成员国对FSB关于加密资产活动和全球稳定币安排的建议表示欢迎:金色财经报道,印度财政部长表示,G20成员国讨论了加密资产生态系统所带来的宏观、金融和监管挑战,以及全球所需的潜在政策应对措施。印度在数字公共基础设施方面的成就和规模化行动受到了很好的认可。G20成员国对金融稳定委员会(FSB)关于加密资产活动和全球稳定币安排的高级建议表示欢迎。FSB和IMF即将发布的综合报告,以及主席团备忘录,这将成为G20成员了解如何进一步处理这个问题、达成全球政策和监管框架以及采取立场的重要参考。G20成员需要采取进一步行动,以制定全球政策和监管框架。[2023/7/18 11:02:19]

?执行合约计算逻辑

?执行内存访问

?执行哈希计算

?执行世界状态更新

Upbit运营商Dunamu否认关于“计划2025年赴美上市”的报道:2月22日消息,韩国加密交易所Upbit运营商Dunamu表示,该国多家媒体关于其“计划2025年赴美上市”的报道不属实。(Money Today)[2023/2/22 12:21:51]

?...

众所周知,zk在计算压缩领域,具有极大的应用的前景;无论原始的计算多么复杂,其验证过程都十分高效,这是所有zk算法的基本技能。因此,对于VM执行过程中的计算部分,zk可以很好的发挥作用;而在VM执行的过程中,除了计算本身外,还存在一些内存访问操作,我们需要把一些数据提前放在内存里,然后在执行计算的时候取出来。

而由于大部分的VM都是读写内存,因此不得不约束这些内存访问操作的正确性;对于内存访问的约束本身并不复杂,但是由于内存访问的次数很高,所以导致多项式的阶数很高,使得内存相关的约束证明耗时比较可观。

SBF转发了关于“孙宇晨称正与FTX一起制定解决方案以支持FTX上Tron系Token”的推文:金色财经报道,FTX创始人Sam Bankman-Fried(SBF)转发了关于“孙宇晨称正与FTX一起制定解决方案以支持FTX上Tron系Token”的推文。[2022/11/10 12:43:25]

在ZK(E)VM的方案中,我们更应该把zk主要应用在对于计算本身的证明,对于EVM的其他行为,我们可以在VM层面去优化,以减少zk约束的规模。

Memory的设计

以EVM为例,EVM的内存是一块很简单的字节数组,可以存储32字节或者1字节的数据,也可以读取32字节的数据。

加拿大政府更新了关于旅游限制的豁免措施:加拿大政府更新了关于旅游限制的豁免措施,来保护加拿大公民以及支撑加拿大经济。所有从加拿大境外抵达加拿大的人员均须从抵达当日起隔离14天。:对于已经承诺在加拿大工作、学习或定居的非本国民众,豁免航空旅行限制。[2020/3/21]

图片来源:ethereum_evm_illustrated,page51

在EVM中,和Memory相关的指令有:

?MLOAD(x):从地址x处加载32字节的数据到调用栈(stack)

?MSTORE(x,y):从地址x开始,写入32字节的y

?MSTORE8(x,y):从地址x开始,写入8字节的y(低位开始)\n有兴趣的读者可以在EVMPlayground上感受下,上述内存操作带来的内存和栈的变化。

BitTrade发布关于咨询平台异常的公告:5月25日11点开始,本公司网站上咨询平台出现异常。目前异常仍未恢复,还在确认异常原因。一旦解决,BitTrade会马上发布公告。[2018/5/25]

Memory的约束

在OlaVM的5.3.5节,你可以看到关于Memory约束的设计原则(OlaVM内存相关的指令和EVM类似)。

在OlaVM中,RAM的所有操作组成一个独立的table,table里的内容由memory和storage两种类型组成。在这里,我们只关注对于memory的约束。\n内存的操作类型大体可以分为三类:

?Init操作

?write操作

?read操作

触发Init的场景有三种,分别是ctx的变换,type的变化,addr的变化;当任何一个场景触发时,需要约束,操作类型为w(write),v(value)为0。

当上述三种场景没有触发时,则需要根据当前的操作类型来约束;

?如果是w(write)操作,需要约束clk是递增的,写入的值v是对的。

?如果是r(read)操作,需要约束clk是递增的,读取的值和上次写入的值是相同的。

一些可能性提升

?对于Init操作,需要约束一个内存地址的初始化的值为0么?

我认为没有必要对初始化的操作进行约束;实际上,对于任何地址,你可以约束它的第一次访问必须是write操作,而不是read操作;而如果是write-once内存模型,这个限制将天然存在,因此,如果虚拟机的内存模型改为write-once模型,将减少对内存的访问约束。

?对于read操作,能否避免对应的约束,即避免校验读取的值和上次写入的值一致?

由于VM本身定义的memory类型的读写内存,无法保证,VM在读取这个内存地址的值之前,这个地址的值没有被修改,因此需要增加一个相等性校验,如下图所示:

由此可以看出,产生这个约束的核心原因,内存模型是读写内存,地址的值存在被改写的可能,因此,如果尝试使用只读内存,那么就不需要在memory的约束去实现上述的一致性约束。

注意:这可能会增加虚拟机的实现难度,因为这是一个不常用的内存模型;并且,我们应该不会首先在这个虚拟机上面去定义一个高级DSL,因为这个语言对Dapp开发者会有些不友好,需要在编译器层面去消除,使得这些不友好,对开发者不可见。\n\n所以,如果采用上述内存模型,内存模块的约束,将只剩下针对write操作的约束,即使用copyconstraints来保证写入的值是对的即可。无须约束:

?读取的值等于写入的值,因为内存只能被写一次

?读的clk大于写的clk,因为只能先写再读

?内存的初始化值为0

参考

ethereum_evm_illustrated,page51

关于我们

Sin7y成立于2021年,由顶尖的区块链开发者组成。我们既是项目孵化器也是区块链技术研究团队,探索EVM、Layer2、跨链、隐私计算、自主支付解决方案等最重要和最前沿的技术。

微信公众号:Sin7Y

GitHub|Twitter|Telegram|Medium|Mirror|HackMD|HackerNoon

标签:MEMEMOMEMOMORAIMemesSafeMoon Inuevmos币的memo是什么MORPHO价格

USDT热门资讯
SAFE:DAOrayaki:为什么Web3需要ZK身份?-ODAILY

原文作者:0xPARC原文标题:ZKIdentity:WhyandHow(Part1)这篇文章是作为系列文章中的第一篇,介绍了为什么密码学的进步对于实现新的身份基元如此重要.

1900/1/1 0:00:00
BLS:zkPairing:椭圆曲线配对的zkSNARKs-ODAILY

作者配对是许多加密协议的核心组成部分。本文我们介绍circom-pairing1,一种在Circom用于椭圆曲线配对的zkSNARK电路的概念验证实现.

1900/1/1 0:00:00
NFT:JZL Capital区块链行业周报第35期:九月缩表将近,鲍威尔带头砸盘-ODAILY

本周概览-美国股市在鲍威尔周五坚守加息立场后暴跌超过3%。他提到了哪些内容,将如何影响未来市场?-加密市场最近经历了为期六周的反弹,然而链上活动仍然保持弱势.

1900/1/1 0:00:00
NFT:JZL Capital区块链行业周报第30期:V神解读以太坊最新蓝图-ODAILY

本周概览-V神在ETHCC5上宣布最新路线图,主要内容是什么?-特斯拉在其Q2财报符合预期的情况下抛售了75%的比特币,还有哪些科技巨头值得关注?一、行业动态上周加密市场触底反弹.

1900/1/1 0:00:00
GAME:GameFi陷入瓶颈后3A游戏会是出路吗?-ODAILY

DataSource:FootprintAnalytics3AGameDashboard无聊、跑的慢就血本无归——现在提到GameFi项目就会让用户联想到的两个感受.

1900/1/1 0:00:00
OIN:CoinW成为2022东亚杯官方合作伙伴,推进加密出圈-ODAILY

北京时间7月19日15时,伴随着韩国女足VS日本女足的开球,2022东亚杯正式打响,在未来9天共计12场的比赛中.

1900/1/1 0:00:00