Polygon zkEVM 是一个由多篇文章组成的系列,第一篇文章简要介绍了该协议的整体架构和交易执行流程,并分析了它如何在实现计算扩容的同时继承以太坊的安全性。接下来的两篇文章将详细介绍 Polygon zkEVM 的 zkEVM Bridge 和设计细节,以及其去中心化 Sequencer 的路线图。
- Rollup: 为以太坊实现计算扩容的技术
- 不同 Rollup 路线之间的区别
- Polygon zkEVM 的具体执行流程及整体架构
- 从模块化
区块链角度解析 Polygon zkEVM
- Polygon zkEVM 如何继承 L1 的安全性
- Polygon zkEVM 激励机制
首先,需要明确 Rollup 的工作原理,即将交易的执行外包给 Rollup,然后将交易和执行后的状态存储在以太坊
合约内,实现计算扩容。根据技术路线的不同,演变出了两种类型的 Rollup:
- Optimistic Rollup: 乐观认为提交到 Ethereum 上的 Rollup 交易(Rollup transaction)和对应的状态(Rollup state)都是正确的,存在 7 天的挑战期,期间任何人发现不正确的交易对应状态都可进行挑战。
- Zero-knowledge Rollup: 为 Rollup 交易和状态提供有效性证明,时间取决于有效性证明提交到以太坊并验证通过的时间。
Zero-knowledge Rollup 和 Optimistic Rollup 最大的区别在于达成 finality 的时间,即乐观认为提交到 Ethereum 上的交易和状态都是正确的,所以存在挑战期;而 Zero-knowledge Rollup 则取决于有效性证明提交到以太坊并且验证通过所花费的时间。
接下来以一个简单的交易确认流程来了解 Polygon zkEVM 如何工作:
整个过程分为三个步骤:
1. Sequencer 将多个用户交易打包成 Batch 提交到 L1 的合约上。
2. Prover 为每笔交易生成有效性证明,并将多个交易的有效性证明聚合成一个有效性证明。
3. Aggregator 提交聚合多个交易的有效性证明到 L1 的合约中。
具体流程如下:
1)Sequencer 将用户交易打包成 Batch 提交到 L1 合约上
- 用户将交易发送给 Sequencer,在 Sequencer 内部的 Mempool(交易池)中按收到的时间顺序进行处理,当 Sequencer 在本地将交易执行成功后,如果用户相信 Sequencer 是诚实的,那么这个时候的交易已经达成 finality 。
- Sequencer 会将多笔交易打包进一个 Batch 里,然后在收集到多个 Batches 之后,通过 L1 上的 PolygonZKEvm.sol 的 sequenceBatch 函数将多个 Batch 一起送到 L1 的交易 calldata 上。
以上是 Polygon zkEVM 简介及其工作原理总结。