⚠️ Important: If you're looking for the foundry-full-course or moccasin-full-course you can find them here:Foundry/Solidity: https://github.com/Cyfrin/foundry-full-course-cu
Moccasin/Vyper: https://github.com/Cyfrin/moccasin-full-course-cu
An introduction to building circuits using Noir and using them to build on-chain privacy projects.
Welcome to the repository for the Noir Programming and ZK Circuits Course
This repository houses course resources and discussions for the course.
Please refer to this for an in-depth explanation of the content:
- Website - Join Cyfrin Updraft and enjoy 50+ hours of smart contract development courses
- Twitter - Stay updated with the latest course releases
- LinkedIn - Add Updraft to your learning experiences
- Discord - Join a community of 3000+ developers and auditors
- Newsletter - Weekly security research tips and resources to level up your career
- Codehawks - Smart contracts auditing competitions to help secure web3
- Noir developer discord
Cyfrin Updraft Courses:
⚠️ All code associated with this course is for demo purposes only. They have not been audited and should not be considered production ready. Please use at your own risk.
The following content is provided strictly for educational purposes. This course demonstrates how privacy-preserving smart contracts like mixers work under the hood using zero-knowledge proofs. It is not intended to promote or encourage the use of privacy tools for illicit activity. We do not condone the violation of any laws or regulations. Please ensure you comply with your local laws when building or deploying smart contracts.
By continuing with this course, you acknowledge that the code and concepts shared are for learning only, and you accept full responsibility for how you use them.
- AI Frens
- ChatGPT
- Just know that it will often get things wrong, but it's very fast!
- Phind
- Like ChatGPT, but it searches the web
- Bard
- Other AI extensions
- ChatGPT
- Github Discussions
- Ask questions and chat about the course here!
- Stack Exchange Ethereum
- Great place for asking technical questions about Ethereum
- Awesome Noir
- A curated list of resources for learning and programming in Noir.
- Peeranha
- Decentralized Stack Exchange!
⌨️ Introduction and Prerequisites
💻 Code: https://github.com/Cyfrin/zk-ecrecover-cu
⌨️ Nargo and Barretenberg Installation
⌨️ Noir Project Types and Layout
⌨️ Creating and Verifying a Proof Off-chain
⌨️ Writing a Signature Verification Circuit
⌨️ Creating the Noir ECDSA Inputs
⌨️ ECDSA Proof and Verifier Contract
💻 Code: https://github.com/Cyfrin/zk-panagram-cu
⌨️ Panagram Project Walkthrough
⌨️ Creating the Panagram Circuit
⌨️ Setting the Verifier Contract
⌨️ Writing the Panagram Contract Functions
⌨️ Compiling the Panagram Contract
⌨️ Running Scripts in Forge Tests
⌨️ Setting up the Generate Proof Script
💻 Code: https://github.com/Cyfrin/zk-mixer-cu
- Porter's live stream on Tornado Cash
- Rare skills article
- Artem Chystiakov's article
- Smart Contract Programmer's video
- https://www.researchgate.net/figure/Example-of-the-Tornado-Cash-1-ETH-pool-addresses-A-through-F-deposit-to-and-withdraw_fig1_357925591
- Krishang's Tornado Cash Rebuilt Repo
- The Tornado Cash codebase
⌨️ Creating the Mixer Contract
⌨️ Creating the Proof Helper Function
## Unused Circuit Inputs
The following resources were consulted in creating this course:
- Noir Documentation
- Porter's live stream on Tornado Cash
- Rare skills article
- Artem Chystiakov's article
- Smart Contract Programmer's video
- https://www.researchgate.net/figure/Example-of-the-Tornado-Cash-1-ETH-pool-addresses-A-through-F-deposit-to-and-withdraw_fig1_357925591
- Krishang's Tornado Cash Rebuilt Repo
- The Tornado Cash codebase
- Cat Mcgee's Private Peace Hackathon Project
Transparency is important! So we want to disclose any potential conflicts that might have affected my judgement so you can pick tools that are right for you. Patrick is co-founder of Alpha Chain, a blockchain infrastructure company. Alpha Chain runs Chainlink, Ethereum, Binance, Polygon, Harmony, Solana, Moonbeam, and Moonriver blockchain services. Alpha Chain often works with Alchemy and receives discounted services. Patrick is the co-founder of Cyfrin, and they do smart contract security & auditing services. Patrick is also the co-founder of Chain Accel, who is an advisor on the Peeranha project.
Because of all this, I have added alternatives to each section where we suggest a tool.
A huge thank you to our sponsors. These are the groups and technologies
Thanks to everyone who is taking, participating in, and working on this course. It's been a passion project and a data dump of everything I've learnt in the web3 space to get you up to speed quickly. Also, a big thank you to Cyfrin & Chain Accel for encouraging this course to come to light, and many, many, many people from the community.
And thanks to the Cyfrin team for making this possible!
Cyfrin Updraft content is open-sourced licensed as GPLv3.
(back to top) ⬆️