Skip to main content

Sesi 9: Zero-Knowledge Proofs (ZKP) & Implementasi Praktis

๐Ÿ“Œ Catatan Penting: Sesi ini memperkenalkan teknologi kriptografi canggih yang memungkinkan verifikasi tanpa mengungkapkan data. Kita akan mempelajari konsep ZKP dari dasar, memahami perbedaan zk-SNARK dan zk-STARK, dan mempersiapkan environment untuk implementasi praktis menggunakan Circom.

๐Ÿ“‹ Informasi Sesiโ€‹

Tanggal: Sabtu, TBD
Waktu: 09:00 - 17:00 WIB (8 jam)
Lokasi: TBD
Format: Workshop tatap muka (offline)
Peserta: 40-80 pengembang
Level: Menengah - Lanjut Kriptografi & Privacy


๐ŸŽฏ Tujuan Pembelajaranโ€‹

Setelah menyelesaikan sesi ini, Anda akan mampu:

  1. Memahami Zero-Knowledge Proofs - Konsep dasar, sejarah, dan mengapa ZKP penting untuk Web3
  2. Membedakan zk-SNARK vs zk-STARK - Kelebihan, kekurangan, dan use case masing-masing
  3. Memahami Sifat Fundamental ZKP - Completeness, Soundness, dan Zero-Knowledge property
  4. Mengenal Implementasi ZKP - PLONK, Bulletproofs, dan teknologi terkait
  5. Menyiapkan Environment Circom - Setup development environment untuk zk-SNARK
  6. Memahami Use Cases ZKP - Private transactions, verifiable computations, Layer 2 scaling, identity

๐Ÿ“… Jadwal Workshopโ€‹

WaktuDurasiAktivitasFormat
08:30 - 09:0030mRegistrasi & Persiapan EnvironmentPersiapan
09:00 - 09:3030mPengantar: Mengapa Privacy Penting di Blockchain?Pembukaan
09:30 - 10:4575mModul 1: Pengenalan Zero-Knowledge ProofsTeori + Demo
10:45 - 11:0015mIstirahatIstirahat
11:00 - 12:3090mModul 2: Perbandingan zk-SNARK vs zk-STARKTeori + Diskusi
12:30 - 13:3060mIstirahat Makan SiangMakan Siang
13:30 - 15:0090mModul 3: Use Cases & Implementasi ZKP di IndustriTeori + Case Study
15:00 - 15:1515mIstirahatIstirahat
15:15 - 16:4590mModul 4: Setup Circom & Persiapan PraktikSetup + Preview
16:45 - 17:0015mQ&A & PenutupanPenutupan

๐Ÿš€ Prasyaratโ€‹

Yang Harus Sudah Dipahami:โ€‹

โœ… Fundamental Blockchain:

  • Konsep dasar blockchain & smart contracts
  • Public key cryptography
  • Hash functions
  • Pemahaman dasar tentang transparansi blockchain

โœ… Matematika Dasar:

  • Konsep dasar aljabar (tidak perlu advanced)
  • Pemahaman tentang fungsi & operasi matematika
  • Konsep probabilitas dasar

โœ… Programming:

  • Dasar JavaScript/TypeScript (untuk praktik nanti)
  • Command line basics
  • Git version control

Tools yang Dibutuhkan:โ€‹

โœ… Environment Pengembangan:

  • Node.js v18 atau lebih baru
  • npm atau yarn
  • VS Code atau code editor pilihan
  • Git untuk version control

โœ… Tools ZKP (untuk praktik nanti):

  • Circom - Domain-specific language untuk zk-SNARK circuits
  • snarkjs - JavaScript library untuk generate & verify proofs
  • Rust (optional) - Untuk performa tinggi

๐Ÿ“š Struktur Dokumentasiโ€‹

Dokumentasi ini dibagi menjadi 4 bagian yang fokus pada pemahaman mendalam Zero-Knowledge Proofs:

๐Ÿ“– Bagian 1: Pengenalan Zero-Knowledge Proofsโ€‹

Modul 1 (09:30 - 10:45)

  • Apa itu Zero-Knowledge Proof?
  • Sejarah & perkembangan ZKP
  • Tiga sifat fundamental: Completeness, Soundness, Zero-Knowledge
  • Analogi dunia nyata: "Cave Example"
  • Interactive vs Non-Interactive Proofs
  • Mengapa ZKP penting untuk blockchain?

๐Ÿ“– Bagian 2: Perbandingan zk-SNARK vs zk-STARKโ€‹

Modul 2 (11:00 - 12:30)

  • Apa itu zk-SNARK?
  • Apa itu zk-STARK?
  • Perbandingan mendalam: Proof size, verification time, trusted setup
  • Trade-offs: Security vs Efficiency
  • Quantum resistance
  • Use cases masing-masing teknologi
  • Proyek yang menggunakan SNARK vs STARK

๐Ÿ“– Bagian 3: Use Cases & Implementasi ZKPโ€‹

Modul 3 (13:30 - 15:00)

  • Private Transactions (Zcash, Tornado Cash)
  • Verifiable Computations (oracle networks)
  • Layer 2 Scaling (zk-Rollups, Validiums)
  • Decentralized Identity & Authentication
  • DECO: Privacy-preserving oracle dari Chainlink
  • Case study: Uniswap, StarkNet, zkSync

๐Ÿ“– Bagian 4: Setup Circom & Persiapan Praktikโ€‹

Modul 4 (15:15 - 16:45)

  • Pengenalan Circom
  • Instalasi Circom & snarkjs
  • Struktur project Circom
  • Membuat circuit pertama (Hello World)
  • Generate & verify proof
  • Persiapan untuk praktik lanjutan

๐Ÿ“– Praktik - Age Verificationโ€‹

Praktik Lengkap (Sesi Lanjutan)

  • Setup project Age Verification
  • Membuat circuit Circom untuk age verification
  • Implementasi KTP data processing
  • Trusted setup ceremony
  • Smart contract verifier
  • Frontend integration
  • Testing & deployment

๐ŸŽฏ Apa Itu Zero-Knowledge Proof?โ€‹

Ringkasan Singkatโ€‹

  • Apa: ZKP = bukti kriptografi untuk membuktikan suatu klaim tanpa membuka data rahasia.
  • Kenapa penting: Memberi privacy + verifiability sekaligus; ideal untuk data sensitif, kepatuhan regulasi, dan skalabilitas (zk-rollups).
  • Analogi: Lihat cerita โ€œCave Exampleโ€ lengkap di Bagian 1 beserta penjelasan completeness, soundness, dan zero-knowledge.
  • Dampak praktis: Memungkinkan transaksi privat (contoh: Zcash), login/age verification tanpa membocorkan identitas, dan verifiable compute untuk oracles.

๐Ÿ’ก Zero-Knowledge vs Zero-Trustโ€‹

Penting untuk dibedakan:

Zero-Knowledge:

  • Metode kriptografi spesifik (Zero-Knowledge Proofs)
  • Membuktikan pengetahuan tanpa mengungkapkan data
  • Fokus pada privacy

Zero-Trust:

  • Model keamanan cybersecurity umum
  • Asumsi: setiap user/device adalah potensi ancaman
  • Membutuhkan autentikasi & autorisasi berkelanjutan
  • Fokus pada access control

Catatan: ZKP bisa digunakan sebagai bagian dari zero-trust framework, misalnya untuk zero-knowledge authentication.


๐Ÿ› ๏ธ Tech Stackโ€‹

Teori & Konsep:โ€‹

  • Zero-Knowledge Proofs - Konsep fundamental
  • zk-SNARKs - Succinct Non-interactive Arguments of Knowledge
  • zk-STARKs - Scalable Transparent Arguments of Knowledge
  • PLONK - Universal trusted setup
  • Bulletproofs - Short non-interactive proofs

Tools Praktik (untuk sesi lanjutan):โ€‹

  • Circom - Domain-specific language untuk circuits
  • snarkjs - JavaScript library untuk proofs
  • Node.js - Runtime environment
  • TypeScript - Type safety

Blockchain:โ€‹

  • Lisk Sepolia Testnet - Environment testing
  • Ethereum Mainnet - Referensi untuk production use cases

๐Ÿ“– Cara Menggunakan Dokumentasiโ€‹

Alur Pembelajaran (Perjalanan Linear ZKP):โ€‹

Bagian 1: Pahami Dasar โ†’ Pelajari konsep fundamental ZKP

Bagian 2: Bandingkan Teknologi โ†’ Pahami perbedaan SNARK vs STARK

Bagian 3: Eksplor Use Cases โ†’ Lihat implementasi nyata di industri

Bagian 4: Setup Tools โ†’ Persiapkan environment untuk praktik

Tips Belajar:โ€‹

  • โœ… Ikuti urutan Bagian 1 โ†’ 2 โ†’ 3 โ†’ 4 - Konsep dibangun secara bertahap
  • โœ… Pahami analogi - ZKP adalah konsep abstrak, analogi membantu pemahaman
  • โœ… Jangan terburu-buru - Konsep kriptografi membutuhkan waktu untuk dipahami
  • โœ… Tanyakan pertanyaan - Instruktur siap membantu menjelaskan konsep yang sulit
  • โœ… Eksplor use cases - Lihat bagaimana ZKP digunakan di proyek nyata

Troubleshooting:โ€‹

  • Konsep terlalu abstrak? Fokus pada analogi dan contoh praktis
  • Bingung dengan matematika? Tidak perlu memahami detail matematika, fokus pada konsep
  • Ingin praktik langsung? Tunggu sesi praktik yang akan dibahas kemudian

๐ŸŽฎ Proyek Yang Akan Dibahasโ€‹

Ringkasan use case (detail di Bagian 3):

  • Private transactions: Zcash, Tornado Cash.
  • Layer 2 scaling: zkSync, StarkNet, Polygon zkEVM.
  • Verifiable computation & oracles: Chainlink DECO, VRF.
  • Identity & authentication: DID, proof of citizenship, age verification.

๐ŸŽฏ Hasil Pembelajaranโ€‹

Setelah selesai workshop ini, Anda akan:

โœ… Memahami:

  • Konsep fundamental Zero-Knowledge Proofs
  • Perbedaan zk-SNARK dan zk-STARK
  • Trade-offs antara berbagai implementasi ZKP
  • Use cases ZKP di blockchain & Web3
  • Arsitektur sistem ZKP

โœ… Bisa Menjelaskan:

  • Mengapa ZKP penting untuk privacy
  • Bagaimana ZKP meningkatkan scalability
  • Kapan menggunakan SNARK vs STARK
  • Implementasi ZKP di proyek nyata

โœ… Siap Untuk:

  • Memahami dokumentasi proyek ZKP (zkSync, StarkNet, dll)
  • Membaca whitepaper ZKP
  • Memulai praktik dengan Circom (sesi lanjutan)
  • Berdiskusi tentang privacy & scalability di Web3

๐Ÿ“ Catatan Pentingโ€‹

Referensi Utama:โ€‹

Chainlink Education:

Paper Fundamental:

  • "The Knowledge Complexity of Interactive Proof-Systems" (1985) - Goldwasser & Micali
  • "zk-SNARKs" (2012) - Bitansky, Canetti, Chiesa, Tromer
  • "zk-STARKs" (2018) - Ben-Sasson, Bentov, Horesh, Riabzev

Kebutuhan Sistem:โ€‹

Minimum:

  • Node.js v18.0 atau lebih baru
  • 4 GB RAM
  • 2 GB ruang disk kosong
  • Koneksi internet (untuk download dependencies)

Rekomendasi:

  • Node.js v20+
  • 8 GB RAM
  • 5 GB ruang disk
  • Internet stabil

Persiapan Sebelum Workshop:โ€‹

1 Hari Sebelum:

  • Install Node.js v18+ (verifikasi: node --version)
  • Install npm atau yarn
  • Download VS Code (optional tapi recommended)
  • Baca artikel Chainlink tentang ZKP (opsional)

Pagi Hari Workshop:

  • Charge laptop full battery
  • Bawa charger (venue ada power outlet)
  • Bawa notebook untuk catatan
  • Siapkan pertanyaan tentang ZKP

๐Ÿš€ Ready to Start?โ€‹

Mari mulai perjalanan memahami teknologi kriptografi yang mengubah cara Anda berpikir tentang privacy dan verifikasi di blockchain!

Struktur workshop:

  1. ๐Ÿ” Pahami ZKP - Konsep fundamental & sejarah
  2. โš–๏ธ Bandingkan Teknologi - SNARK vs STARK
  3. ๐ŸŒ Eksplor Use Cases - Implementasi nyata di industri
  4. ๐Ÿ› ๏ธ Setup Tools - Persiapkan environment untuk praktik
  5. ๐ŸŽฏ Praktik Age Verification - Implementasi lengkap dengan Circom

๐Ÿ“– Bagian 1: Pengenalan Zero-Knowledge Proofs โ†’

Setelah selesai teori, lanjut ke: ๐Ÿ“– Praktik: Age Verification โ†’


๐Ÿ“ž Support & Resourcesโ€‹

Jika mengalami masalah:

Learning Resources:


Let's dive into the world of Zero-Knowledge Proofs! ๐Ÿ”

#BuildOnLisk | #EthereumJakarta | #Web3Indonesia | #ZeroKnowledge