Skip to content

第 2 课 补充讲义

如何使用这些笔记:如果您正在关注PPT或课程回放,并想更深入地研究提到的某些主题,请在下面查找相应的标题以获取其他链接或上下文。

什么是 zkSNARK?

稍后将对此进行更详细的介绍,但是有很多很好的资源可以帮助您了解 zkSNARKs 的工作原理、它们的学术血统等。

circom/snarkjs/zkREPL 演示

如果您对基础设施或开发工具感兴趣,zkREPL 是一个非常酷的有用 ZK 开发工具示例。

此处 阅读更多相关信息,或在 此处

circomlib

circomlib 包含经过审计的通用电路构建块列表。 您可以在这个库中找到我们今天讨论的许多电路。

域大小和 BN254

circom 中的所有信号都是素数域中的域元素

r = 21888242871839275222246405745257275088548364400416034343698204186575808495617
r = 21888242871839275222246405745257275088548364400416034343698204186575808495617

这是一个 254 位素数,称为 BabyJubJub 素数。 这是 BN254 的曲线顺序,这是以太坊和(以前的)ZCash 使用的配对友好椭圆曲线。 您可以在 Jonathan Wang 的优秀文档 此处 中阅读更多关于 BN254 的信息。

零知识应用

zkmessage

有关这方面的更多信息,请参阅 第 1 课 练习

黑暗森林

您可以在 这篇博文 中阅读更多关于黑暗森林的信息。

如果您有兴趣深入挖掘,这里有一段关于“去中心化不完全信息游戏”的视频 (30m) 悖论,以及一些用于去中心化游戏的 ZK 结构。 这是另一个 视频 (30m),讲述为什么去中心化游戏很有趣。

Tornado Cash

Tornado Cash 使用与我们在第一节讨论的匿名投票应用程序相同的 ZK 结构。 我们在 此处 深入了解 Tornado Cash 的工作原理,当然稍后我们也将在课程中讨论。

ZKML

您可以在 此处 查看 ZKML 的资源集合。