Cairo: Bahasa Pemrograman Turing-Complete Ramah STARK untuk StarkNet

Penulis Goldberg, Lior; Papini, Shahar; Riabzev, Michael
Tahun 2021
Proyek StarkWare
Lisensi Apache 2.0
Sumber Resmi eprint.iacr.org/2021/1063.pdf
Disclaimer: Halaman ini merupakan ringkasan dan analisis edukatif dari whitepaper atau makalah teknis resmi. Konten ini disajikan untuk tujuan pendidikan semata dan bukan merupakan saran investasi atau keuangan. Selalu baca dokumen asli dan lakukan riset mandiri sebelum mengambil keputusan keuangan apa pun.

“Cairo — a Turing-complete STARK-friendly CPU architecture” (2021, IACR ePrint) oleh Lior Goldberg, Shahar Papini, dan Michael Riabzev dari StarkWare mendeskripsikan bahasa pemrograman dan arsitektur CPU yang dirancang untuk mengekspresikan komputasi arbitrer yang dapat dibuktikan secara efisien menggunakan STARK (Scalable Transparent Arguments of Knowledge). Sebelum Cairo, STARK proof terbatas pada komputasi yang ditentukan sebelumnya. Cairo membuat komputasi arbitrer dapat dibuktikan.

Publikasi dan Konteks

STARK (diperkenalkan oleh Ben-Sasson et al., 2018) adalah sistem bukti ZK yang tidak memerlukan trusted setup dan aman pasca-kuantum. Namun, STARK awal hanya bisa membuktikan satu komputasi spesifik (misalnya, fungsi hash tertentu atau skema tanda tangan tertentu). Untuk setiap aplikasi baru, perlu menulis “sirkuit” baru dari nol. Cairo memecahkan ini dengan mendefinisikan CPU yang dapat dibuktikan — setiap program yang berjalan di CPU ini menghasilkan jejak eksekusi yang dapat dibuktikan oleh STARK.

Arsitektur CPU Cairo

Cairo mendefinisikan arsitektur CPU minimalis:

  • Instruction set: Hanya beberapa instruksi (penjumlahan, perkalian atas prime field, pembacaan/penulisan memori, lompat)
  • Model memori: Non-deterministik, write-once (alamat hanya dapat ditulis sekali tetapi dibaca berkali-kali)
  • Program counter dan stack: Eksekusi bergaya CPU standar

Wawasan kunci: Setiap program yang berjalan di CPU ini menghasilkan execution trace. STARK dapat membuktikan bahwa trace eksekusi yang diberikan sesuai dengan eksekusi program yang valid — tanpa mengungkapkan trace itu sendiri.

Sierra: Representasi Menengah yang Aman

Cairo 1.0 (2023) memperkenalkan Sierra (Safe Intermediate Representation) — bahasa menengah antara kode sumber Cairo 1.0 (mirip Rust) dan Cairo assembly (CASM). Sierra menjamin:

  • Provability: Semua program Sierra dapat dibuktikan (tidak ada revert di tengah trace)
  • Safety: Sierra mencegah kelas bug tertentu (perilaku tak terdefinisi)
  • Gas metering: Memungkinkan pengisian biaya bahkan untuk transaksi yang gagal — esensial untuk model sequencer terdesentralisasi Starknet

Dampak pada Desain zkVM

Cairo memelopori pola desain “algebraic CPU” — kemudian digunakan oleh RISC Zero (berbasis RISC-V), SP1 (Succinct), dan zkVM lainnya. Kontribusi kunci Cairo: alih-alih membangun bahasa native ZK, definisikan CPU generik dan buktikan eksekusi CPU tersebut — menjadikan ZK proof dapat diakses oleh developer tujuan umum.

Aplikasi

  • StarkEx: Mesin exchange (dYdX v3, Immutable X, Sorare) menggunakan sirkuit Cairo
  • Starknet: Smart contract di Starknet ditulis dalam Cairo; setiap transaksi menghasilkan STARK proof
  • Herodotus: ZK storage proof lintas-chain menggunakan Cairo

Istilah Terkait

Referensi