Skip to content

工作坊简介

这里是由 Sutulabs 和 Kepler42B - ZK Planet 共同举办的零知识开发者Workshop,我们将开展构建和使用零知识证明的系列课程工作坊。

本工作坊内容主要参考MIT IAP 2023 Modern Zero Knowledge Cryptography进行设计。

本课程涵盖的主题范围从现代零知识协议(交互式协议、椭圆曲线密码学、双线性映射密码学、多项式承诺方案、zkSNARKs等)的数学基础到由 ZK 原语(隐私保护的身份和信誉系统、匿名数字交易系统、可验证计算等)。在课程快结束时,学生将实现自己的“零知识电路”,这些电路可以集成到实际应用中。

本课程的重点是培养对现代零知识的 概念性理解。这个课程旨在从理论到应用的“全栈”综合理解,因此较少强调精确的数学严谨性,而更多地强调传达整体思想和经常出现在现代ZK应用中的常见方法。

如果您具有较强的英文听读能力、计算复杂性理论知识、密码学基础以及计算机编程能力,并且期望能在数学层面更加深入的理解零知识证明知识体系,推荐您直接学习本工作坊参考的原版课程。相比原版课程,本工作坊会减少数学推导及论证的过程,以缩减前置数学要求,并期望参与者可以从更加宏观的层面理解零知识证明体系,同时会加大实用性编程的指导,以期望参与者可以将零知识证明的知识顺利应用到具体业务场景当中。

课程安排

地点:上海市杨浦区国康路100号上海国际设计中心22楼多功能厅

时间:一般时间为每周六(部分课程时间有调整,具体见课程表)下午 14:00~15:30 上课,16:00~17:00 答疑。

线上答疑: Github Discussion

视频回放免责声明:部分课堂活动将进行录制。这些回放可能会在其他课程中重复使用,供其他学生查看,或用于其他教育和研究目的。 如果您有任何疑问,请联系教学团队的成员。

作业模版此处

前置数学知识

对于第 5 课到第 9 课(涵盖 ZK 证明堆栈的构造)需要对前置数学知识有一定程度的了解。如果没有适当的背景水平,这门课程将很难跟上。 对于这几课,我们将假设学员已经有扎实的数学基础。这个基础对于完全理解正在发生的一切、构建项目等是非常必要的。

其他的课程,我们尽量从工程的角度讲解,减少背景数学知识的需求量。

您应该熟悉的前置数学知识:

  • 初等数论和群论。 您应该可以轻松地学习麻省理工学院 6.875(密码学基础)课程的讲义中的材料
  • 基本密码原语。 您应该熟悉散列函数、加密和签名方案以及密码累加器(即 Merkle 树)的概念; 理想情况下,您有一些在实际设置中使用和操作这些原语的经验(例如,您可能已经在应用程序中实现或使用过签名验证 API)。
  • 基本代数概念。 您应该熟悉多项式的基本操作,也许需要阅读一些内容:多项式乘法和除法、拉格朗日插值、概率多项式恒等式测试、快速傅里叶变换和域扩展。

本次课程相比原版ZKIAP斯坦福的ZK课程,更加偏工程一些,有一些课会假定把ZK工具当作黑盒来使用,因此,一些工程或软件开发经验也将是有益的,因为我们将讨论现代ZK原语的实际应用。

为方便大家学习,这里整理了原版ZKIAP的视频和字幕,可供打包下载:链接 提取码暂时只向报名学员公开

精力投入

有两种级别的参与:

对于只是“随便看看”的学生

  • 如果你只是想跟着讲座一起上课,欢迎你来上课。
  • 有兴趣多动手实践但除此之外没有太多时间的学生,可能也有兴趣完成一些思考题,并在答疑期间进行讨论(或在 Github Discussion 等进行讨论)。

对于有兴趣认真深入ZK的同学

  • 强烈建议有兴趣获得实践经验的学生参加课程的小组项目部分。
  • 我们还强烈建议您参加大部分的答疑时间。答疑时间是提问和开展项目的好时机。我们还可能在答疑时间讨论一些额外的 ZK 主题(有些是即兴的,有些是准备好的)。

工作人员

  • 👨‍🏫 讲师:
    • Icer:梁爽,上海交通大学计算机在读博士(目前休学创业中),研究方向为基于零知识证明的数据库管理系统。Icer是Chia链上知名钱包Pawket的架构师,同时也是多个区块链项目的联合创始人。
  • 👨‍🎓 助教:
    • Jet:同济计算机学士
    • William:美国东北大学计算机硕士