Polygon zkEVM系列文章的第一篇,简要的阐述了polygon zkEVM的的整体架构和交易执行流程,并且分析了polygon zkEVM是如何实现计算扩容的同时继承以太坊的安全性的。
同时还会在接下来两篇文章会详细介绍Polygon zkEVM的zkEVM Bridge和zkEVM的设计细节,以及polygon zkEVM接下来的去中心化sequencer的路线图。
首先,我们需要明确rollup的大概工作原理:
rollup的出现的是为了给Ethereum实现计算扩容,具体的实现方法是将交易的执行外包给 Rollup,然后将交易和交易执行后的状态(state)存储在 Ethereum 的合约内。
由于技术路线的不同演变出了两种类型的 Rollup:
Optimistic Rollup:
乐观的认为发送到 Ethereum 的 Rollup 交易(Rollup transaction)和对应的 Rollup 状态(Rollup State )都是正确的,任何人都可以通过提供欺诈证明(fraud proof)对还处于挑战期的Rollup State进行挑战(challenge)
Zero-knowledge Rollup:
会为发送到 Ethereum 的 Rollup交易(Rollup Transaction)和对应的 Rollup 状态(Rollup state)提供一个有效性证明(validity proof)(由以太坊上的合约验证,来证明 Rollup 的执行对应交易后的状态时正确的)
(参考以太坊官方定义) https://ethereum.org/en/developers/docs/scaling/#rollups
Zero-knowledge Rollup 和 Optimistic Rollup 最大的区别就是由于验证状态有效性的不同方式导致达成 finality 的时间不同;
Optimistic Rollup 乐观的认为提交到 Ethereum 上的交易和状态都是正确的,所以存在7天的挑战期(达成finality的时间是7天),期间任何人发现在 Ethereum 上的交易对应状态不正确都可以通过提交正确的状态进行挑战。
Zero-knowledge Rollup( zk-Rollup ) 达成 finality 的时间,则取决于: 交易对应的有效性证明( validity proof )提交到以太坊并且验证通过所花费的时间。目前可能在1个小时左右的finality居多。(因为需要考虑到Gas成本问题)
接下里我们以一个简单的交易被确认流程来看看 Polygon zkEVM是怎么工作的,从而对整体协议有一个具体的理解;
整个过程可以主要分为三个步骤: