课程表
第 1 课【4月8日周六】 初识零知识
在第一次课程中,我们将了解现在的零知识技术及应用。在课上我们将会讨论为什么零知识最近会成为一个令人兴奋的话题,以及为什么我们认为它有可能成为未来十年最大的技术故事之一
- 课程回放
- 课堂幻灯片
- 课后作业
- 补充材料:交互式零知识三色问题演示
- 补充材料:补充讲义
第 2 课【4月22日周六】 CIRCOM基础电路
由于4月15日在香港有Web3嘉年华,主讲及许多学员都会前往,因此推迟
本节课将会讨论实用的zkSNARK电路工程方法:使用工具如(circom/snarkjs/zkREPL) 为 groth16 zkSNARK 协议构建简单的零知识证明。我们将讨论 R1CS 编程模型(和成本模型)和简单的电路组件,例如位运算符、范围检查等。
第 3 课【4月29日周六】 数学基础构件
我们将讨论现代证明系统的一些"基础构件",包括:零知识的形式化,离散对数和其他常见的密码学难度来源,椭圆曲线密码学,和双线性映射密码学。
第 4 课【5月7日周日】 CIRCOM实用电路
由于5月6日是五一放假调休补上班的日子,所以往后推到周日
在 "CIRCOM基础电路" 的基础上,我们将编写和讨论更复杂的电路:包容证明验证、哈希函数、签名和加密验证。
第 7 课【5月28日周日】 高效密码运算算法1
我们特别邀请了美国纽约大学的陆晨博士来讲解这节课,因此时间做了调整
我们将从快速椭圆曲线翻倍加运算作为起点,讲解现代零知识证明高效运算背后的数学知识。
第 8 课【6月4日周日】 高效密码运算算法2
我们特别邀请了美国纽约大学的陆晨博士来讲解这节课,因此时间做了调整
我们将接着上节课,继续讨论高效打开和多项式算法的技术,包括数论变换(NTT); 多标量乘法 (MSM)。
第 9 课【6月10日周六】 PLONK及证明系统技术栈
我们将深入研究一种基于多项式承诺方案的 zkSNARK 构造:PLONK 协议,以及一种特定的类PLONK算术化。 基于前四节的学习,我们将概述 zkSNARK 协议的全景。
- 补充材料:补充讲义-Pinocchio
- 补充材料:PLONK by Hand: 第 1 部分, 第 2 部分, 第 3 部分, 笔记
第 10 课【6月17日周六】 递归和组合;应用ZK结构 1
我们首先讨论证明系统递归和组合,以此窥看zkEVM等方案的实用化方案。 我们还将讨论实用的ZK构造:假名消息传递的成员证明、基于无效器的隐私数字货币转移、zk-email等。