# STARK Week **Goal:** be able to explain, build, and build on top of STARKs. **Method:** each section (reading/watching/doing) is ordered, but mix & match between sections to optimize for focus, repetition, and direct practice. Thanks to [Miden](https://github.com/maticnetwork/miden), [Winterfell](https://github.com/novifinancial/winterfell) and [ZK Hack](https://zkhack.dev) discord for excellent resource curation. ## Reading ### By StarkWare: * [STARK 101 Mathematical Primer (wayback machine)](https://web.archive.org/web/20210301035947/https://starkware.co/developers-community/stark101-onlinecourse/stark-101-mathematical-primer/) * [STARK Math: The Journey Begins](https://medium.com/starkware/stark-math-the-journey-begins-51bd2b063c71) * [Arithmetization I](https://medium.com/starkware/arithmetization-i-15c046390862) * [Arithmetization II](https://medium.com/starkware/arithmetization-ii-403c3b3f4355) * [Low Degree Testing](https://medium.com/starkware/low-degree-testing-f7614f5172db) * [A Framework for Efficient STARKs](https://medium.com/starkware/a-framework-for-efficient-starks-19608ba06fbe) * [StarkDEX Deep Dive - The STARK Core Engine](https://medium.com/starkware/starkdex-deep-dive-the-stark-core-engine-497942d0f0ab) ### By Vitalik: * [STARKs Part I: Proofs with Polynomials](https://vitalik.ca/general/2017/11/09/starks_part_1.html) * [STARKs Part II: Thank Goodness It's FRI-day](https://vitalik.ca/general/2017/11/22/starks_part_2.html) * [STARKs Part III: Into the Weeds](https://vitalik.ca/general/2018/07/21/starks_part_3.html) ### The STARK Paper https://eprint.iacr.org/2018/046 ## Watching * [State of STARK by Eli Ben-Sasson](https://www.youtube.com/watch?v=JecQh9wGFU8) * [slides](https://drive.google.com/file/d/1Osa0MXu-04dfwn1YOSgN6CXOgWnsp-Tu/view) * [STARK@Home](https://www.youtube.com/playlist?list=PLcIyXLwiPilUFGw7r2uyWerOkbx4GFMXq) ## Doing * Build a STARK (tutorials) * STARK 101 * Winterfell Examples * STARK Anatomy * Write an explanation of STARKs to check for gaps in understanding. Fill gaps. Rinse & repeat. * Build something on [StarkNet](https://starknet.io/) * https://starknet.io/docs/hello_starknet/index.html ### Tutorial 1: STARK 101 https://github.com/starkware-industries/stark101 Their course page on their site no longer works, so video & github links for each lesson are below. 1. Go through the original lessons to build the STARK proof for Fibonacci Square 2. Choose a different statement to prove and create a proof for it directly in Python (instead of notebook) * **Lesson 1 | Part I: Statement, LDE & Commitment** * Video: [https://www.youtube.com/watch?v=Y0uJz9VL3Fo](https://www.youtube.com/watch?v=Y0uJz9VL3Fo) * Github: [https://github.com/starkware-industries/stark101/blob/master/tutorial/Stark101-part1.ipynb](https://github.com/starkware-industries/stark101/blob/master/tutorial/Stark101-part1.ipynb) * **Lesson 2 | Part II: Polynomial Constraints** * Video: [https://www.youtube.com/watch?v=Y0uJz9VL3Fo](https://www.youtube.com/watch?v=fg3mFPXEYQY) * Github: [https://github.com/starkware-industries/stark101/blob/master/tutorial/Stark101-part2.ipynb](https://github.com/starkware-industries/stark101/blob/master/tutorial/Stark101-part2.ipynb) * **Lesson 3 | Part III: FRI Commitment** * Video: [https://www.youtube.com/watch?v=gd1NbKUOJwA](https://www.youtube.com/watch?v=gd1NbKUOJwA) * Github: [https://github.com/starkware-industries/stark101/blob/master/tutorial/Stark101-part3.ipynb](https://github.com/starkware-industries/stark101/blob/master/tutorial/Stark101-part3.ipynb) * **Lesson 4 | Part IV: The Proof** * Video: [https://www.youtube.com/watch?v=CxP28qM4tAc](https://www.youtube.com/watch?v=CxP28qM4tAc) * Github: [https://github.com/starkware-industries/stark101/blob/master/tutorial/Stark101-part4.ipynb](https://github.com/starkware-industries/stark101/blob/master/tutorial/Stark101-part4.ipynb) * **Lesson 5 | STARK 101 – Finale** * Video: [https://www.youtube.com/watch?v=iuNbrTkH2ik](https://www.youtube.com/watch?v=iuNbrTkH2ik) ### Tutorial 2: Build a STARK prover + verifier with Winterfell Work through the trivial example in the Winterfell docs, then do it again with a different computation. https://docs.rs/winterfell/latest/winterfell/ ### Tutorial 3: STARK Anatomy *Don't just read through the text and examples. Take notes & code it up fully yourself.* https://aszepieniec.github.io/stark-anatomy/