PrivacIN Week3课程回顾 | 韩博士讲授ZK电路开发 & zkEVM设计

隐私学院PrivacyIN的ZK训练营第三课由韩思远博士讲授,深入探讨ZK电路开发和zkEVM设计。课程详细介绍了ZKP应用的电路设计思路,包括前端和后端的划分,以及R1CS和QAP的创建过程。同时,讲解了zkEVM的实现,讨论了不同方案和安全性问题。
摘要由CSDN通过智能技术生成

2022 年 7 月 23 日 9:30,隐私学院 PrivacyIN 首期 ZK 训练营第三课 ——《Applied ZK In Practice》准时开课。本期课程由香港科技大学在读博士韩思远讲授,以 ZK 电路开发和 zkEVM 设计为主题,围绕零知识证明应用电路设计及 zkEVM 构建思路展开,帮助学员学懂 ZKP 电路设计。此次培训延续小班授课,数十名国内外密码学及相关领域的专家学者参加了本次 ZK 技术培训。
在这里插入图片描述

背景知识

基于零知识证明(ZKP)的应用实现,主要是通过将一般的计算问题转化为电路问题,然后构建基于零知识证明系统的电路约束或其他保证计算特性的约束,来实现可验证计算和零知识性。在确定的零知识证明系统(协议)上,ZKP 应用的构建核心内容则是业务电路的设计和开发,因此了解应用电路设计思路、保证安全性和高效性都是非常重要的议题。

课程主要内容

简单介绍了基于零知识证明的应用系统设计所涉及的背景知识后,韩思远老师以开发者的视角,为大家介绍了 ZKP 应用涉及的难题。他表示:完整理解零知识证明(ZKP) 应用开发是非常复杂的,需要理解多种经典 ZKP 协议设计原理、深度的密码学和数学知识、难以选择的 ZKP 框架、晦涩难懂的术语和概念等,ZKP 应用系统设计知识曲线较高,初学者是很难入门的。
在这里插入图片描述

ZKP 系统

从程序设计视角,ZKP 系统一般可以划分为前端 frontend 和后端 backend 两个部分。

ZKP 系统的 Frontend 部分的主要使用低级别语言来表示高级别语言,例如可以将一个一般地计算问题使用较低级别的电路语言表示,如 R1CS 电路约束构建计算等(比如 circom 使用 R1CS 描述其前端电路)。

ZKP 系统的 Backend 部分即密码学证明系统,主要将 frontend 构建低级别的语言描述的电路,转换为生成证明和验证正确性等,比如常用的 backend 系统协议有 Groth16 和 Plonk 等。
在这里插入图片描述

韩思远博士表示,基于 frontend 和 backend 开发分离的思路,开发一个基于 ZKP 的应用系统,在密码学专家选定合适 ZKP 证明系统作为 backend 后,开发人员的工作主要考虑的是如何使用 frontend 提供的低级语言来描述和实现应用业务逻辑,而无需关注 ZKP 证明系统后端。

R1CS 的创建

zkSNARKs 系统比较常用的是 R1CS(rank1-constraint-system),R1CS 定义结构形如:
在这里插入图片描述

Ai、Bi、Ci 分别为乘法电路门的左操作符(线)的系数向量、右操作符(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值