zksync 介绍

  • nilliol
  • 更新于 2024-07-16 00:47
  • 阅读 866

zksync2.0(后面简称zksync)简单而言具体的,实现了ZKRollup的项目,其采用了ZK-SNARK的零知识证明算法(经过Boojum升级后变为ZK-STARK的算法)。根据其官方所讲,其具有以下特点:可靠的安全性(继承自以太坊的安全性),对第三方零依赖(这个

zksync 2.0 (后面简称 zksync)简单而言具体的,实现了 ZK Rollup 的项目,其采用了 ZK-SNARK 的零知识证明算法(经过 Boojum 升级后变为 ZK-STARK 的算法)。根据其官方所讲,其具有以下特点:

  • 可靠的安全性(继承自以太坊的安全性),对第三方零依赖(这个没看懂)
  • 无需许可的 EVM 兼容智能合约(不理解无需许可的意思)
  • 保留关键的 EVM 功能,如智能合约的可组合性
  • 标准的 web3 API
  • 通过交易输出,即状态差异进行状态更新(这中方式更加节省成本)
  • 原生的抽象账户

总体

对于 zksync 的架构组成,可以分为几个部分:

  • zkSync 智能合约:

    • zksync 部署了 Solidity 合约在 L1(以太坊)网络上,作为 ZK Rollup 的链上部分组件。负责管理用户的 balance(余额)并验证证明者提交的零知识证明与更新状态,同时实现以太坊与 zksync 的交互(存款、取款、跨层消息传递)
  • zkSync Prover:

    • Prover 是一个按需的 worker(需求量大(即 Server 负载高)的时候有多个,不需要(即没有交易输入)的时候没有),可以为一个有效区块生成零知识证明 proof,以此证明链下处理的交易的正确性,然后将证明交给 Server,由 Server 交给链上合约,保证合约只接收有效的交易。
    • 由于生成零知识证明 proof 需要大量的计算,所以作为 Prover 的机器需要有强大的 CPU 与大量的 RAM。
  • zkSync Server(服务程序):

    • Server 就是 zksync 的网络节点,负责维护链下状态,将交易聚合为 batches,将密封的 batches 发送到链上。具体而言具有以下功能:

    • 监测智能合约的链上操作(如存款,取款)

    • 接收 zksync 交易

    • 生成 zksync 的区块

    • 为有效区块发出 proof 生成申请

    • 将数据发布到 zksync 的合约上

  • ZK Circuits(应该就是具体的 ZKEVM 吧):

    • Circuits 的这些电路时复杂的数学结构,代表了可验证的计算逻辑。其负责确定什么可以被验证为有效的 proof。对于 zksync ,Circuits 定义了 EraVM 运行的计算规则,定义了交易的执行方法。

image-20240715143431-myf3tqd.png总体概览(取自官网)

参考文章:

ZKsync Era Protocol

Dapp-Learning ZKsync Era Tutorial

zkSync学习记录 2023.01.31

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
nilliol
nilliol
0xbe3e...29A9
web3 的学习者,寻找实习机会中。 博客地址:https://llwh2333.github.io