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执行的过程中,除了计算本身外,还存在一些内存访问操作,我们需要把一些数据提前放在内存里,然后在执行计算的时候取出来。
Beosin:Palmswap被攻击是因为添加和删除流动性的计算方法有问题:7月25日消息,Beosin Alert发推称,Palmswap被攻击是因为添加和删除流动性的计算方法有问题,当攻击者添加流动资金时,USDP和PLP之间的汇率为 1:1。 然而,当移除相同数额的PLP时,攻击者能够将其兑换为1.9 倍的USDP,从而获利。
此前消息,Palmswap遭攻击,损失超90万美元。[2023/7/25 15:56:43]
而由于大部分的VM都是读写内存,因此不得不约束这些内存访问操作的正确性;对于内存访问的约束本身并不复杂,但是由于内存访问的次数很高,所以导致多项式的阶数很高,使得内存相关的约束证明耗时比较可观。
在ZK(E)VM的方案中,我们更应该把zk主要应用在对于计算本身的证明,对于EVM的其他行为,我们可以在VM层面去优化,以减少zk约束的规模。
Memory的设计
以EVM为例,EVM的内存是一块很简单的字节数组,可以存储32字节或者1字节的数据,也可以读取32字节的数据。
Beosin:Themis Protocol被攻击事件分析:据区块链安全审计公司Beosin旗下Beosin EagleEye安全风险监控、预警与阻断平台监测显示,2023年6月28日DeFi借贷协议Themis Protocol遭到攻击,攻击者获利约37万美元,Beosin Trace追踪发现已有130,471个USDC、58,824个USDT和94个ETH被盗,目前,被盗资金被转移到以太坊的0xDb73eb484e7DEa3785520d750EabEF50a9b9Ab33地址。其攻击的原因在于预言机实现存在问题,导致预言机被操纵。
攻击交易为:0xff368294ccb3cd6e7e263526b5c820b22dea2b2fd8617119ba5c3ab8417403d8。攻击的核心是攻击者在借款前,用大量WETH兑换wstETH,使得预言机获取价格时被操纵,导致攻击者仅用55WETH借出317WETH。
如图,在getAssetPrice函数调用Balancer: Vault.getPoolTokens函数时,wstETH与ETH数量从正常的2,423 : 2,796被操纵为0.238 : 42,520.从而操纵了预言机。[2023/6/28 22:05:01]
新火科技上线Sinohope Staking技术支持服务,布局去中心化业务:金色财经报道,新火科技宣布推出去中心化Staking技术支持服务Sinohope Staking。首期服务支持Cosmos链,未来计划拓展至以太坊、EOS、LINK等其他主流公链。
Sinohope Staking旨在提供安全专业的技术支持和服务,以便用户快捷高效地参与去中心公链Staking生态,平台不经手亦不会持有任何客户资产。客户无需托管虚拟货币资产,通过自主决定参与及 操作,自行管理资金,即可成为众多PoS公链的节点,从而获得稳健、低风险的收益。[2023/1/30 11:36:28]
图片来源:ethereum_evm_illustrated,page51
在EVM中,和Memory相关的指令有:
???MLOAD(x):从地址x处加载32字节的数据到调用栈(stack)
???MSTORE(x,y):从地址x开始,写入32字节的y
???MSTORE8(x,y):从地址x开始,写入8字节的y(低位开始)
Algorand基金会任命Harpal Singh为首席财务官:10月13日消息,Algorand基金会任命Harpal Singh为首席财务官,Singh将监督Algorand基金会的财务事务,并与高级管理层密切合作,以确保有效实施业务战略,鼓励整个Algorand生态系统的发展,以解决现实世界的问题。(PR News Wire)[2022/10/13 14:26:37]
有兴趣的读者可以在EVMPlayground上感受下,上述内存操作带来的内存和栈的变化。
Memory的约束
在OlaVM的5.3.5节,你可以看到关于Memory约束的设计原则(OlaVM内存相关的指令和EVM类似)。
在OlaVM中,RAM的所有操作组成一个独立的table,table里的内容由memory和storage两种类型组成。在这里,我们只关注对于memory的约束。
动态 | Singularity交易所发布Beta测试:据globenewswire消息,区块链技术公司Singularity交易所宣布,其项目已进入beta测试阶段。Singularity利用Laser 和Stellar网络的能力,通过使用联合侧链来连接这两个网络,能够提供分散的托管以及分散的订单。[2018/9/28]
内存的操作类型大体可以分为三类:
??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开发者会有些不友好,需要在编译器层面去消除,使得这些不友好,对开发者不可见。
所以,如果采用上述内存模型,内存模块的约束,将只剩下针对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
来源:金色财经
标签:OLAMEMOTPSETHERInverse Bitcoin Volatility Index TokenMEMO币tps币行情togetherbnbH补丁
今日加密市场在美联储FOMC与利率决议前皮软下跌,截止目前宣布加息75个基点的几率高达84%,加息100个基点的几率只有14%。75基点已经是意料之中,重点是利率决议对后面的经济展望和点阵图上.
不需要太多的赘述,花哥只是把市值第五的luna预测归零,熊市可以什么都不用做,关注花哥就够了。?据《金融时报》报道,韩国检方要求国际刑警组织对DoKwon发布红色通缉令,并表示DoKwon拒绝配.
午间发布的文章空单给出了明确的进场点位1350~1360区域,那么行情也比较符合预期的给到了进场点1359位置,当前低点来到1302,跟上操作的朋友目前均有可观的空间可落袋.
以太坊的共识机制正式计划从使用能源密集型的“工作量证明”转变为使用极少量能源的“权益证明”,已经有了4个年头.
在实现元宇宙和Web3之前,元宇宙公链仍有大量的改进空间,元宇宙公链需要更大的扩展性来实现大规模的消费者应用。元宇宙公链需增强与VR、AR、AI等技术的结合,为用户提供更佳的元宇宙体验.
由于交易员等待美联储主席杰罗姆鲍威尔关于下一次加息规模的声明,整个市场的价格仍然疲软。?目前,市场共识是加息0.75个基点,一小部分分析师预计加息1%.