Optimism 采用 OVM 执行 Layer2 交易。取名 OVM 是为了区分 Layer1 的 EVM。因为提交到 Layer1 的状态需要检验正确性,Layer1 需要「重放」Layer2 的交易,也就是说,Layer1 在有些情况下需要执行 OVM 交易的执行。Optimistic Rollup 最复杂的地方也在于此,用 EVM 模拟 OVM,并执行 Layer2 的交易。可想而知,在 Layer1 的 EVM 模拟 OVM 的执行是比较繁琐,消耗较大的操作。 Arbitrum 也是采用挑战机制。为了避免挑战的 gas 费用低,Arbitrum 引入了 AVM: 相对于 EVM,AVM 是一个相对简单的虚拟机。Arbitrum 在 AVM 虚拟机上模拟 EVM 执行环境。也就是说,所有的 Layer2 交易都是在 AVM 执行,交易的执行状态可以用 AVM 状态表示。在提交到 Layer1 的状态有分歧时,挑战双方(Asserter 和 Challenger)先将状态分割,找出「分歧点」。明确分歧点后,挑战双方都可提供执行环境,Layer1 执行相关操作确定之前提交的状态是否正确。在 Layer1 挑战的是 AVM 的状态,分歧点的 AVM 的指令执行。 简单的说,为了省挑战的 gas 费用,Arbitrum 采用了精简的 AVM (非常方便状态表示),通过快速分割,在链上只需要执行一个指令,判断状态是否执行正确。Arbitrum 介绍文档中提到,整个挑战需要大概 500 字节的数据和 9w 左右的 gas。在 AVM 的基础上,Arbitrum 设计了 mini 语言和编译器,模拟了 EVM 的执行环境,从而兼容 EVM。 总结Layer2,相对于 Layer1,在 Layer1 的基础上提供更丰富功能,更好的用户体验。资金状态确定性时长,安全性,可编程性是目前讨论的焦点。zkRollup 是资金状态确定性最快的方案。optimistic Rollup/ 侧链具有可编程性。zkRollup 支持 EVM 的证明是个期待的方向。 (责任编辑:admin) |