零知识 (ZK) 是区块链领域越来越受关注的领域。尤其是以太坊社区正努力采用 ZK 来解决以太坊区块链的两个关键问题——隐私和可扩展性。
ZK 承诺的核心在于其零知识证明(ZKP)。这些证明可以在不暴露底层信息的情况下验证数据。在区块链的背景下,ZKP 提供了一种有效扩展网络的方法。它们通过处理链下交易来实现这一点,同时保留链上操作的安全保障。
此外,ZKP 还能维护去中心化网络中数据的完整性。
谈到 ZK 工作,zkSync Era 是 zk-rollup 领域的领先项目,在过去 30 天内处理了超过 1900 万笔交易。它使用 ZKP 在以太坊上提供可扩展且低成本的交易。
在这篇博文中,我们将解释什么是 zkSync Era、它是如何工作的,以及如何在 zkSync Era 上进行构建。
什么是 zkSync 时代?
zkSync Era 是以太坊的第 2 层扩展解决方案。它采用zk-rollup 技术将多笔交易捆绑为单个证明,并在链下处理它们,从而显著提高以太坊的交易吞吐量。它允许以太坊虚拟机 (EVM) dapp轻松移植到 zkSync Era,为它们提供更高的交易吞吐量,同时保持以太坊的安全性和去中心化。
作为 rollup,zkSync Era 中的大部分计算都是在链下进行的,即复杂的交易处理和智能合约执行是在以太坊主网之外处理的。这大大减少了主网上的计算负载。
交易在链下处理后,会生成 ZKP 来确保计算的完整性和有效性。然后这些证明会被提交到以太坊主网。
zkSync Era 中与交易相关的大多数数据也存储在链下。这减少了以太坊的负载,因为只有状态根、交易块承诺和零知识证明等重要数据才存储在链上。
更重要的是,zkSync Era 也符合 EVM 标准,因为它支持以太坊的智能合约和资产,为用户和开发人员提供无缝体验。
zkSync 如何工作?
以下是 zkSync 在交易生命周期和块阶段方面的工作原理的快速细分。
zkSync 时代的交易生命周期:
创建:用户发起交易或者优先操作。
处理:操作员处理此请求,创建汇总操作并将其添加到块中。
承诺:区块完成后,操作者将其作为区块承诺提交给 zkSync 智能合约。rollup 操作逻辑由智能合约检查。
验证:区块的证明作为区块验证提交给 zkSync 智能合约。验证成功则确定新状态。
区块阶段:
待处理:交易已被操作员收到,但尚未处理。
已处理:交易已处理并确认纳入下一个区块。
已提交:该区块的交易数据已经发布在以太坊上,保证数据可用性。
最终确定:交易的 SNARK 有效性证明已提交并验证。然后该交易被视为最终确定。
zkSync Era 操作符
运营商在 zkSync Era 中的作用对于其运行至关重要。从管理交易处理、区块的创建和提交,到零知识证明的生成和提交,运营商是 zkSync Era 引擎运行的核心人物。
此外,运营商还负责维护网络的完整性和安全性。他们必须确保交易得到正确、高效的处理,并确保网络能够抵御潜在威胁或故障。
zkSync Era 和 EVM 兼容性
根据 Vitalik Buterin 的说法,EVM 兼容性可以分为四种类型。zkSync 在 zkEVM 的分类中被归类为 4 型系统。
EVM 兼容性第 4 类系统通过采用高级语言(如 Solidity 或 Vyper)编写的 智能合约源代码并将其编译为 zk-SNARK 友好的语言来工作。
具体来说,zkSync Era 支持用Solidity或 Vyper 编写的智能合约。它使用自定义编译器,即 Solidity 的 zksolc 和 Vyper 的 zkvyper。这些编译器专为与 zkSync VM 配合使用而量身定制,确保智能合约的兼容性和高效执行。
更重要的是,zkSync Era 为开发人员提供了流畅的体验,提供了本地测试的工具以及与 Hardhat 和 Foundry 等现有框架的兼容性。
zkSync 时代的优势
类型 4 系统(例如 zkSync)具有非常快的验证时间。
第 4 类系统通过绕过对 EVM 执行的每个方面进行零知识证明的需要来优先考虑性能。相反,它们直接从更高级别的代码开始。
zkSync 作为 Type 4 系统,优先考虑 ZK 中的性能和可证明性。
zkSync 时代的缺点
与紧密复制 EVM 的系统相比,这种方法会导致更多的不兼容性。
例如,合约可能具有与 EVM 中的地址不同的地址,并且手写的 EVM 字节码更难使用。
总而言之,zkSync Era 与 EVM 兼容,这意味着它支持以太坊的 EVM 操作码的很大一部分,允许大多数智能合约无缝运行。然而,它并不等同于 EVM,因为它不支持字节码级别的每个操作码。
zkSync 对开发者有什么好处?
zkSync 提供了几个新功能来帮助开发人员:
Solidity 0.8.x 支持
zkSync Era 对 Solidity 0.8.x的支持允许开发人员以最少的更改部署其现有的以太坊代码库。
这种兼容性大大降低了以太坊开发人员迁移到 zkSync 的门槛——促进了现有项目的更平稳过渡和集成。
原生账户抽象
zkSync Era 对原生账户抽象的实现带来了多项用户体验改进。它允许可编程授权,从而实现更灵活、更安全的钱包设计——例如具有社交恢复和多重签名功能的智能合约钱包。
此外,它还允许非加密修改,如交易到期时间和无序确认,从而增强交易的可用性和安全性。
L1 → L2 智能合约消息传递
该功能现在支持 L1(以太坊)和 L2(zkSync)之间的双向通信。它允许将信息从 zkSync 中继回以太坊,从而实现基于 L2 中发生的事件触发智能合约等操作。
这开辟了多种可能性,例如 web3 游戏可以在 L1 上进行游戏,但其游戏内资产(如武器皮肤 NFT)的二级市场可以在 L2 上进行。
zkSync Era 是解决以太坊可扩展性问题的解决方案吗?
zkSync Era 是通过零知识路线解决以太坊可扩展性挑战的关键参与者。其技术架构加上积极主动的开发周期使该项目与同行相比处于有利地位。
其最令人期待的扩展zkPorter是一种链下数据可用性解决方案,由 zkSync 背后的策划者 Matter Labs 开发。通过将交易数据保存在链下,zkPorter 将大大降低成本并提高交易的可扩展性。
此外,zkPorter 有望成为 Volition 解决方案类的一部分——该解决方案专注于为用户提供链上和链下数据可用性之间的选择。
虽然所有这些都需要我们的耐心,但在 zkSync 上构建 dapp 不需要等待。开发人员可以使用thirdweb 专门为 zkSync 主网提供的一套智能合约。从NFT 空投合约到ERC20 代币质押合约,开发人员需要的一切,thirdweb 都能提供。