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:
- Memahami Zero-Knowledge Proofs - Konsep dasar, sejarah, dan mengapa ZKP penting untuk Web3
- Membedakan zk-SNARK vs zk-STARK - Kelebihan, kekurangan, dan use case masing-masing
- Memahami Sifat Fundamental ZKP - Completeness, Soundness, dan Zero-Knowledge property
- Mengenal Implementasi ZKP - PLONK, Bulletproofs, dan teknologi terkait
- Menyiapkan Environment Circom - Setup development environment untuk zk-SNARK
- Memahami Use Cases ZKP - Private transactions, verifiable computations, Layer 2 scaling, identity
๐ Jadwal Workshopโ
| Waktu | Durasi | Aktivitas | Format |
|---|---|---|---|
| 08:30 - 09:00 | 30m | Registrasi & Persiapan Environment | Persiapan |
| 09:00 - 09:30 | 30m | Pengantar: Mengapa Privacy Penting di Blockchain? | Pembukaan |
| 09:30 - 10:45 | 75m | Modul 1: Pengenalan Zero-Knowledge Proofs | Teori + Demo |
| 10:45 - 11:00 | 15m | Istirahat | Istirahat |
| 11:00 - 12:30 | 90m | Modul 2: Perbandingan zk-SNARK vs zk-STARK | Teori + Diskusi |
| 12:30 - 13:30 | 60m | Istirahat Makan Siang | Makan Siang |
| 13:30 - 15:00 | 90m | Modul 3: Use Cases & Implementasi ZKP di Industri | Teori + Case Study |
| 15:00 - 15:15 | 15m | Istirahat | Istirahat |
| 15:15 - 16:45 | 90m | Modul 4: Setup Circom & Persiapan Praktik | Setup + Preview |
| 16:45 - 17:00 | 15m | Q&A & Penutupan | Penutupan |
๐ 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:
- ๐ Pahami ZKP - Konsep fundamental & sejarah
- โ๏ธ Bandingkan Teknologi - SNARK vs STARK
- ๐ Eksplor Use Cases - Implementasi nyata di industri
- ๐ ๏ธ Setup Tools - Persiapkan environment untuk praktik
- ๐ฏ 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:
- Tanya instruktur di workshop
- Check Discord group: Kelas Rutin Batch IV
- Refer to Chainlink Education Hub
- Review Circom Documentation
Learning Resources:
- Zero-Knowledge Proofs Explained
- zk-SNARKs vs zk-STARKs Comparison
- Zcash: How It Works
- StarkWare: STARK Technology
Let's dive into the world of Zero-Knowledge Proofs! ๐
#BuildOnLisk | #EthereumJakarta | #Web3Indonesia | #ZeroKnowledge