Skip to content

Latest commit

 

History

History
214 lines (120 loc) · 12.8 KB

Suweet_ZICL1st.md

File metadata and controls

214 lines (120 loc) · 12.8 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》,学有余力者可以依此找到更多的扩展内容。

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


{Suweet}

  1. 一名北邮研究生,对web3感兴趣,想在技术层面有所深入
  2. 51%会,49%不会
  3. 稍有听闻,具体不详

Notes

2024.07.29

  • 学习主题:初步理解ZK

  • 学习内容小结:

    视频源:Computer Scientist Explains One Concept in 5 Levels of Difficulty | WIRED

    Q:视频讲了什么内容?

    A:UCLA(加州大学洛杉矶分校)的计算机科学教授Amit Sahai向五类人群介绍零知识证明ZKP(zero-knowledge proofs),分别是小孩、青少年、大学生、研究生和专家,针对各类人群的理解能力水平各自去解释ZKP和提供案例理解。

    1. 小孩

      存在证明者和验证者两类人,证明者要让验证者相信他知道某些信息但却不透露这些信息给验证者。

      一幅画里有一群企鹅,其中有一只假企鹅,我知道它在哪,但我不告诉你它在哪,我只让你相信我知道它在哪。

      那我该怎么去证明呢?我拿一块有一小洞的不透明板子遮住这幅画,从留出的一个小洞里把那只企鹅露出来,你自然就确定我知道它在哪了,但是你还是不知道它在画里的哪个位置。

      所以ZKP有什么用呢?绝不仅仅是找企鹅,比如你如果使用密码登录电脑,那黑客黑进你的电脑就能拿到你的密码,但如果使用ZKP,你向电脑证明了你是你,但却没有透露密码,那黑客黑进去后也拿不到你的密码。

    2. 青少年

      一个实际案例,有一个被锁上的信箱(可塞纸条进去),要向人证明我知道这个箱子的密码,而不向人透露出密码。那就让那个人写一个只有他知道的信息到纸上并塞进箱里,我只要把那个信息告诉他,那就说明我能够打开箱子,也就是我知道箱子的密码。

      在计算机里的应用就比如非对称密钥,你把一个段信息用一个公钥加密并将密文发给我,我要是能够解开密文把被加密的信息是什么告诉你,那就说明我知道这个公钥对应的私钥。这是一种交互式的ZKP,这是吗?

      非对称密钥的加解密过程从证明私钥由某人拥有的角度来看,我觉得应该就是一种ZKP,但二者不对等,非对称密钥算法和零知识证明算法是两类技术,要解决的目标不同,前者主要为了确保信息的机密性和完整性,后者则是为了证明某种知识的存在而不透露具体信息。

    3. 大学生

      NP完全问题(NP-C问题),Non-deterministic Polynomial Compete Problem,是一类很难计算的问题看,还没有高效的算法式的解决方法。只要解决一类NP-C问题的其中一个,就可以解决这类NP-C问题的其他所有问题。

      教授说,“向别人证明我有0.2BTC但不透露我的地址”和“我知道三色问题(三色图里任两邻国颜色不同)的解,但我不告诉你”都是一类NP-C问题,所以以后者来解释。

      把三色问题各国颜色隐藏,任选两邻国然后把它们颜色暴露给你看,如果不同那就有一定程度信我知道这个解,但肯定也不完全信,需要不断地再选再检查。但是,这样检查下去,你就知道全部邻国颜色了,所以打乱后再给你检查,一遍一遍下去,你就越来越相信了。

      好像我的理解有误,重新想一下,会不会是这样。因为我知道三色问题的解法,我可以得出不同的但是符合要求的解,这样我就能够算出新的不同的解,然后暴露你指定的两个邻国颜色给你去验证,你每次都验证通过了,但这些解又无法让你推理出整幅图的某一个着色解法。

      另外一个应用案例是选举,选举中投票人的每一票都要被计数,又不暴露投票人信息,并且可以确定这一票被算进去。

    4. 研究生

      随机数具有不确定性,随机数的这种理念可以被ZKP利用,通过不确定性来隐藏我们所要隐藏的东西。(有点搞不明白)

      ZKP最大的挑战还是在与不知道可以应用在什么地方,现有的主要还是在区块链上大放光彩。

      ZKP的效率瓶颈在证明者上,要是可以把证明计算并行化,那就可以大大提高效率。正好这位研究生就是做多方计算的。

      几十年前的ZKP系统到近些年才被应用,是由于算力得到了发展,有足够的算法支持落地。(云计算、分布式多方计算)

      人类合作受到人与人间普遍存在的信任问题所阻碍,使用数学的方法去保证信任问题,将信任从不可确定的人身上转移到确定性的数学公式上,这是一件amazing的事!

    5. 专家

      为什么不是zero-information proof或zero-data proof,而是zero-knowledge proof

      教授:zero-knowledge意味着你可以提前预知某事,可以提前准确预知所以也就获取不到任何新的knowledge。(有点摸不着头脑,字面上的确,获取不到任何新knowledge的证明,证明者去提供这样的一种证明,可是为什么和可以准确预知挂钩呢?教授意思不就是提前预知了knowledge后面就没有新knowledge了,这样还是ZKP吗,你本来就是想去隐藏knowledge的)

      专家:knowledge比information、data更重要,你获取了data,这些data蕴含了一个knowledge,你需要的是knowledge,而不是data,data要经过获取、挖掘然后才得到knowledge。

      现实中机密货币、ZKP的未来方向会是什么?并且其中计算的数学部分又会有多少?教授和专家都没有给出答案,这是个未解之谜,也是值得期待的事

      量子计算是密码学的大挑战,我们需要找到更难的问题,可以抵抗量子计算。在过去一段时期我们在密码学上的研究比过去几十年都要多,但事实上在基础研究上还收获的很少。(是不是说大多数都是在应用上,去用密码学的理论转化出实际中可用的加密算法程序、ZKP应用等等)

    Q:ZKP到底是什么?有什么特性?

    A:

    Q:ZKP目前发展情况?有什么实际应用?

    A:

    Q:在区块链领域中ZKP在哪些项目中落地?效果反响如何?

    A:

    Q:ZKP有哪些挑战和问题?

    A:

2024.07.30

  • 学习主题:听小宇宙【零知识证明:一场“无知”的游戏】

  • 学习内容小结:

    1. ZKP在密码学领域已经研究了30多年,到如今才在区块链上大显身手主要是因为算力发展的问题。

    2. 主播们讨论了上一节学习的视频内容,同时也给出了一些自己的例子和AI给出的例子。感觉交作业的那个例子其实还挺好,作业交上去,老师可以通过作业的填写内容这个证明来验证是否完成了作业,不过这个作业怎么完成的过程老师无从得知(假设没办法通过任何途径知道作业到底是不是我亲自完成的)。

    3. ZKP存在两种角色prover、verifier,prover给出证明statement,verifier验证statement得到true或false两种情况

    4. ZKP有三个基本特征:完整性(statement=true,诚实的verifier可以相信诚实的prover确实拥有正确的信息)、可靠性(statement=false,任何不诚实的prover都无法说服诚实的verifier相信他拥有正确的信息)、零知识性(除了知道statement为true或false外不再能够知道任何信息)

      TODO:->

    5. 不确定性和随机性在ZKP中的重要作用(待补、忘了)

    6. ZKP的两种实现:ZK-SNARKs、ZK-STARKs,优缺点

    7. 两种layer-2的Rollups交易验证方式:Optimistic Rollups、ZK Rollups

    8. 三种ZKP的数据存储形式:Rollups、Validium、Volition

    9. 案例分析:Loopring和zkSync

    10. 案例分析:StarkWare和StarkEx和StarkNet

    11. 游戏项目Immutable X如何使用zk-STARKs