Cointime

扫码下载App
iOS & Android

详解 Polygon zkEVM 的整体架构和交易执行流程

媒体

Author: 0xhhh(Twitter: @hhh69251498 ),Binary DAO

Editor: Red One

3月27日,Polygon zkEVM主网测试版本正式上线,Vitalik 在上面完成了第一笔交易。

本文是Polygon zkEVM系列文章的第一篇,简要阐述了Polygon zkEVM的整体架构和交易执行流程,并且分析了Polygon zkEVM是如何实现计算扩容并同时继承以太坊的安全性的。

同时还会在接下来两篇文章里详细介绍Polygon zkEVM的zkEVM Bridge和zkEVM的设计细节,以及Polygon zkEVM接下来的去中心化Sequencer的路线图。

一、Rollup为了给以太坊实现计算扩容

首先,我们需要明确Rollup的大概工作原理。Rollup的出现是为了给Ethereum实现计算扩容,具体的实现方法是将交易的执行外包给Rollup,然后将交易和交易执行后的状态(State)存储在 Ethereum 的合约内,由于技术路线的不同演变出了两种类型的 Rollup:

Optimistic Rollup乐观的认为发送到 Ethereum 的 Rollup 交易(Rollup Transaction)和对应的 Rollup 状态(Rollup State )都是正确的,任何人都可以通过提供欺诈证明(Fraud  Proof)对还处于挑战期的Rollup State进行挑战(Challenge)。

Zero-knowledge RollupZK会为发送到 Ethereum 的 Rollup交易和对应的 Rollup 状态提供一个有效性证明(由以太坊上的合约验证,来证明 Rollup 的执行对应交易后的状态是正确的) 。

参考以太坊官方定义:https://ethereum.org/en/developers/docs/scaling/#rollupsZero-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 执行流程

接下来我们以一个简单的交易被确认流程来看看 Polygon zkEVM是怎么工作的,从而对整体协议有一个具体的理解,它的整个过程可以主要分为三个步骤:

1. Sequencer 将多个用户交易打包成 Batch 提交到L1的合约上;2. Prover 为每笔交易生成有效性证明(Validity Proof),并将多个交易的有效性证明聚合成一个有效性证明;3. Aggregator 提交聚合了多个交易的有效性证明(Validity Proof) 到 L1 的合约中。

1) 用户将交易发送给Sequencer,Sequencer会在本地按照收到交易的快慢顺序进行处理(FRFS),当Sequencer在本地将交易执行成功后,如果用户相信Sequencer是诚实的,那么他可以认为这个时候的交易已经达成了Finality。这里需要注意,目前大多数Sequencer内部的Mempool(交易池)都是私有的,所以暂时可以获取的MEV是比较少的。       2) Sequencer 会将多笔交易打包进一个Batch里(目前是一个Batch里只包含一个交易) 然后在收集到多个Batches之后, 通过L1上的 PolygonZKEvm.sol的SequenceBatch()函数将多个Batches一起送到L1的交易Calldata上。

(需要注意这里一次性提交多个Batches是为了尽可能减少L1的Gas消耗)

3) 当 PolygonZkEvm.sol 收到 Sequencer 提供的 Batches 后,它会依次在合约内计算每个Batch的哈希,然后在后一个Batch里记录前一个Batch的哈希,于是我们就得到了下图的Batch结构。

4) 每个Batch里的交易顺序也是确定的,所以当Batch的顺序确定之后,我们认为所有被包含在Batch提交到L1的 Polygon zkEVM合约的交易的顺序都被确定了。

以上实际过程也是L1充当Rollup DA层需要完成的工作(这个时候并没有完成任何状态检验或推进的工作)。

2. Aggregator 为多个Batch的交易生成 Validity Proof

1) 当Aggregator监听到L1的 PolyonZKEVM.sol 合约中已经有新的 Batch 被成功的提交之后,它会把这些 Batch 同步到自己的节点里,然后给 zkProver 发送这些交易。2) zkProver 接收到这些交易之后会并行为每笔交易生成 Validity Proof,再将多个Batch包含的交易的 Validity Proof再聚合成一个有效性证明(Validity Proof)。

3) zkProver 将聚合多个交易的Validity Proof发送给 Aggregator。

3. Aggregator 提交聚合证明到 L1 的合约

Aggregator 会将这个有效性证明(Validity Proof)以及对应的这些 Batch 执行后的状态一起提交到 L1 的 Polygon zkEvm.sol 合约内,通过调用以下方法:

合约内接下来会执行以下操作来验证状态转换是否正确。

当这一步在L1合约内执行成功时,这部分batch包含的所有交易也就真正达成了Finality(对应OP的7天挑战期结束)。

三、 Ethereum 在 Polygon-zkEVM 中充当的角色

上文我们已经了解了Polygon zkEVM的整体流程, 可以回顾下Ethereum 为 Rollup 做了哪些工作:

第一步,Sequencer 将 Rollup 的交易收集起来打包成 Batch 之后,提交到L1的合约中。L1不仅仅提供了DA层的功能,实际上还完成了一部分交易排序的功能;当你把交易提交到Sequencer时,交易是没有真正被定序的,因为Sequencer有权力可以随便改变交易的顺序,但是当交易被包含在Batch里提交到L1合约上之后,任何人都没有权利再修改其中的交易顺序。

第二步,Aggregator 将Validity Proof 提到L1合约上来达成新的状态,Aggregator则是类似Proposer的角色,合约则类似Validator的角色;Aggregator 提供了一个Validity Proof来证明一个新的状态是正确的,并告诉Validator我提供的Validity Proof涉及哪些交易Batch,他们都存在了L1的哪个位置。

接着Validator从合约中提取对应的Batch,与Validity Proof结合在一起就可以验证状态转换的合法性了,如果验证成功实际上合约内也会更新到对应Validity Proof的新状态。

四、从模块化的角度结构 Smart Contract Rollup

如果从模块化的角度来看,Polygon zkEVM 属于Smart Contract Rollup 类型,我们可以尝试解构下它的各个模块,从 Delphi 给的图中, 我们也可以看出实际上 Polygon ZkEVM 作为 Smart Contrat Rollup的Consensus Layer,DA Layer 和 Settlement Layer其实都是耦合在PolygonZkEVM.sol合约中,并不能很好的区分。但是我们尝试着去解构各个模块:

数据可用层(Data Availability Layer): Rollup交易存放的地方,对于Polygon-zkEVM来说 ,当Sequencer调用SequenceBatch() 方法的时候,实际上就包含了往DA层提交交易数据。

结算层(Settlement Layer): 具体指的是Rollup和L1之间的资金流动机制,具体指的是Polygon-zkEVM的官方桥(在下一篇文章会有详细介绍)。

共识层(Consensus Layer): 包含交易排序和如何确定下一个合法状态(分叉选择),Sequencer 调用L1合约中的SequenceBatch() 的时候完成了交易排序的工作,当Aggregator调用L1合约中的TustedVerifyBatches() 的时候完成了确认下一个合法状态的工作。

执行层(Execution Layer): 执行交易并且得到新的世界状态,当用户向Sequencer提交交易,并且Sequencer执行完之后得到新状态的过程(所以我们往往说Rollup是计算扩容,因为L1把执行交易得出新状态的这个过程外包给了Rollup,同时Sequencer会通过Aggregator委托zkProver帮忙生成Validity Proof。

五、为什么说 Polygon-zkEVM 继承了L1的安全性

从上面介绍的整体流程上看,实际上Sequencer做了类似以太坊 Proposer的工作,提议了一批交易是有效交易,并且给出了这批交易执行后的新状态;而L1合约的验证逻辑,相当于所有L1的Validator都会在自己的以太坊客户端里执行一遍,实际上是所有的以太坊验证者充当了Rollup的验证者,因此我们认为 Polygon zkEVM 继承了以太坊的安全性。

从另外一个角度上看,因为Rollup的所有交易以及状态都存储在以太坊上,所以即便Polygon zkEVM 这个团队跑路了,任何人都还是有能力依托以太坊上存储的数据,恢复整个Rollup网络。

六、Polygon zkEVM 激励机制

Rollup激励机制主要指的是如何让Sequencer和Aggregator有利可图,从而保持持续性的工作的?

首先用户需要支付自己在Rollup上的交易手续费,这部分的手续费是采用ETH计价的,用Bridged ETH支付。

Sequencer 则需要支付这些包含Rollup交易的Batch上传到L1交易的Calldata上的成本(调用SequenceBatch(batches()的成本),同时需要在上传Batch的同时支付一定的Matic到L1合约中,用于之后支付Aggregator为这些Batches提供Validity Proof的成本。

Aggregator 在调用trusted VerifyBatches 为L1合约内还没有被Finality的Batches提供Validity Proof的同时,也可以取出Sequencer提前支付在合约内的MATIC代币,作为提供Validity Proof的报酬。

Sequencer的收入 =  Rollup所有交易的Gas费用 - 将Batches上传到L1花费的L1网络Gas费用 - 支付给Aggregator的证明费用(MATIC计价)。

Aggregator的收入 = Sequencer支付的MATIC报酬  - 提交到Validity Proof到 L1的Gas费用 - Validity Proof生成花费的硬件费用。

调整支付给Aggregator的证明费用,同时为了避免Sequencer因为无利可图罢工,提供了以下的机制来调整Sequencer支付给Aggregator 的证明费用。

合约中存在这样一个方法用来调整为Batch提供证明的费用:

function _updateBatchFee(uint64 newLastVerifiedBatch) internal

它会更改合约中一个名为BatchFee的变量,而这个变量决定了Sequencer为每个Batch支付的MATIC代币数量。

更改机制如下:

合约中维护了这样一个变量VeryBatchTimeTarget ,代表每个Batch被Sequencer提交到L1之后期望在这个时间内被验证状态。

合约内会记录所有超过了VeryBatchTimeTarget之后还没有被验证状态的Batches, 并且将这些Batches的总数量记为DiffBatches。

于是当有Batches迟到的时候,会用以下公式来调整BatchFee:

MultiplierBatchFee 是一个被限制在1000~1024范围的数,可以通过函数setMultiplierBatchFee() 由合约管理员更改:

Function setMultiplier BatchFee (uint16newMultiplierBatchFee) public onlyAdmin

需要注意这里的 采用MultiplierBatchFee 和10^3是为了实现3个小数点后的调整精度。

总结

在这篇文章里我们梳理了 Polygon zkEVM 的核心机制,并分析了它实现以太坊计算扩容的可行性。有了一个整体的大纲后,在接下来的文章里我们会深入到协议内部,依次解析zkEVM Bridge的设计细节以及Sequencer的去中心化路线,zkProver的实现以及zkEVM的设计原理。

来源:https://www.chaincatcher.com/article/2090165

评论

所有评论

推荐阅读

  • BTC突破83000美元

    行情显示,BTC突破83000美元,现报83020.19美元,24小时跌幅达到0.2%,行情波动较大,请做好风险控制。

  • ETH突破2500美元

    行情显示,ETH突破2500美元,现报2500.03美元,24小时涨幅达到0.33%,行情波动较大,请做好风险控制。

  • 胡塞武装称沙特空袭也门萨那机场

    10月10日,据也门胡塞武装发布的信息,当地时间10日下午,沙特主导的联军空袭了胡塞武装控制下的也门首都萨那国际机场,空袭中投下了四枚炸弹。此外,沙特联军还空袭了胡塞武装控制下的也门哈杰省的一处通信设施,投下了三枚炸弹。沙特方面对此暂无回应。(金十)

  • 立讯精密:公司及立讯技术涉337调查,尚处立案初期

    10月10日,立讯精密公告,公司及控股子公司东莞立讯技术股份有限公司被列为美国国际贸易委员会337调查被调查方,涉及美国专利US 10,90.37万。ITC于当地时间2026年10月9日正式启动调查,调查编号337-TA-1526,目前尚处于立案初期,尚未就相关侵权主张作出实质认定;涉案产品处于客户验证阶段,尚未进入量产状态。

  • 法国财委会通过稳定币兑换税与加密离境税修正案

    10月10日,据Decrypt报道,法国国民议会财政委员会本周通过两项加密税收修正案:自2027年1月1日起,将兑换受MiCA监管的稳定币视为应税出售;并拟对过去10年内至少6年为法国税务居民、加密资产合计价值超80万欧元而迁居海外的纳税人征收离境税。委员会10月9日以31票对3票否决预算收入部分,全体国民议会将基于政府原始文本审议,修正案不会自动纳入,支持者需在10月13日开始的辩论中重新提出,正式投票定于10月20日,相关措施尚未成为法律。稳定币修正案由左翼GDR党团成员Nicolas Sansu及16名联署者提出,未设新税率,拟将收益纳入法国现行31.4%统一税制。委员会还通过修正案,允许将加密资产亏损结转10年抵扣未来收益。

  • Entropy花费569.98枚HYPE拍下xiaomi(小米)代码,或即将上线其永续合约

    10月10日,HIP-3市场部署者Entropy花费569.98枚HYPE拍下代码xiaomi,Entropy或即将上线其永续合约。

  • 韩国金融委:交易所大股东持股限制不针对特定企业

    10月10日,据韩国金融委员会主席李亿元表示,正在推进的《数字资产基本法》中关于虚拟资产交易所大股东持股限制的规定,并非针对特定人士或企业,而是考虑到交易所制度化运营后需承担更高公共责任。目前韩国虚拟资产交易所采取每3年更新申报制度,未来《数字资产基本法》实施后将转为许可制运营。李亿元称,交易所具有基础设施属性,需具备与其地位相匹配的公共性和责任性。

  • 伯恩斯坦拆解AI基建成本:每吉瓦投资最高395亿美元

    10月10日,伯恩斯坦研报显示,采用不同AI加速器架构,建设1GW数据中心所需的资本开支约为346亿至395亿美元。其中,英伟达Vera Rubin架构的建设成本最高,OpenAI自研ASIC架构Jalapeno则相对较低。伯恩斯坦将英伟达Rubin NVL72单机柜成本预期从此前的910万美元大幅下调至752万美元,降幅约17%,主要反映了对HBM价格和NAND存储容量预期的调整。研报还指出,AI数据中心的主要经济负担并非电费,而是巨额资本开支及其产生的折旧。

  • 长鑫技术新突破:4F²架构产品预计年底亮相

    10月10日,长鑫存储4F² DRAM架构研发近期取得关键进展。该公司总裁曹堪宇博士在第四届集成芯片和芯粒大会上发表演讲,全面介绍了长鑫存储在DRAM器件、4F²架构及混合键合等方向的技术探索与积累,并官宣预计年底将推出融合了上述先进技术的新一代DDR5 RDIMM产品。

  • 中国证监会召开资本市场和金融形势专家座谈会

    10月10日,中国证监会党委书记、主席吴清在北京召开座谈会,与部分上市公司负责人、证券基金机构专家深入交流,就当前资本市场和金融形势充分听取意见建议。座谈会上,大家一致认为,我国宏观经济稳中向好,产业结构转型持续深化,资本市场运行总体稳健,多层次市场功能有效发挥,虽然面临一些风险挑战,但高质量发展的态势不会改变,对经济运行和资本市场充满信心。同时,与会专家对更好推动资本市场平稳健康发展提出了具体建议,主要包括:持续加强稳市机制建设,进一步拓宽中长期资金来源、渠道和入市方式,发展壮大耐心资本;推动有条件的上市公司加大分红回购力度,完善投资者回报和权益保护机制;优化发行上市制度,支持不同类型、不同行业、多元化的优质企业发展壮大;强化交易监管,加强跨境风险监测应对;研究储备更多增量政策工具;等等。吴清表示,上市公司和行业机构是市场的重要主体,希望大家积极建言献策,共同把资本市场建设好,更好回报广大投资者,为中国式现代化建设积极贡献力量。中国证监会有关司局负责同志参加座谈。