Skip to content

Latest commit

 

History

History
195 lines (140 loc) · 11.3 KB

xiaodongQ_ZICL1st.md

File metadata and controls

195 lines (140 loc) · 11.3 KB
timezone
Asia/Shanghai

ZK 残酷共学第 1 期残酷指引

⚠️ 正式开始前请确保你在身体上和精神上都处于合适的状态,请刻意练习,残酷面对 🆒。为方便检索 The First ZK Intensive CoLearning 简写为 ZICL1st,第 2 期即为ZICL2nd,第 3 期即为 ZICL3rd,以此类推。

⚠️ 报名需要按要求认真填写下面 [ XXX ] 部分,方可通过报名审核,通过审核即可开始自主学习。

共学内容

第一期的重点是向大家介绍什么是 ZK、 ZKP 的基础知识,以及 Circom 代码入门,有一定难度,共学资料如下:

本次共学资料前两周的 lecture 来自 zk-learning,博客来自 《探索零知识证明系列》《从零开始学习 zk-SNARK》,第三周的 Circom 部分来自 0xparc,视频讲解为 ZK Shanghai 的中文版本。郭宇老师还推荐了这篇文章《Survey-SNARKs》,学有余力者可以依此找到更多的扩展内容。

最后,非常感谢安比实验室郭宇老师对于本次共学资料选择的指导!


{你的名字}

  1. 自我介绍
    CPP多年开发,学过Go、Rust,尝试搞Web3副业
  2. 你认为你会完成本次残酷学习吗?
    应该能
  3. 目前阶段对于 ZK 的了解?
    了解不多,仅限部分概念

Notes

2024.07.29

  • 学习主题:了解ZKP(零知识证明,Zero-Knowledge Proof),以及共学提供的资料
  • 学习内容小结:
  1. Amit Sahai教授针对不同年龄和知识水平的人讲解ZKP的几个示例(Amit Sahai是UCLA的计算机方面的一位杰出教授,研究兴趣集中在密码学和安全等领域),初步了解零知识证明的作用。视频:初步理解 ZK 是什么
  2. 简单听了下介绍ZKP的中文播客,听得有点累,还是先看看文档吧
  3. z2o-k7e社区整理的学习ZKP资料,看起来质量很不错

目前学习了:1. 初识「零知识」与「证明」

番外:
找郭宇老师推特(1dot2)过程中,看到已退推的kurtpan.eth(复旦密码学博士,也是上面z2o-k7e项目的主要贡献者之一)博客上截取自《过河卒》的这篇文章:过河卒·日出江花红胜火
周六去杭州的web3 summer线下,正好嘉宾也谈到比特币白皮书和国人的渊源,引用文献的第一篇就是一个华人的文章。也就是上面文章中的Wei Dai

这里简单记录每日学习小结,具体内容放在zk_learn_note笔记

2024.07.30

  • 学习主题:学习 2. 理解「模拟」
  • 学习内容小结:主要讲述怎么证明系统是零知识的。真实世界和理想世界,模拟器可区分这两个世界,但是世界里的个体不可区分。这个模拟器可理解为计算机系统的快照。

概念还有点晦涩,似懂非懂,还需继续往下学习。

2024.07.31

  • 学习主题:学习 3. 寻找「知识」
  • 学习内容小结:
    • 描述了可靠性和零知识,里面用数学知识来描述和证明加密算法,有点抽象,先放一放。
    • 通过里面的单向映射举例,对椭圆曲线加密算法(ECC)理解更直观了一点

2024.08.01

  • 学习主题:密码学相关概念学习
  • 学习内容小结:
    • 对称/非对称加密算法有哪些;
    • 数字签名、数字证书、数字信封、PKI、PMI等概念;
    • 国密标准
    • 相关笔记:密码学相关学习笔记

2024.08.02

  • 学习主题:1-Polynomial-Interaction-and-Proof
  • 学习内容小结:
    • 了解 zk-snarks 这种零知识证明协议的概念
    • 简单跟踪了下多项式因式分解对应的协议过程,大致有个了解

剩下的几篇大概浏览了下,都是关于zk-SNARK的数学知识,第一篇还能大概跟上,剩下的理解还是比较费劲。

先大概有个概念,看后面比较偏实践的内容,工程上如何利用零知识。

2024.08.03

  • 学习主题:视频学习,ZK Shanghai 基础电路教学,暂学到45min
  • 学习内容小结:
    • 算术电路的概念(区别于电子电路)
    • 初步了解zkREPL,demo运行
    • 零知识证明电路的常见设计方法,了解各方法背后对应的数学运算

2024.08.04

  • 学习主题:视频学习,下半部分 ZK Shanghai 基础电路教学
  • 学习内容小结:
    • 了解 Circom,可定义可用于生成零知识证明的算术电路
    • CircomLib是一个公开可用的库,带有数百个电路,例如比较器、哈希函数、数字签名、二进制和十进制转换器等等。

2024.08.05

2024.08.06

2024.08.07

2024.08.10

  • 学习主题:继续学习 基础电路练习
  • 学习内容小结:
    • IsZero算术电路
    • signal只能赋值一次,无论分支是否只走一次
    • 可参考circom文档:signals

2024.08.11

  • 学习主题:继续学习 基础电路练习
  • 学习内容小结:
    • 算术电路:IsEqual、Selector、IsNegative
    • template 和 component 文档学习

2024.08.12

  • 学习主题:继续学习 基础电路练习
  • 学习内容小结:
    • 算术电路:LessThan

2024.08.13

2024.08.14

2024.08.16

2024.08.17

  • 学习主题:看完视频 ZKP Lecture 2: Overview of Modern SNARK Constructions
  • 学习内容小结:
    • ZK学习暂告一段落,对基础概念和简单原理有了一个认识。看数学公式的过程里,也提升了其他方面的技能,比如最近看leveldb的布隆过滤器原理,里面一些概率论方面的证明过程,看到也能稍微沉下心来看明白。相比而言,ZK的数学原理自己当前还比较吃力。
    • 这次初学作为一个起点。