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

OLA:Sin7y团队解读:关于在 ZKEVM 中移除内存限制的一些想法

作者:

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

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

无论是哪种方案,都需要用zk去约束VM的所有的行为,这些行为包括:

?执行合约计算逻辑

??执行内存访问

??执行哈希计算

??执行世界状态更新

??...

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

过去24小时BRC-20代币ORDI爆仓为46.96万美元:金色财经报道,数据显示,过去24小时BRC-20代币ORDI爆仓为46.96万美元,其中爆仓多单11.86万美元,爆仓空单35.1万美元。[2023/6/4 11:56:39]

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

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

Memory的设计

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

Zerion iOS版本发布更新,新增支持连接Ledger硬件钱包:4月17日消息,Web3 钱包 Zerion iOS 版本发布 2.15.1 版本更新,更新内容包括可自主添加网络、可使用钱包登陆 DApp 及 Web2 应用、支持连接 Ledger 硬件钱包等。[2023/4/17 14:09:16]

图片来源:ethereum_evm_illustrated,page51

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

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

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

???MSTORE8(x,y):从地址x开始,写入8字节的y(低位开始)

有兴趣的读者可以在EVMPlayground上感受下,上述内存操作带来的内存和栈的变化。

Memory的约束

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

Parallel Crosschain功能上线,支持一键转移DOT/KSM资产:据官方消息,Parallel Crosschain功能上线,用户可以一键转移DOT/KSM资产。据悉,波卡XCM跨链于今年5月份上线,之后Parallel和生态内多个平行链开通HRMP跨链通道,并在DApp中开发专用于用户跨链转移DOT、KSM资产的产品Cross Chain。转入Parallel的DOT、KSM 资产支持在Crowdloan、Money Market、Liquide Staking、AMM、DAOFi产品中使用。Parallel还将发布Parallel Wallet,可用于跨链管理资产。[2022/9/5 13:09:59]

在OlaVM中,RAM的所有操作组成一个独立的table,table里的内容由memory和storage两种类型组成。在这里,我们只关注对于memory的约束。

内存的操作类型大体可以分为三类:

??Init操作

??write操作

??read操作

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

持有比特币价值超过100万美元的百万富翁数量骤减:6月30日消息,由于加密货币市场的低迷,超过80,000名比特币投资者持仓价值跌破100万美元。根据BitInfoCharts的数据,在去年11月12日,就在比特币创下约69,000美元的历史新高几天后,共有108,886个比特币地址报告余额超过100万美元。由于比特币的价格跌至20,000美元上下,据报道只有26,284个地址包含价值超过100万美元的资产,这意味着比特币百万富翁的数量在整个熊市期间下降了75%。同样,拥有价值超过1000万美元的比特币钱包的人,从去年11月10,587个地址减少至今的4,342个地址,下降了58%。[2022/6/30 1:42:19]

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

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

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

一些可能性的提升

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

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

Yuga Labs起诉“RR/BAYC”NFT系列侵权:6月26日消息,Yuga Labs已起诉艺术家Ryder Ripps和几名相关人员,指控他们使用原始的BAYC图像,大量生产和销售山寨版NFT系列“RR/BAYC”,从而导致BAYC NFT贬值。诉讼中指出,BAYC NFT系列只有1万个作品,每个都是独特的,经常以数十万美元的价格转售。Yuga Labs寻求限制Ripps等人的进一步侵权行为,并要求赔偿损失和律师费。

此前6月22日报道,BAYC仿盘RR/BAYC已被NFT市场OpenSea下架。(The Block)[2022/6/26 1:32:21]

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

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

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

注意:这可能会增加虚拟机的实现难度,因为这是一个不常用的内存模型;并且,我们应该不会首先在这个虚拟机上面去定义一个高级DSL,因为这个语言对Dapp开发者会有些不友好,需要在编译器层面去消除,使得这些不友好,对开发者不可见。

所以,如果采用上述内存模型,内存模块的约束,将只剩下针对write操作的约束,即使用copyconstraints来保证写入的值是对的即可。无须约束:

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

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

??内存的初始化值为0

参考

1.ThedifferenttypesofZK-EVMs:

https://vitalik.ca/general/2022/08/04/zkevm.html

2.privacy-scaling-explorations/zkevm-specs:

https://github.com/privacy-scaling-explorations/zkevm-specs

3.PolygonzkEVMDocumentation:

https://docs.hermez.io/zkEVM/Overview/Overview/

4.OlaVM:AnEthereumcompatibleZKVM:

https://olavm.org/whitepaper/OlaVM-07-25.pdf

5.EVM:

https://ethereum.github.io/yellowpaper/paper.pdf

6.ethereum_evm_illustrated,page51:

https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf

7.EVMPlayground:

https://www.evm.codes/playground

8.OlaVM:

https://olavm.org/whitepaper/OlaVM-07-25.pdf

关于我们

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

微信公众号:Sin7y

GitHub:Sin7y

Twitter:@Sin7y_Labs

Medium:Sin7y

Mirror:Sin7y

HackMD:Sin7y

HackerNoon:Sin7y

Email:contact@sin7y.org

来源:金色财经

标签:OLASINTHEEMOHOLA币MARSINUethereumuniswapLEMO价格

火必热门资讯
区块链:区块链行业的达摩克利斯之剑:隐私与监管

隐私赛道为何一直受到顶级风投青睐?细数发展脉络和前景。原文标题:《TheSwordofDamoclesinBlockchain:PrivacyandRegulation》撰文:JimmyQi、S.

1900/1/1 0:00:00
BIT:八哥币圈:9/19ETH精准布局 多空完美获利70个点 真金不怕火炼 实力等你来验

操作建议:1325-1308附近空单进场,目标点位看1290-1270附近,破位继续持有,不破低位多单进场,目标点位看1330附近,已到目标点位附近,恭喜跟单操作的实仓客户多空完美获利70个点.

1900/1/1 0:00:00
ANI:Wintermute 1.6亿美金天价损失 或因Profanity造成私钥泄露

加密做市商Wintermute遭到黑客攻击,造成了1.625亿美元的天价资产损失。CertiK安全专家经过初步调查分析,认为此次攻击是由于私钥泄漏所导致,而非智能合约漏洞.

1900/1/1 0:00:00
ETA:奇怪的中文 ENS 域名:会赚钱的肉体与搞笑的灵魂

分析NFT交易数据时,经常能看到一些有趣的中文ENS域名。ENS作为WEB3的身份标识,从域名的字眼间也能看出持有者的个性而对于在NFT交易信息流中出现的中文域名,我大致分为两类:1.会赚钱的肉.

1900/1/1 0:00:00
DAO:与其寻觅基因突变的土狗,不如押宝蓄势待发的熊猫

Luna崩盘,以太腰斩,进入2022年后,加密市场迎来了一次大洗牌,所有人都开始逐渐意识到熊市已来.

1900/1/1 0:00:00
FTX:9-20晚间ETH行情分析 没有不盈利的波动 只有不成功的操作

ETH行情分析:4小时级别上方突破上轨压力有所下行,目前站上1350上方,接下来可着重关注是否能够在此点位站稳,并依托此点位上蓄势反弹,技术指标中,布林通道多头排列向上,低点上移.

1900/1/1 0:00:00