#先决条件
如果你不熟悉rollups,你应该在学习 zkSync 之前先了解《关于zkSync Era必须要了解的知识第一篇》
#介绍
zkSync是一种ZK rollup,一种使用加密有效性证明在以太坊上提供可扩展和低成本交易的无信任协议。在 zkSync中,计算是在链下执行的,大多数数据也存储在链下。由于所有交易都在以太坊主链上进行证明,因此用户享有与以太坊相同的安全级别。
zkSync Era看起来和感觉上都像以太坊,但费用更低。就像在以太坊上一样,智能合约是用 Solidity/Vyper 编写的,可以使用与其他 EVM 兼容链相同的客户端来调用。
使用前无需注册单独的私钥,zkSync开箱即用地支持现有的以太坊钱包。目前,zkSync 仅由 zkSync 团队的服务器运行和操作,因此是中心化的。但是,这将很快过渡到去中心化系统。
#zkSync 概述
一般的rollup工作流程如下:
用户可以相互接收、存入和转移资产。
用户可以将自己控制的资产提供到L1地址。
Rollup操作需要操作员的协力,操作员将交易滚动同步进行,计算正确状态转换的零知识证明,并通过与rollup合约递交转换。要理解设计,我们需要研究zkSync rollup转换是如何工作的。
zkSync操作分为rollup交易(由rollup账户在rollup内部发起)和优先级操作(由以太坊账户在主链上发起)。
zkSync rollup操作流程如下:
l 用户创建交易或优化操作。
l 处理完这个请求后,操作员创建一个集合总操作并将其添加到块中。
l 当区块完成,运营商将其作为区块承诺提供给zkSync智能合约。一些rollup操作的部分分配由智能合约检查。
l 区块证明作为区块验证提供给zkSync智能合约。如果验证成功,则新状态被看到为最终状态。
另外,在zkSync上,每个L2块将通过以下四个阶段进行,直到最终完成。
Pending:操作员已经收到交易,但尚未处理。
Processed:交易由运营商处理并确认包含在下一个区块中。
Committed:表示该区域块的交易数据已经发布到太坊上。它并不能证明它已经以有效的方式进行操作,但它确实保证了块数据的可用性。
Finalized:表示交易的SNARK具有有效的证明已经表明交易并通过智能结合实验证明。在这一步之后,交易被认为最终完成。
在当前阶段,交易从Processed到的模型时间Finalized是几个小时。

请注意,为了方便开发人员,通常会将状态Processed视图Committed作为一个调整阶段Committed,因为它们与 UX/DexEx 的观点没有区别。
