【无标题】

本文详细介绍了zkSync项目的电路部分,包括zk证明的作用,如何通过见证生成确保交易有效性,以及ZK电路如何通过算术化和Boojum工具箱确保智能合约的正确执行。着重展示了ZKSync如何通过加密和约束机制保障安全性和效率。
摘要由CSDN通过智能技术生成

zksync项目架构全分析(电路部分 -介绍zksync的zk)

全文内容来自C4对zksync项目审计的文档
我从电路部分开始看的,所以就先写电路部分了,其余部分后面可能会更新
第一章 合约部分(没看)
第二章 虚拟机部分(没看)
第三章 电路部分



前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


Intro to zkSync’s ZK

作为 ZK 的升级版,我们希望一切都能通过加密技术进行验证,并由以太坊提供安全保障。ZK 的强大功能可以压缩交易,为用户减少费用,同时继承相同的安全性。

ZK 证明允许验证者轻松检查证明者是否正确完成了计算。对于 zkSync,证明者将证明 zkSync EVM 的正确执行,以太坊上的智能合约将验证证明的正确性。

具体来说,有以下几个步骤。

  • Witness generation:见证生成可视为用户(验证者)生成交易有效性证明过程的一部分。例如,当用户发起一笔交易时,就会生成相应的见证,作为交易有效并遵守网络共识规则的证明。零知识方面确保了见证人不会透露任何有关交易细节的信息,从而维护了用户隐私和数据安全。新交易是分批证明的。这些批次将被处理并发送到电路。
  • Circuits:我们的虚拟机需要证明执行已正确完成,以便正确生成证明。这可以通过电路来实现。为了让证明发挥作用,必须将正常的代码逻辑转换成证明系统可读取的格式。虚拟机读取将要执行的代码,并将各部分归类为各种电路。然后,这些电路分解代码的各个部分,并将其发送给证明系统。
  • Proof system:我们需要一个证明系统来处理 ZK 电路。我们的证明系统称为 Boojum

以下是我们使用的不同资源库:

  • Boojum: 将其视为工具箱。它包含一些重要的工具和部件,如验证器(帮助确认电路的功能)、校验器(对所有内容进行双重校验)以及其他各种后端组件。这些都是技术上的零碎部分,比如定义电路中会用到的布尔值、数值和变量。
  • zkevm_circuits: 这是我们构建和存储实际电路的地方。电路由 Boojum 构建,旨在复制 EVM 的行为。
  • zkevm_test_harness: 这里就像是我们的试验场。在这里,我们有不同的测试来确保电路正常工作。此外,它还包含必要的代码,帮助顺利启动和运行这些电路。

What is a circuit ?

ZK 电路的名称来自算术电路,它看起来像这样(见图)。您可以从底部的输入开始阅读电路,然后沿着箭头边走边计算每个运算。
在这里插入图片描述

求证器将证明电路 "满足 "输入,即每一步都计算正确,从而得到正确的输出。

非常重要的一点是,每一步实际上都是 "受限 "的。证明者必须被迫计算正确的值。如果电路缺少一个约束,那么恶意证明者就可以创建通过验证但无效的证明。ZK 术语对此的解释是,约束不足的电路可能导致健全性错误。

What do zkSync’s circuits prove?

我们电路的主要目标是证明虚拟机的正确执行。这包括证明虚拟机内运行的每个操作码,以及其他组件,如预编译、存储和连接其他一切的电路。细节Circuits

More details

将代码转化为约束的过程称为算术化。我们的算术化基于 "Plonk "的变体。具体细节已从电路中抽象出来,但如果你想了解更多信息,可以看 Vitalik’s blog 讲解的Plonk或者直接看 Plonky2 paper.

更多证明系统的信息在这篇论文Redshift Paper.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值