工作坊简介
本次课程将以原创课程为主,面向具备一定编程经验的工程人员推出的,结合必要数学理论,并重点强调工程实践。 每周六上两堂课,包含理论和实践两个方面内容,两堂课后会有实践环节,学员可以在每次课程中体验一种零知识证明的系统或实现。
本课程内容结合过去上课的经验,以及课程学员的反馈,重新调整内容,更加接近工程实践,并辅以必要的数学理论知识讲解,以高中数学知识为起点进行讲解。
学习方法
对于零知识证明的初学者来说,如何有效地学习是一个重要的问题。这里,我有一些建议可以分享给大家:
- 用一个新灵魂去掌握一门新语言。零知识证明是关于多项式的语言,而算术电路是多项式的形象化表达。作为一名零知识证明电路工程师,我们需要始终记住,正在编写的是多项式。
- 循序渐进地学习。回想一下学习编程的过程,你肯定是从基本的指令开始,然后逐步深入到操作系统的调度、死锁、虚拟存储等复杂概念,再到计算机组成原理的指令集、CPU、IO等概念。类似地,对于零知识证明电路工程师来说,也应该从DSL(例如CIRCOM、Plonk Script之类)开始,这是每个初学者必须掌握的第一步。
- 实践是最好的老师。理论学习是必要的,但真正的理解往往来自于实践。尝试去编写一些简单的算术电路,然后逐步增加复杂性。
课程安排
地点:上海市杨浦区国康路100号上海国际设计中心22楼多功能厅
时间:一般时间为每周六(具体见课程表),两节课连上(中间有短暂休息时间),下午 14:00~17:30 上课,课间课后答疑。
线上答疑: Github Discussion
视频回放免责声明:部分课堂活动将进行录制。这些回放可能会在其他课程中重复使用,供其他学生查看,或用于其他教育和研究目的。 如果您有任何疑问,请联系教学团队的成员。
前置数学知识
本课程假定听众拥有完整的高中数学知识,并以此为起点,进行讲解,例如群环域等抽象代数内容,密码学基础知识之类的设有专门的一节课进行讲解。
但是,课程时间有限,虽然课程对这些内容有所涉及,但为了课程流程,内容适度精简,建议大家理解了整体脉络后,自己在课余完整的学习相关数学知识。
工作人员
- 👨🏫 讲师:
- Icer:梁爽,上海交通大学计算机在读博士(休学中),研究方向为基于零知识证明的数据库管理系统。Icer 是 Chia 链上知名钱包 Pawket 的架构师,同时也是多个区块链项目的联合创始人,目前正在维护 plonk.pro,设计一种兼顾执行效率和开发效率的 ZKP 新语言 Plonk Script。