timezone |
---|
Asia/Shanghai |
⚠️ 正式开始前请确保你在身体上和精神上都处于合适的状态,请刻意练习,残酷面对 🆒。为方便检索 The First ZK Intensive CoLearning 简写为 ZICL1st,第 2 期即为ZICL2nd,第 3 期即为 ZICL3rd,以此类推。
⚠️ 报名需要按要求认真填写下面 [ XXX ] 部分,方可通过报名审核,通过审核即可开始自主学习。
第一期的重点是向大家介绍什么是 ZK、 ZKP 的基础知识,以及 Circom 代码入门,有一定难度,共学资料如下:
- 第一周:7 月 29 日 - 8 月 4 日:Introduction and History of ZKP
- 20min 的视频:初步理解 ZK 是什么
- 70min 的播客:零知识证明:一场”无知“的游戏
- (一)初识「零知识」与「证明」
- (二)理解「模拟」
- (三)寻找「知识」
- 100min 的视频:ZKP Lecture 1: Introduction and History of ZKP
- 第二周:8 月 5 日 - 8 月 11 日:Overview of Modern SNARK Constructions
- 第三周:8 月 12 日 - 8 月 18 日:Write some Circom
- 基础电路:
- ZK Shanghai 基础电路教学
- 编辑器:zkREPL
- 基础电路练习 这部分材料结合了Circom源码,可以多花时间来研究
- 实用电路:
- 基础电路:
本次共学资料前两周的 lecture 来自 zk-learning,博客来自 《探索零知识证明系列》和《从零开始学习 zk-SNARK》,第三周的 Circom 部分来自 0xparc,视频讲解为 ZK Shanghai 的中文版本。郭宇老师还推荐了这篇文章《Survey-SNARKs》,学有余力者可以依此找到更多的扩展内容。
- 自我介绍
- 你认为你会完成本次残酷学习吗?
- 目前阶段对于 ZK 的了解?
学习第一节课视频 计算机科学家Amit Sahai解释零知识证明(Zero-Knowledge Proofs)这一概念。视频分为5个不同难度级别的解释,从儿童到专家,Amit Sahai逐步深入地讲解了这一复杂概念。:
-
零知识证明的基本概念 零知识证明是一种方法,允许证明者(prover)向验证者(verifier)证明某个陈述是真实的,而无需透露除了该陈述真实性之外的任何额外信息。
-
对儿童的解释 Amit使用了一个藏在企鹅群中的海雀图片来解释这个概念。他通过在一块板子上开一个小孔,让孩子看到海雀而不知道它在图片中的具体位置,从而证明他知道海雀的位置,但不透露具体信息。
-
对青少年的解释 Amit使用了一个带密码锁的盒子来演示。他能打开盒子并读出里面的内容,证明他知道密码,但并未透露密码是什么。
-
对大学生的解释 Amit介绍了NP完全问题和地图三着色问题。他使用封闭的信封来表示地图上的颜色,通过多次随机验证来证明他有正确的着色方案,而不需要显示整个地图的着色。
-
对研究生的解释 讨论了零知识证明在区块链和多方计算中的应用。强调了零知识证明不仅是为了提高效率,更是为了实现以前无法实现的功能,如在不透露个人投票信息的情况下证明选举的正确性。
-
与专家的讨论 深入探讨了零知识证明的数学基础、随机性的作用、以及与量子计算的关系。讨论了未来研究方向,包括寻找量子抗性的困难问题,以及如何利用零知识证明来解决社会信任问题。
- 学习第一篇 零知识与证明
- 零知识证明的定义
- 零知识证明是一种密码学技术,允许一方(证明者)向另一方(验证者)证明某个陈述是真实的,而无需透露除了该陈述真实性之外的任何额外信息。
- 零知识证明的三个特性
- 完备性:如果陈述为真,诚实的证明者可以说服诚实的验证者。
- 可靠性:如果陈述为假,任何不诚实的证明者都无法说服诚实的验证者。
- 零知识性:如果陈述为真,验证者除了知道该陈述为真之外,不会获得任何额外信息。