Optimistic Rollup 的难点在于 OVM,需要在 EVM 的基础上模拟 OVM 的执行,并判断状态的正确性。 原文标题:《L2 - 深入理解 OVM》 Optimistic Rollup 是 Layer 2 潜在的一种方案。周末有点时间,在网络上翻了翻。网络上的文章,Optimistic Rollup 深入技术的文章不多,介绍 OVM 底层技术细节的文章则更少。感兴趣看了看 Optimism 实现的 OVM 功能相关的智能合约,对 Optimistic Rollup 的理解很有帮助。总结一下,感兴趣的小伙伴可以看看。 Optimistic Rollup vs. ZK Rollup网络上对比这两种 Rollup 的方案文章不多。
具体的性能和安全性对比,感兴趣的小伙伴可以直接看这篇文章。个人觉得,因为方案都不够成熟,目前方案能够达到的 TPS 都只是理论值。没必要太多的讨论。主要说说两种 Rollup 的技术实现的区别: 两种方案都是 Rollup,Layer 2 的所有 Transaction 的信息都会作为 CallData「存储」在 Layer 1,并且 Layer 2 的状态也及时同步到 Layer 1。两者的区别在于,Layer 2 的状态在 Layer 1 的正确性保证。Optimistic Rollup 采用的是「检察」的方式,任何一个节点发现 Layer 2 的状态的错误,提交相关的证明。如果错误的状态被验证,在 Layer 1 的 Layer 2 的状态需要回滚,提交错误状态的节点被惩罚。ZK Rollup 采用的方式直接了当,在向 Layer 1 提交 Layer 2 状态的同时,提交相关状态改变的证明。这些证明都是在 Layer 2 生成。也就是说,ZK Rollup 在向 Layer 1 提交 Layer 2 状态的同时,同时提交了 Layer 2 状态转换的计算证明。这个计算证明是通过零知识证明的算法产生。简单的说,如果转换的状态复杂,生成零知识证明的时间越长。 目前,ZK Rollup 只是支持简单的账户系统以及世界状态,并不能支持智能合约等复杂的世界状态。Optimistic Rollup 虽然能支持智能合约,事实上,因为 Layer 1 的计算能力比较弱,智能合约的支持也比较有限。Optimistic Rollup 支持的智能合约的执行环境,类似 EVM,称为 OVM (Optimistic Virtual Machine)。 OVMOVM - Optimistic Virtual Machine。OVM 是 Layer 2 交易的执行环境。因为提交到 Layer 1 的状态需要检验正确性,Layer 1 需要「重放」Layer 2 的交易,也就是说,Layer 1 在有些情况下需要执行 OVM 交易的执行。Optimistic Rollup 最复杂的地方也在于此,用 EVM 模拟 OVM,并执行 Layer 2 的交易。 (责任编辑:admin) |