PolygonzkEVM系列文章的第一篇,简要的阐述了polygonzkEVM的的整体架构和交易执行流程,并且分析了polygonzkEVM是如何实现计算扩容的同时继承以太坊的安全性的。
同时还会在接下来两篇文章会详细介绍PolygonzkEVM的zkEVMBridge和zkEVM的设计细节,以及polygonzkEVM接下来的去中心化sequencer的路线图。
目录
Rollup是为了给以太坊实现计算扩容不同Rollup路线之间的区别PolygonzkEVM的具体执行流程&整体架构从模块化区块链的角度解析PolygonzkEVMPolygonzkEVM如何继承L1的安全性PolygonzkEVM激励机制1.Rollup为了给以太坊实现计算扩容
首先,我们需要明确rollup的大概工作原理:
rollup的出现的是为了给Ethereum实现计算扩容,具体的实现方法是将交易的执行外包给Rollup,然后将交易和交易执行后的状态(state)存储在Ethereum的合约内。
由于技术路线的不同演变出了两种类型的Rollup:
OptimisticRollup:乐观的认为发送到Ethereum的Rollup交易(Rolluptransaction)和对应的Rollup状态(RollupState)都是正确的,任何人都可以通过提供欺诈证明(fraudproof)对还处于挑战期的RollupState进行挑战(challenge)Zero-knowledgeRollup:会为发送到Ethereum的Rollup交易(RollupTransaction)和对应的Rollup状态(Rollupstate)提供一个有效性证明(validityproof)(由以太坊上的合约验证,来证明Rollup的执行对应交易后的状态时正确的)(参考以太坊官方定义)https://ethereum.org/en/developers/docs/scaling/#rollupsZero-knowledgeRollup和OptimisticRollup最大的区别就是由于验证状态有效性的不同方式导致达成finality的时间不同;
OptimisticRollup乐观的认为提交到Ethereum上的交易和状态都是正确的,所以存在7天的挑战期,期间任何人发现在Ethereum上的交易对应状态不正确都可以通过提交正确的状态进行挑战。
Zero-knowledgeRollup(zk-Rollup)达成finality的时间,则取决于:交易对应的有效性证明(validityproof)提交到以太坊并且验证通过所花费的时间。目前可能在1个小时左右的finality居多。(因为需要考虑到Gas成本问题)
2.PolygonzkEVM执行流程
接下里我们以一个简单的交易被确认流程来看看PolygonzkEVM是怎么工作的,从而对整体协议有一个具体的理解;
整个过程可以主要分为三个步骤:
Sequencer将多个用户交易打包成Batch提交到L1的合约上。Prover为每笔交易生成有效性证明(validityproof),并将多个交易的有效性证明聚合成一个有效性证明。Aggregator提交聚合了多个交易的有效性证明(validityproof)到L1的合约中。
1)Sequencer将用户交易打包成Batch提交到L1合约上
用户将交易发送给Sequencer,Sequencer会在本地按照收到交易的快慢顺序进行处理(FRFS),当Sequencer在本地将交易执行成功后,如果用户相信Sequencer是诚实的,那么他可以认为这个时候的交易已经达成了finality。这里需要注意,目前大多数Sequencer内部的Mempool(交易池)都是私有的,所以暂时可以获取的MEV是比较少的Sequencer会将多笔交易打包进一个Batch里(目前是一个Batch里只包含一个交易),然后在收集到多个Batches之后,通过L1上的PolygonZKEvm.sol的sequenceBatch()函数将多个Batch一起送到L1的交易calldata上。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。