金色观察|简析Arbitrum Rollup虚拟机的设计原理_ARB:RUM

Arbitrum和Optimism是以太坊Layer2扩容的主要项目,因为两者是以Rollup为技术核心实现的二层扩容,符合以太坊未来发展方向。

但面对未来丰富的生态应用预期,需要一个虚拟机来实现可编辑能力。因为Rollp的技术核心,却让这个方向成为一个实现略难的技术需求,目前两者也限于虚拟机并不成熟。使得在这一层的可编辑能力有所限制。

今天本文中,我们将摘录资料来了解Arbitrum网络的虚拟机设计原理。

AVM设计的起点是基于以太坊虚拟机(EVM),因为Arbitrum目标是高效地执行为EVM编写或编译的程序,所以Arbitrum并未更改EVM设计的绝大部分。例如,AVM采用EVM的数据类型以及对EVM整数进行的操作指令等。

安全团队:发现Circom验证库漏洞CVE-2023-33252:金色财经报道,Beosin 发现Circom 验证库漏洞CVE-2023-33252,提醒zk项目方注意相关风险。Circom是基于Rust开发的零知识证明电路编译器,该团队同时开发了SnarkJS库用于实现证明系统,包括:可信设置、零知识证明的生成和验证等,支持Groth16、PLONK、FFLONK算法。

此前,Beosin 安全研究人员在?SnarkJS 0.6.11及之前的版本的库中发现了一个严重漏洞,当该库在验证证明时未对参数进行完整的合法性检查,使得攻击者可以伪造出多个证明通过校验,实现双花攻击。Beosin在提了这个漏洞以后,第一时间联系项目方并协助修复,目前该漏洞已修复完成。Beosin提醒所有使用了SnarkJS库的zk项目方可将SnarkJS更新到 0.7.0版本!以确保安全性。

同时针对此漏洞,Beosin安全团队提醒zk项目方,在进行proof验证时,应充分考虑算法设计在实际实现时,由于代码语言属性导致的安全风险。目前Beosin已将漏洞提交 CVE漏洞披露平台(Common Vulnerabilities and Exposures)并获取认可。[2023/5/25 10:39:47]

这样看来,AVM和EVM之间的差异源于Arbitrum的layer2需求和Arbitrum的多轮挑战协议。

CoinList:2022年增加100万KYC用户,交易平台月交易量达4亿美元:12月28日消息,CoinList发布《CoinList 2022年度回顾》称,2022年在全球范围内增加100万名KYC用户,用户遍布170多个国家,其中东欧地区增长80%,亚洲增长20%。

旗下现货交易平台CoinList Pro的月交易量在2022年达到4亿美元,并上线9种新交易资产,包括Agoric(BLD)、Compound(COMP)、Project Galaxy(GAL)、Gods Unchained (GODS)、Stacks(STX)、Threshold(T)、Clover(CLV)。

此外,CoinList质押服务用户通过利用其代币为Axelar、Agoric、Casper和Mina等许多项目增强网络安全性,已获得近5000万美元的质押奖励。

展望2023年,CoinList正在筹备许多令人兴奋的事情,包括基于用户反馈的全新UI、大幅简化和改进的KYC/KYB流程、对基础设施的投资、Wallet Link产品的大规模推出、社区销售活动。[2022/12/28 22:12:03]

执行与证明

Binance、FTX等25家加密公司入围CB Insights 2022 Fintech 250榜单:10月9日消息,CB Insights公布了第五届年度金融科技250强的获奖者,即全球250家最有前途的私营金融科技公司名单,其中加密行业有25家公司入围(含支付行业的Ripple),包括Binance、FTX、Kucoin等加密交易平台,Nansen等链上数据分析平台,以及MoonPay等NFT支付公司。[2022/10/9 12:50:40]

与EVM架构不同,Arbitrum需要支持本地执行和受信证明。基于EVM的系统通过重新执行有争议的代码来解决争议,而Arbitrum依赖于形成最终证明的挑战协议解决争议。

Arbitrum希望在本地可信环境中针对速度做优化执行,因为本地执行是常见情况。系统很少需要证明,但需要一直保持准备证明的状态。

操作系统

Arbitrum使用2层操作系统ArbOS。ArbOS控制单独合约的执行,以将它们彼此隔离并跟踪它们的资源使用情况。

此外,上面这些功能是执行在2层的可信软件中,而不是像以太坊那样将可信添加到的1层网络搭建的强制规则中,这样参与者都会从2层较低的计算和存储成本中受益,而不是必须将这些资源成本作为1层EthBridge合约的一部分进行管理,增加成本。

Merkleize

任何依赖断言和争议解决的2层协议都必须定义一个规则,用于对虚拟机的完整状态进行Merkle哈希。该规则必须是架构定义的一部分,因为它依赖于解决争议。

维护的Merkle哈希在需要重新计算时也需要保持有效。这会带来一些构建内存的影响。任何大型且可变的存储结构对于Merkleize来说都是较贵的,并且Merkleize的算法必须是架构规范的一部分。

AVM架构通过只有大小有限、不可变的内存对象来应对这一需求,这些对象可以通过引用包含其他元组。元组不能就地修改,但有一条指令可以复制带有修改的元组。这允许构建树结构,其行为类似于大型平面存储器。通过访问在内部使用元组的库,应用程序可以使用诸如大型平面数组、键值存储等功能。

元组的语义使得创建元组的循环结构变得不可能,因此AVM实现可以通过使用引用计数的、不可变的结构来安全地管理元组。每个元组值的哈希只需要计算一次,因为内容是不可变的。

代码点

代码的常规组织是存储指令的线性阵列,并需要保持指向下一条指令的程序计数器。使用这种传统方法,证明执行指令需要对数时间和空间,因为必须提供Merkle证明来证明当前PC下的指令。

AVM使用这种传统的执行方法,但它增加了一个功能,使证明和证明检查需要恒定的时间和空间。出于证明目的,“程序计数器”被替换为“当前代码点哈希”值,它是机器状态的一部分。

在正常执行中,实现通常只使用传统架构上的PC值。但是,当需要证明时,证明者可以使用查找表来获取与任何相关PC对应的代码点哈希值。

来源:金色财经

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:0ms0-3:865ms