Skip to content

Resources for building programs on Aleo from ZKCamp's Course (Oct 2023)

Notifications You must be signed in to change notification settings

ZKCamp/aleo-course

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

ZKCamp's Aleo Course

About Aleo

Aleo is a Layer-1 blockchain that supports privacy-preserving applications using zero-knowledge technology. Leo, Aleo's zero-knowledge programming language, makes writing private-by-default applications easy by compiling circuits down to low-level Aleo instructions. It provides powerful, blockchain-native syntax and robust error-handling, giving developers the perfect combination of performance, reliability, and security.

About ZKCamp

ZKCamp is a ZK education company. ZKCamp's primary offering is a live cohort-based course that teaches ZKPs and their underlying mathematical and cryptographic principles using hands-on examples and engaging assessments. The course is tailored for engineers who do not have a math or cryptography background but are eager to learn it. Through a structured curriculum and live sessions with instructors, participants will have the opportunity to learn and engage with the material in a collaborative environment. Upon completion of the course, participants will have the knowledge and skills necessary to build decentralized applications based on ZKPs.

What is this course about?

Zero-knowledge cryptography has seen rapid progress in recent years and is used today for both scalability and privacy purposes in blockchains.

Aleo is leveraging the zero knolwedge cryptography to build a privacy-first blockchain that is also programmble. This makes it significantly easier for developers to build and deploy private and decentralized blockchains. Most ZK frameworks require advanced cryptography expertise, but Aleo with the Leo language and Aleo instructions abstracts away much of the complexity to open up zkApp development to the broader pool of web 3.0 developers.

The shift from traditional development to building ZKP applications on Aleo introduces a new set of concepts and tools that may seem overwhelming at first. Aleo collaborated with ZKCamp.xyz to launch the first live cohort to teach building on the Aleo platform to a set of 20 developers durind Oct 08-28, 2023.

The course, led by the instructors at ZKCamp and sponsored by Aleo, is tailored for engineers who do not have a math or cryptography background but are eager to learn it. Through a structured curriculum and live sessions with instructors, participants had the opportunity to learn and engage with the material in a collaborative environment.

Prerequisites

  1. Read this blog to make sure you have a basic understanding of what zero-knowledge proofs are all about.

  2. Zero-knowledge proofs are based on certain mathematical primitives. Read the blogs below to get a basic understanding of the underlying mathematics

  3. Read this blog to get an introduction to Information Theory.

Lectures & course materials

Lectures are of 90 min each. Each of the items below has the lecture recording, slides, quizzes and assignments associated with the lecture

 Lecture 1 - Cohort Introduction & ZKP Fundamentals
The first lecture reviews the curriculum and covers some of the Zero-Knowledge Proofs fundamentals that will be useful for future lectures. The lecture ends with a meet and greet session amongst the ZKCampers in the cohort.
  • Recording
  • Slides
  • ZKP Fundamentals Quiz
  •  Lecture 2 - Introduction to the Aleo Ecosystem
    In this lecture, Caleb Curry, from developer relations at Aleo, provides an introduction to the Aleo ecosystem. The lecture touches upon Aleo's core features, its emphasis on privacy, and its utilization of zkSNARKs. The lecture also explores how zero-knowledge proofs are employed within Aleo by diving into the architecture of the platform.
  • Recording
  • Slides
  • Aleo Fundamentals Quiz
  •  Lecture 3 - zkSNARKs - Mathematical and Cryptography Primitives
    This and the next 2 lectures focus on zkSNARKs, the building blocks of the Aleo blockchain. In this lecture, students are introduced to the mathematical and cryptographic primitives that are essential for understanding how zkSNARKs word under the hood. The lectures starts by explanining the anatomy of a zkSNARK system and dives deeper into Polynomials and their properties that are useful in context of the zkSNARK systems. The last topic covered is Finite Field arithmetic and its usefulness in building cryptograhpic systems in general and zkSNARK systems in particular.
  • Recording
  • Slides
  • Polynomials Quiz
  • Modular Math Quiz
  • Lagrange Polynomial Assignment
  • Lagrange Polynomial Assignment Solution
  •  Lecture 4 - zkSNARKs - Arithmetization
    Arithmetization is the technique by which high level programs are converted into a system of mathematical constraints using polynomials. In this lecture, we look at various steps in Arithmetization of programs and deep dive into the R1CS Arithmetization technique used by the zkSNARK proof system used by Aleo. We conclude the lectue by taking a pen and paper example to understand Arithemtization at an implementation level.
  • Recording
  • Slides
  • Arithmetization example from lecture
  • Arithmetization Quiz
  • Arithmetization Assignment
  • Arithmetization Assignment Solution
  •  Lecture 5 - zkSNARKs - Elliptic Curves, KZG and Marlin

  • Recording
  • Slides
  • Elliptic Curves Quiz
  •  Lecture 6 - Leo Language Fundamentals

  • Recording
  • Slides
  • Store Assignment
  • Store Assignment Solution
  •  Lecture 7 - Building a ZK App on Aleo

  • Recording
  • Slides
  •  Lecture 8 - Advanced Aleo

  • Recording
  • Slides
  •  Demo Day

  • Recording

  • About

    Resources for building programs on Aleo from ZKCamp's Course (Oct 2023)

    Resources

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

    No packages published