Skip to content

Latest commit

 

History

History
190 lines (127 loc) · 9.51 KB

Tim0_ZICL1st.md

File metadata and controls

190 lines (127 loc) · 9.51 KB
timezone
Asia/Shanghai

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

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


{你的名字}

1.自我介绍 BUPT大四学生,ZK小白。 2.你认为你会完成本次残酷学习吗? 会 3.目前阶段对于 ZK 的了解? 还没入门,期望可以取得进步。

Notes

2024.07.29

  • 学习主题:了解zk的历史、定义、特点。
  • 学习内容小结:零知识证明是一种密码学方法,使得证明者能够向验证者证明某一声明的真实性,而无需透露任何关于声明的其他信息。具有完备性、可靠性、零知识的特点。 完备性(Completeness):如果声明为真,诚实的证明者可以成功说服诚实的验证者。 可靠性(Soundness):如果声明为假,欺诈性的证明者无法成功说服诚实的验证者,除了极小的概率。 零知识(Zero-Knowledge):验证者不会获得除声明真实性之外的任何额外信息。

2024.07.30

  • 学习主题:了解模拟器,理想世界,显示世界的概念。
  • 学习内容小结:模拟器是一个算法,用来在理想世界中模拟与验证者的对话,而不使用实际的秘密信息。通过构造模拟器,可以证明在现实世界中,验证者无法从交互中获得除陈述真实性以外的其他信息。

2024.07.31

  • 学习主题:学习"知识"的概念。
  • 学习内容小结:零知识证明具有完备性、可靠性、零知识的特点。而只有「知识」在存在的前提下,保证「零知识」才有意义。

2024.08.01

  • 学习主题:学习“挑战”
  • 学习内容小结:非交互式零知识证明(NIZK)中模拟器无法使用“时间倒流”的超能力来模拟理想世界,从而理论上会导致系统不可靠。可以通过引入随机预言机来弥补挑战的缺失。随机预言机是一个假设存在的虚拟机制,可以通过哈希函数来模拟。

2024.08.02

  • 学习主题:隐藏“秘密”
  • 学习内容小结:隐藏的秘密通常指的是某些隐藏在公共参考字符串(CRS)中的信息,用来让模拟器(Simulators)具备某种特殊的能力,从而在非交互式零知识证明(NIZK)中达到与交互式零知识证明相同的效果。

2024.08.03

  • 学习主题:回顾
  • 学习内容小结:回顾了一下前几章的知识,着重关注了一下Zlice如何欺骗Bob。在SHVZK中,Zlice需要具有读取Bob预选随机数的“超能力”,将Bob最后验证所需的随机数改为R'=zG-cPK. 而在NIZK中,则是通过绑架负责预言的“精灵”,将c 与 (m, R')写入表格,R'=zG-cPK.

2024.08.05

  • 学习主题:进入zk-SNARK的学习

  • 学习内容小结:通过视频了解zk-SNARK。

  • 2024.08.06

  • 学习主题:学习Polynomial Interaction and Proof

  • 学习内容小结:问题:prover 想要证明他知道一些多项式p(x),verifier进行验证 协议一: verifier构造t(x),t(x)的根是p(x)的根;并计算t(s),并将s发送给prover prover 用h(x)=p(x)/t(x)计算出h(s)和p(s)发送给verifier进行验证 verifier 验证 h(s)*t(s)?=p(s) 存在的问题:协议对多项式阶数并没有明确的要求, prover 完全可以拿一个满足因式校验的超级高阶数的多项式来欺骗 verifier 改进:采用同态和模运算。 同态加密的核心:允许在加密状态下进行加法和乘法操作

    2024.08.07

  • 学习主题:Non-interactivity & Distributed Setup

  • 学习内容小结: 所解决的问题 1.保证 prover 的证明是按照规则正确构造的 ——> KEA ( a′=a^α (modn)) ) 2.保证知识的零知性 ——> “无成本的” δ 变换 3.可复用证明 ——> 非交互式 4.非交互中如何设置安全公开且可复用的参数 ——> 参数加密,verifier 借助 pairing 进行验证 5.保证参数的生成者不泄密 ——> MPC’s Setup

    2024.08.08

  • 学习主题:General-Purpose-Computation

  • 学习内容小结: 1.将要证明的程序转换为数学语言表达的形式(即加减乘除的计算) 2.用多项式在某处的取值来进行计算以此表示数学计算,进而进行证明 3.用多项式在多处的取值来进行计算表示多个数学运算,进而加以证明 4.对证明的“程序”在不同计算中使用的相同的变量进行约束

    2024.08.09

  • 学习主题:复习

  • 学习内容小结: 今天复习一下前三章所学。

    2024.08.11

  • 学习主题:零知识电路设计

  • 学习内容小结: 开始学习零知识电路设计和Circom。

2024.08.13

  • 学习主题:学习circom 语言功能或语法
  • 学习内容小结: 学习circom 语言功能或语法