Cleopatra Cairo VM
Cleaopatra is a Rust implementation of the Cairo VM.
Cairo
-
From Cairo Documentation: How Cairo Works
-
Cairo Verifier in Rust
Flow Diagram
We've created a diagram that illustrates function calls and where each of them are defined for a simple cairo program execution.
This diagram was produced using this mermaid code.
Original Cairo VM Internals
We wrote a document explaining how the Cairo VM works. It can be found here.
Compilers and interpreters
These is a list of recommended books to learn how to implement a compiler or an interpreter.
- How I wrote my own "proper" programming language - Mukul Rathi
- Introduction to Compilers and Language Design - Douglas Thain
- Beautiful Racket - Matthew Flatt
- Crafting interpreters - Robert Nystrom
- Engineering a Compiler - Keith D. Cooper, Linda Torczon
Zero Knowledge Proofs
Basics
- Intro to zero knowledge proofs
- Security and Privacy for Crypto with Zero-Knowledge Proofs
- A Hands-On Tutorial for Zero-Knowledge Proofs Series
ZK SNARKs
- What are zk-SNARKs?
- Vitalik's introduction to how zk-SNARKs are possible
- Vitalik's post on quadratic arithmetic programs
- Comparing General Purpose zk-SNARKs
- Dark forest's intro + circuits PART 1
- Dark forest's intro + circuits PART 2
ZK STARKs
- Cryptography Stack Exchange Answer
- Hasu gets STARK-pilled - with Eli Ben-Sasson
- STARKs, Part I: Proofs with Polynomials
- STARKs, Part II: Thank Goodness It's FRI-day
- STARKs, Part 3: Into the Weeds
- StarkDEX Deep Dive: the STARK Core Engine
- STARK Math Series
- Using SHARP (Shared Prover)
- Cairo for Blockchain Developers