Skip to content

Latest commit

 

History

History
175 lines (119 loc) · 10.4 KB

coderprepares.md

File metadata and controls

175 lines (119 loc) · 10.4 KB
timezone
Asia/Bangkok

请在上边的 timezone 添加你的当地时区,这会有助于你的打卡状态的自动化更新,如果没有添加,默认为北京时间 UTC+8 时区 时区请参考以下列表,请移除 # 以后的内容

timezone: Pacific/Honolulu # 夏威夷-阿留申标准时间 (UTC-10)

timezone: America/Anchorage # 阿拉斯加标准时间 (UTC-9)

timezone: America/Los_Angeles # 太平洋标准时间 (UTC-8)

timezone: America/Denver # 山地标准时间 (UTC-7)

timezone: America/Chicago # 中部标准时间 (UTC-6)

timezone: America/New_York # 东部标准时间 (UTC-5)

timezone: America/Halifax # 大西洋标准时间 (UTC-4)

timezone: America/St_Johns # 纽芬兰标准时间 (UTC-3:30)

timezone: America/Sao_Paulo # 巴西利亚时间 (UTC-3)

timezone: Atlantic/Azores # 亚速尔群岛时间 (UTC-1)

timezone: Europe/London # 格林威治标准时间 (UTC+0)

timezone: Europe/Berlin # 中欧标准时间 (UTC+1)

timezone: Europe/Helsinki # 东欧标准时间 (UTC+2)

timezone: Europe/Moscow # 莫斯科标准时间 (UTC+3)

timezone: Asia/Dubai # 海湾标准时间 (UTC+4)

timezone: Asia/Kolkata # 印度标准时间 (UTC+5:30)

timezone: Asia/Dhaka # 孟加拉国标准时间 (UTC+6)

timezone: Asia/Bangkok # 中南半岛时间 (UTC+7)

timezone: Asia/Shanghai # 中国标准时间 (UTC+8)

timezone: Asia/Tokyo # 日本标准时间 (UTC+9)

timezone: Australia/Sydney # 澳大利亚东部标准时间 (UTC+10)

timezone: Pacific/Auckland # 新西兰标准时间 (UTC+12)

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》,学有余力者可以依此找到更多的扩展内容。

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


ZhaoHong

  1. 自我介绍

Web2 Full Stack Developer and Web3 Explorer.

  1. 你认为你会完成本次残酷学习吗?

Yes.

  1. 目前阶段对于 ZK 的了解?

A little bit.

Notes

2024.07.29

  • 学习主题:初步理解 ZK 是什么
  • 学习内容小结:5个难度级别解释零知识证明的概念
    • 儿童
      • 在这些企鹅中藏了一只海雀,我能向你证明我知道海雀的位置,而不透露其确切地点。
      • 把照片放到海报后面,透过洞可以看到海雀,从而证明知道位置。海报后面的照片放置位置是未知的,从而不透露海雀确切位置。
    • 青少年
      • 将纸条放入密码箱,通过验证纸条内容证明知道密码,而不用透露密码。
    • 大学生
      • NP完全问题:是一类计算问题,目前还没有找到高效的算法解决方案。
        • NP问题:不确定多项式时间问题(Nondeterministic Polynomial time problem),问题的解可以在多项式时间内验证。
          • 多项式时间:运行时间可以表示为 n 的一个多项式,如:线性时间 O(n)、平方时间 O(n^2)、立方时间 O(n^3)
        • NP-Hard:任何一个NP问题都可以通过多项式时间归约(polynomial-time reduction)到这个问题。这意味着,如果我们能够在多项式时间内解决这个问题,那么我们也可以在多项式时间内解决所有的NP问题。
          • 它们至少和NP问题一样难,但不一定属于NP类(即不一定有多项式时间验证算法)。
        • NP Complete:NP && NP-Hard
      • 地图三色着色问题(3-Coloring Problem)是指:给定一个地图,能否用三种颜色对地图进行着色,使得相邻的区域具有不同的颜色。
        • 这其实是图论中的一个问题,可以形式化为:给定一个图,能否将其顶点着色成三种颜色,使得相邻顶点颜色不同。
        • 任选两块相邻区域,获取他们的颜色,验证颜色不同以证明着色有效。下一次选择时会对着色的颜色进行变换,从而防止透露具体着色方案。
        • 进行大量验证都通过,则认为着色方案有效。
    • 研究生
      • 一般来说,当你在应用中使用零知识证明时,主要的瓶颈往往在于证明者。
        • 证明者(Prover):负责生成零知识证明的实体,需要做大量的计算工作来创建一个有效的证明。
        • 验证者(Verifier):负责验证证明有效性的实体,通常验证工作相对简单且快速。
      • 是否能把证明者的工作拆分成多个并行计算任务?
    • 专家
      • 如何为高效的零知识程序和证明创建数学上的难题。随着量子计算的到来,它能够破解许多加密系统,我们需要新的抗量子难题来源。
        • 零知识证明(Zero-Knowledge Proofs)依赖于构造难题,使得证明者能够在不泄露秘密信息的情况下,证明自己知道某个解。这些难题需要具备以下特性:
          • 难以求解:在没有特定秘密信息的情况下,问题应该是难以求解的。
          • 容易验证:给定正确的解,验证这个解的正确性应该是容易且快速的。
        • 计算难度是加密和零知识证明的基础:难题的难度保证了加密的安全性和零知识证明的有效性。
        • 量子计算威胁现有密码系统:量子计算机的出现可能会破解现有的许多密码系统,迫使我们寻找新的难度来源。
        • 量子抗性问题:为了应对量子计算的威胁,我们需要开发基于新数学问题的加密方案和零知识证明,这些问题需要对量子计算保持抗性。

Note: 一遍回顾一遍问ChatGPT,好家伙好多新概念。

2024.07.30

看了昨天的视频对于文中的一些概念没有那么陌生了。 另外学到一个新的概念:“电路可满足问题”,之前经常看到什么写电路,一直不太明白电路跟零知识证明有何关系,目前大概能理解一些了。

2024.07.31

今天的文章介绍了模拟的概念。模拟器的不可区分性使得验证者无法区分真正的交互和模拟的交互,从而保证零知识属性。 总的来说还是比较抽象,需要继续阅读下一个文章来加深理解。

2024.08.01

总结一下:「抽取器」在「理想世界」中,通过时间倒流的超能力,把 Alice 的「知识」完整地「抽取」出来,这就保证了一个没有知识的 Alice 是无法让抽取器达成目标,从而证明了「可靠性」。

跟上一节一样,涉及到模拟器超能力的部分都有点难以理解。

  • 理想世界:只是一个用于理论证明的假设,不是实际存在的。
  • 现实应用:虽然抽取器在现实中不具备时间倒流的能力,但通过理论证明我们可以确保协议在现实中也具有类似的可靠性。

还是有点懵懂,只能先这么理解着,再继续往后学习吧。