ethereum / ethereum/zket-core-program

2024 Curriculum Overhaul (WIP)

Open
#24 3 comments 1 reaction 0 assignees View on GitHub
Dominant language
No language data
Stars
187
Forks
73
PR merge metrics
No merged PRs in 30d

Description

# Summary

PSE EcoDev had a mini off-site session in February 2024 to work on overhauling the curriculum structure for 2024. The main changes are:

1. Move easy sections to a "pre-requisite" module before program start.
2. The "Practical Track" and "Study Track" will happen in parallel to encourage coding from the start.
3. Certain concepts are "black-boxed" and links are placed in an optional section.
4. Mini-hackathon will be placed in the middle of the program.

# New Structure

## 0️⃣ Week 0 - Pre-requisite Module

### Course Info
- [x] About This Course
- [x] Open-Source Culture, Git, and Github
- [x] How to ask questions, where to find help
- [x] How to submit your assignments (PR workflow)
- [x] Course FAQ

### Knowledge
- [x] A Primer for ZKPs
- [x] Thought Experiments
- [x] Use-Cases and Applications
- [x] Supplemental materials on ZKPs [optional]
- [x] Number Theory

## 1️⃣ Week 1 - Cryptographic Basics

### Practical

- [x] Getting Started with Circom (syntax + zkrepl)
- [x] Write a circuit to prove input to hash
- [x] Write a circuit to prove private key to public key
- [x] Write a circuit to prove inclusion in Merkle tree
- [x] Write a circuit to prove set membership

### Study

- [x] Symmetric vs Asymmetric Encryption (AES, RSA)
- [x] Hash Functions, Merkle Trees
- [x] Digital Signatures (Schnorr)
- [x] DLP-based Public-Key Cryptography (DLP, DH, Elgamal)
- [x] Cryptographic Commitments
- [x] Intro to Elliptic Curve Cryptography
- [x] BLS Signatures (keep this simple and black-boxed)
- [x] Pairing-Based Cryptography (keep this simple and black-boxed)

## 2️⃣ Week 2 - More Crypto and zkSNARKs

### Practical

- [x] Circom Crash Course (build from command line; ZKU course)
- [x] Write a circuit for a token mixer

### Study

- [x] KZG Polynomial Commitments (keep this simple and black-boxed)
- [x] Trusted Setups (keep this simple and black-boxed; reference Inevitable Ethereum)
- [x] SNARKs and STARKs
- [x] SNARKs
- [x] From Computation to ZKPs (use only Vitalik's blog post; arithmetic circuits, R1CS, QAP)
- [x] Groth16 (keep this simple and black-boxed)
- [x] STARKs (follow Vitalik's blog posts)

## 3️⃣ Week 3 - Hackathon Week

- [x] #32

## 4️⃣ Week 4 - PLONK Week

### Practical

- [x] #30
- [x] [Rustlings](https://rustlings.cool/)

### Study

- [ ] PLONK (follow Vitalik's blogpost)
- [ ] Publish a blogpost on PLONK and present at the end of week

## 5️⃣ Week 5 - The Frontier (Technologies and Applications)

### Practical

- [ ] Halo2 (do 0xParc course: Intro to Circuit Ex. Part 1, 6 hrs)
- [ ] Halo2 Step by Step

### Study

- [ ] FHE
- [ ] MPC
- [ ] Semaphore, Bandada
- [ ] TLSNotary
- [ ] ZKEmail

## Weeks 6 to 8

These remaining 3 weeks will be purely about contributing to Good First Issues.

# Reference Pictures from Off-Site

## Practical Track
![2024-02-07 15 24 33](https://github.com/privacy-scaling-explorations/contribution-program/assets/943555/bf9b4aa2-48b4-47e4-80ef-d28517687200)

## Study Track
![2024-02-07 15 24 47](https://github.com/privacy-scaling-explorations/contribution-program/assets/943555/8d6a9a0f-852c-48b6-87e4-5796b70e0e67)

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue contains the proposed 2024 curriculum structure and references issues #30 and #32, Rustlings, Circom, and Halo2, but names no repository files or tests. Start by reviewing the curriculum content and the referenced issues, then identify which unchecked topics remain. Done means the curriculum reflects the intended week-by-week structure and the remaining work is accurately tracked.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
content, documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.