Family zkEVM 协议
在过去的几年里,为了提高以太坊网络的可扩展性,尤其是交易吞吐量,出现了各种不同的第二层解决方案。以太坊网络用户的最终和预期的好处是降低燃气费用,同时保持去中心化和安全性。
Family zkEVM 是一种 Layer 2 Rollup 解决方案,它结合了以太坊区块链 Layer 1 中的数据可用性和执行验证,以确保 L2 状态转换的安全性和可靠性。
组件 #
本部分将描述Family zkEVM为其设计和实现的基础设施,重点概述了在zkEVM协议开发中使用的组件。
zkEVM 协议的三个主要组件是:
Trusted Sequencer(序列生成器)
Trusted Aggregator(聚合器)
共识合约(FamilyZkEVM.sol,部署在 L1 上)
Trusted Sequencer(序列生成器)
Trusted Sequencer组件负责接收来自用户的L2交易,对它们进行排序,生成批次,并将它们以序列的形式提交到Consensus合约的存储槽中。
Sequencer执行和广播交易批次到L2网络节点,以实现快速的最终性并降低与高网络使用率相关的成本。这些操作在提交到L1之前就完成了。
Trusted Sequencer必须以Sequencer模式运行zkEVM节点,并控制一个由Consensus合约强制执行的以太坊账户。
Trusted Aggregator(聚合器)
Trusted Aggregator组件可以根据可信的Sequencer执行的L2交易批次计算出L2状态。
另一方面,Trusted Aggregator(聚合器)的主要角色是接收可信的Sequencer提交的L2批次,并生成关于批次计算完整性的零知识证明。这些零知识证明是由Aggregator使用特殊的离链EVM解释器生成的。
Consensus合约的逻辑验证这些零知识证明,从而使zkEVM继承了L1的安全性。在将新的L2状态根提交到Consensus合约之前,需要进行验证。经过验证的证明是对一系列批次导致特定L2状态的不可辩驳的证据。
Trusted Aggregator(聚合器)模式下运行 zkEVM 节点,并且必须控制在共识合约中强制执行的特定以太坊帐户。
共识#合约
Trusted Sequencer(序列生成器)和Trusted Aggregator(聚合器)与L1进行交互时使用的共识合约是FamilyZkEVM.sol合约。
可信的Sequencer可以将批次序列提交到L1并存储在FamilyZkEVM.sol合约中,从而创建了一个批次序列的历史存储库。
合约FamilyZkEVM.sol还使聚合器能够公开验证从一个 L2 状态根到下一个的转换。共识合约通过验证聚合器的 ZK 证明来实现这一点,证明交易批次的正确执行。
zkEVM 节点执行#
zkEVM 节点是一个软件包,包含运行 zkEVM 网络所需的所有组件。它可以以三种不同的模式运行;作为 Sequencer、Aggregator 或 RPC。
Sequencer Mode(顺序模式)
在Sequencer模式下,节点保存L2状态的实例,管理向其他L2网络节点的批量广播,并具有内置的API来处理L2用户的交互(转移请求和L2状态查询)。
此外,还有一个数据库用于临时存储尚未排序和执行的交易(待处理交易池),以及与L1交互的所有组件,以便对事务批次进行排序并保持其本地L2状态的更新。
Aggregator Mode(聚合模式)
在聚合器模式下,节点具有执行事务批处理、计算结果 L2 状态和生成计算完整性的零知识证明所需的所有组件。
此外,具有获取由可信排序器在 L1 中提交的事务批次所需的所有组件,并调用函数来公开验证 L1 上的 L2 状态转换。
RPC#模式
在RPC 模式下,zKEVM 节点的功能有限。它主要维护 L2 状态的最新实例,最初是关于可信排序器广播的批次,后来是从共识合约中获取的批次序列。
该节点持续与 L1 交互,以保持本地 L2 状态最新,并检查 L2 状态根的同步。同步器的默认同步速率是每 2 秒一次,除非在配置中另有规定。
