Industri blockchain dan crypto lahir dari kombinasi berbagai teknologi komputer yang sudah ada. Saat ini crypto menjadi industri bagi berbagai tim pengembang yang berusaha menciptakan inovasi-inovasi baru untuk membawa crypto kepada jutaan pengguna baru. Mulai dari implementasi NFT di dunia nyata, DeFi yang memanfaatkan aset fisik, hingga menciptakan media sosial terdesentralisasi. Dibalik upaya-upaya inovatif ini, fondasi teknologi blockchain juga terus berkembang. Teknologi zero-knowledge adalah salah satu inovasi teknologi yang kian diperbincangkan. Ia dianggap sebagai salah satu konsep teknologi paling kompleks dengan potensi yang paling besar. Lalu, apa itu zero-knowledge dan bagaimana cara kerjanya? Artikel ini akan menjelaskan ZK secara lengkap.
Ringkasan Artikel
- 🔏 Zero-knowledge adalah sebuah metode memverifikasi informasi tanpa mengungkapkan konten informasi tersebut.
- 🤝 Sistem ZK terdiri dari dua pihak yaitu seorang prover dan verifier. Prover membawa informasi sensitif dan harus meyakinkan verifier tanpa mengungkapkan informasinya dengan. Jika berhasil, sebuah zero-knowledge proof akan dihasilkan.
- ⚙️ Verifier perlu menguji kebenaran informasi dari prover. Verifier akan meminta prover melakukan serangkaian tindakan yang hanya bisa dilakukan jika prover mengetahui informasi yang tepat. Tahap ini seperti sesi tanya-jawab yang mengandalkan algoritme untuk menguji data-data yang saling berhubungan tanpa menampilkan data rahasia milik prover.
- ⚖️ Metode menghasilkan ZKP paling populer adalah zk-SNARK dan zk-STARK. Keduanya termasuk ke dalam kategori ZKP non-interaktif karena interaksi prover dan verifier minimal.
- 🧠 Metode SNARK lebih populer dibanding STARK dan sudah ada lebih dahulu. SNARK sangat ideal untuk sistem dengan komputasi sederhana dan membutuhkan biaya murah sementara STARK adalah metode baru untuk memproses data kompleks dalam jumlah banyak.
- 👩💻 Implementasi teknologi ZK paling populer saat ini adalah sebagai ZK-rollup layer 2 di Ethereum dan zkEVM. Beberapa tim yang sedang mengembangkan sistem ZK di Ethereum adalah Polygon, Scroll, zkSync, dan ConsenSys.
Apa itu Zero Knowledge?
Berbagai inovasi teknologi dalam dunia blockchain pada dasarnya mencari cara menembus batasan trilema blockchain. Trilema blockchain merupakan situasi saat tim pengembang proyek crypto harus memilih dua dari tiga aspek dan mengorbankan salah satunya dalam menciptakan blockchain. Salah satu teknologi tersebut adalah implementasi zero-knowledge (ZK) dan zero-knowledge proof (ZKP).
Baca tentang Permasalahan Trilema Blockchain di Pintu Academy.
Teknologi ZK sendiri bukanlah sesuatu yang baru. Riset tentang teknologi ZK pertama kali dipublikasikan pada 1985 oleh Shafi Goldwasser, Silvio Micali and Charles Rackoff dari MIT. Ketiga peneliti tersebut melemparkan pertanyaan yang sederhanya seperti ini: “Bagaimana aku bisa membuktikan kalau aku tahu tentang sebuah rahasia, tanpa memberi tahu rahasianya?” Ini lah kenapa ia disebut “zero knowledge”, karena pihak yang menerima dan memverifikasi informasi (verifier atau verifikator) tidak mempunyai pengetahuan apa pun dari si pemberi bukti (prover).
Jadi, zero-knowledge adalah sebuah metode memverifikasi informasi tanpa mengungkapkan konten informasi tersebut. Solusi dari ketiga peneliti adalah menciptakan sebuah kertas bukti yang menunjukkan keabsahan si pemberi bukti (prover) yang harus diterima oleh verifikator sebagai benar. Kertas bukti ini disebut zero-knowledge proof atau ZKP.
Sejak 2022, perbincangan tentang implementasi teknologi ZK semakin populer. Berbagai proyek mengumumkan pengembangan sistem ZK-nya masing-masing seperti Polygon, Consensys, Scroll, dan Matter Labs. Di bawah ini kita akan mendalami tentang roda-roda yang menggerakan sebuah sistem ZK di dalam konteks jaringan crypto.
Bagaimana Cara Kerja Zero-Knowledge?
Pada dasarnya sebuah sistem zero-knowledge terdiri dari dua pihak yang berinteraksi yaitu prover dan verifier. Prover adalah pihak yang membawa informasi dan verifier bertugas memvalidasi klaim kebenaran informasi dari prover. Tujuan dari interaksi ini adalah prover harus membuktikan kepada verifier bahwa informasi yang ia bawa adalah benar tanpa harus membuka konten informasi tersebut.
Sebenarnya sistem prover dan verifier sudah biasa kita gunakan. Saat kita ingin login ke media sosial pribadi, kita menjadi prover dengan memasukkan password akun kita. Situs yang kita tuju adalah verifier yang memvalidasi password dengan data yang disimpan dalam server. Seperti yang kita tahu, banyak celah kelemahan dalam sistem ini termasuk penipuan, penggelepan data, dan peretasan.
Meskipun terlihat sederhana, sistem ZK membutuhkan daya komputasi yang intensif dan besar karena ia melibatkan pemecahan teka-teki kriptografik yang hanya bisa dibaca sistem ZK. Dalam konteks blockchain, teknologi ZK memiliki potensi besar karena artinya data pengguna tetap terjaga dan transaksi bisa tetap diproses.
Lalu, bagaimana verifier bisa percaya dengan data prover tanpa melihat konten informasinya? Jawabannya adalah ZKP. Zero-knowledge proof adalah tanda bukti dari satu pihak (prover) kepada pihak lain (verifier) bahwa ia mengetahui suatu informasi tanpa harus mengungapkan isi informasi tersebut. Tahap menghasilkan sebuah ZKP sangat rumit dan berbagai tim pengembang blockchain sedang mencari cara untuk membuat ZKP bisa lebih cepat, aman, dan efisien.
Zero-Knowledge Proof
Dalam upaya menghasilkan ZKP, verifier perlu menguji kebenaran informasi dari prover. Verifier akan meminta prover melakukan serangkaian tindakan yang hanya bisa dilakukan jika prover mengetahui informasi yang tepat. Tahap ini seperti sesi tanya-jawab yang mengandalkan algoritme untuk menguji beberapa data (yang berperan sebagai petunjuk) tanpa menampilkan data rahasia milik prover.
Berikut proses sederhana menghasilkan sebuah ZKP:
- Pada awalnya, verifier akan menanyakan beberapa pertanyaan kepada prover.
- Prover lalu memproses pertanyaan-pertanyaan ini dan memberikan respon kepada verifier.
- Verifier mempertimbangkan jawaban prover lalu menghasilkan output ‘benar’ atau ‘salah’.
- Saat prover berhasil meyakinkan verifier, sistem akan menerbitkan ZKP sebagai tanda validasi informasi.
Metode menghasilkan ZKP di atas termasuk ke dalam interactive ZKP di mana prover dan verifier berinteraksi beberapa kali sampai jawaban prover lolos. Namun, kebanyakan proyek ZK sekarang menggunakan non-interactive ZKP karena memiliki waktu yang lebih cepat. Kita akan membahas ZKP non-interaktif pada bagian selanjutnya.
Tahap menghasilkan ZKP sebenarnya mirip dengan permainan tebak kata, di mana satu orang mengetahui kata yang benar dan orang yang lain harus menebaknya. Di sini, orang yang mengetahui kata yang benar bisa memberikan petunjuk tentang semua aspek dari kata tersebut tapi tidak boleh memberi tahu kata aslinya.
Lalu, kenapa zero-knowledge proof sangat penting? Banyak proyek mengejar sistem ZK karena tingkat privasi tinggi yang ia berikan. Pencetakan ZKP memungkinkan informasi sensitif tentang seseorang atau sebuah transaksi tetap terjaga. Ini juga meningkatkan keamanan karena sebuah ZKP sangat sulit untuk diduplikasi.
Proses menghasilkan ZKP biasanya terjadi secara off-chain sehingga tidak membebani jaringan utama. Sebuah protokol ZK biasanya akan mengumpulkan sejumlah transaksi, memprosesnya secara off-chain, dan menghasilkan ZKP yang akan dikembalikan ke jaringan utama. Ini adalah cara utama yang sudah diterapkan oleh berbagai proyek ZK layer 2 di Ethereum.
Tiga karakteristik mendasar yang mendefinisikan sebuah ZKP:
- Kelengkapan: Jika prover lolos dan memenuhi kriteria, maka verifier akan yakin dengan ZKP yang dihasilkan oleh prover yang jujur.
- Logika yang Valid: Jika prover tidak bisa menghasilkan jawaban tepat dan tidak lolos, ia tidak bisa menyakinkan verifier melalui sebuah ZKP. Seorang prover yang berbohong tidak bisa menipu verifier (kecuali karena kecacatan sistem).
- Zero Knowledge: Verifier tidak mendapatkan informasi tambahan selain fakta bahwa prover membawa informasi yang benar.
Memahami zk-SNARK dan zk-STARK
Dua metode menghasilkan ZKP yang paling populer adalah Zero-Knowledge Succinct Non-Interactive Argument of Knowledge (zk-SNARK atau SNARK) dan Zero-Knowledge Scalable Transparent Argument of Knowledge (zk-STARK atau STARK). Keduanya merupakan ZKP non-interaktif yang menggunakan shared key sebagai parameter publik untuk menghasilkan ZKP. Dalam sistem ini, interaksi antara prover dan verifier hanya terjadi sekali.
SNARK menggunakan sebuah parameter publik yang digunakan oleh kedua pihak untuk menghasilkan dan memvalidasi ZKP. Parameter publik ini disebut Common Reference String (CRS). SNARK juga memanfaatkan elliptic curves untuk melindungi informasi sensitif pada ZKP yang dihasilkan. Namun, kelemahan SNARK adalah seseorang harus mengoperasikan CRS (disebut trusted setup) yang artinya prover kriminal bisa melihat data sensitif dan membuat ZKP palsu.
Sebagai upaya mengatasi kelemahan ini, SNARK menggunakan multi-party computation (MPC) setup ceremony dalam proses menciptakan CRS. Dalam MPC, beberapa prover memberikan sebagian informasi dalam membuat CRS tanpa berkomunikasi satu sama lain. Setelah CRS dibuat, selama salah satu prover bertindak jujur dan menghapus data sensitifnya, SNARK beroperasi secara normal. Sistem SNARK sangat berbeda dengan kompetitornya yang lebih baru, zk-STARK.
Beberapa proyek crypto yang sudah memanfaatkan teknologi zk-SNARK di antaranya adalah Loopring, zkSync 1.0 dan 2.0, Zcash, dan Mina Protocol.
STARK merupakan inovasi yang dibuat oleh STARKnet untuk menciptakan metode ZKP non-interaktif alternatif. STARK tidak memanfaatkan trusted setup dan CRS (ini mengapa ada kata transparan dalam STARK) untuk menghasilkan ZKP. Jadi, STARK menggunakan publicly verifiable randomness untuk menciptakan parameter publik yang akan digunakan dalam menghasilkan ZKP.
STARK memiliki skalabilitas lebih tinggi dibanding SNARK karena waktu yang diperlukan untuk memvalidasi data meningkat secara quasilinear dalam kaitannya terhadap kompleksitas perhitungannya (waktu dalam SNARK meningkat secara linear sesuai dengan kompleksitas). Jadi, STARK sangat ideal untuk menghasilkan ZKP saat volume transaksi tinggi atau memproses data dengan ukuran besar. Selain itu, STARK menggunakan Collision Resistant Hashes sehingga ia tahan terhadap serangan oleh komputer kuantum atau quantum-resistant. Ini membuat ZKP STARK lebih aman dan lebih future-proof.
Kelemahan dari sistem STARK yang tidak memanfaatkan CRS adalah ia membutuhkan daya komputasi lebih intensif dibanding SNARK. ZKP yang dihasilkan oleh STARK juga memiliki ukuran yang jauh lebih besar daripada SNARK. Akibatnya, ukuran ZKP lebih besar artinya membutuhkan biaya gas yang juga lebih tinggi.
Proyek zk-STARK mendapatkan dukungan langsung dari Ethereum Foundation pada awal penemuannya. Saat ini, beberapa proyek yang memanfaatkan zk-STARK adalah Immutable X, StarkNet, dan StarkEx.
STARK vs. SNARK
Komponen | SNARK | STARK |
---|---|---|
Biaya Gas Ethereum | sekitar 600k gwei (Groth16) | sekitar 2,5 juta gwei (estimasi) |
Ukuran ZKP (per 10.000 TX) | 200 bytes | 135 kb |
Trusted Setup? | ✅ | ❌ |
Quantum-Resistant | ❌ | ✅ |
Sistem zk-SNARK dan zk-STARK memiliki kelebihan dan kekurangannya masing-masing. Seperti pada dua tabel di atas, STARK membutuhkan biaya transaksi dan ukuran ZKP yang jauh lebih besar namun memiliki fitur quantum-resistant dan tidak membutuhkan trusted setup. STARK juga menang dalam aspek skalabilitas dibanding SNARK karena waktu yang dibutuhkan untuk menghasilkan ZKP tidak berbanding lurus dengan ukuran data. Oleh karena itu, STARK bisa menangani data kompleks dengan ukuran besar lebih baik dibanding SNARK.
Di sisi lain, SNARK sangat ideal untuk implementasi yang membutuhkan biaya transaksi dan kompleksitas yang rendah. Biaya transaksi yang jauh lebih murah dan ukuran ZKP lebih kecil (sehingga tidak membutuhkan penyimpanan data besar) membuat SNARK lebih dipilih dibanding STARK. Teknologi STARK yang relatif baru juga membuat dokumentasinya tidak selengkap SNARK. Hal ini membuat tingkat kompleksitas STARK lebih tinggi, mendorong pengembang untuk lebih memilih SNARK.
Kelebihan Teknologi Zero-Knowledge
- Sistem verifikasi yang terpercaya: Teknologi zero-knowledge dan zero-knowledge proof merupakan inovasi kriptografi mutakhir yang didesain untuk menjaga keamanan pengguna.
- Menjaga Data Sensitif: ZKP memastikan data sensitif tetap terjaga karena jaringan tidak perlu membuka data tersebut saat memvalidasi transaksi.
- Biaya Transaksi Lebih Murah: Transaksi yang memanfaatkan teknologi ZK membutuhkan biaya gas yang jauh lebih sedikit karena blockchain hanya perlu memvalidasi secarik bukti ZKP.
- Validasi Transaksi Lebih Cepat: Teknologi zero-knowledge proof memangkas waktu yang dibutuhkan untuk memproses transaksi karena jaringan tidak perlu memvalidasi transaksi satu per satu.
Beberapa Implementasi Teknologi ZK
ZK-Rollup Sebagai Layer 2 Ethereum
Salah satu implementasi teknologi zk yang paling populer adalah sebagai ZK-rollup dalam layer 2 Ethereum. ZK-rollup “*menggulung” sejumlah transaksi, memprosesnya secara off-chain, dan memberi bukti ZKP sebagai tanda validitas transaksi (disebut validity proof pada Ethereum) ke jaringan utama Ethereum. Metode ini tidak jauh berbeda dari optimistic rollup. Namun, ZK-rollup lebih efektif dibanding OR karena hanya membutuhkan ZKP sebagia bukti validasi transaksi.
Arsitektur sebuah ZK-rollup terdiri dari dua hal yaitu:
- On-Chain Smart Contracts: Status jaringan ZK-rollup dipertahankan oleh beberapa smart contracts pada Ethereum. Ini termasuk kontrak utama yang memonitor status jaringan dan blok yang diproduksi. Selain itu, kontrak verifier yang bertugas memvalidasi prover juga disimpan di sini.
- Mesin Virtual (VM) Off-Chain: Ekosistem eksekusi transaksi ZK-rollup disimpan dalam mesin virtual atau VM off-chain. VM ini menerima dan mengumpulkan transaksi lalu melaporkannya ke jaringan utama Ethereum. Transaksi diterima setelah ZKP dikirimkan ke on-chain smart contracts.
ZK-rollup merupakan salah satu solusi skalabilitas Ethereum yang ideal. Ia tetap mengandalkan keamanan yang dimiliki Ethereum karena setiap transaksi yang dikirimkan perlu disetujui oleh Ethereum (lewat konfirmasi ZKP). Selain itu, biaya transaksi ZK-rollup sangat rendah jika dibandingka dengan beberapa layer 2 lainnya.
zk-SNARK dan zk-STARK juga memiliki hambatan masing-masing dalam kontek sebuah ZK-rollup. Teknologi SNARK tidak didesain untuk memproses transaksi kompleks seperti smart contract. Sementara itu, STARK dibuat untuk menangani volume besar sehingga transaksi dalam jumlah kecil akan dikenakan biaya gas yang cukup mahal.
Namun, salah satu keterbatasan ZK-rollup saat ini adalah ia tidak kompatibel dengan mesin virtual Ethereum (EVM). Dapps di Ethereum tidak bisa melakukan migrasi langsung karena ZK-rollup tidak menggunakan Solidity (bahasa pemrograman Ethereum). Jadi, kebanyakan ZK-rollup saat ini tidak memiliki kapabilitas smart contract. Tim pengembang perlu belajar bahasa pemrograman baru untuk membangun di atas ZK-rollup.
Ini mengarah ke bahasan kita selanjutnya yang memberikan solusi terhadap permasalahan ZK-rollup yaitu zkEVM.
Salah satu risiko teknologi ZK sebagai layer 2 Ethereum adalah risiko sensor dan sentralisasi. Pada ZK-rollup, perlu ada validator yang berperan sebagai sequencer yang mengumpulkan dan mengurutkan transaksi pada jaringan ZK-rollup. Sequencer memiliki peran yang sangat penting karena dia bisa saja tidak memasukkan transaksi dan memindah-mindahkan transaksi. Pada dasarnya ini kelemahan pada semua sistem rollup.
zkEVM
zkEVM adalah sebuah mesin virtual yang kompatible dengan EVM dan bisa mendukung penghitungan zero-knowledge proof. Solusi ini dibuat untuk mengatasi hambatan ZK-rollup yang bisa dibagi menjadi dua yaitu:
- Keterbatasan bahasa pemrograman: Semua logika smart contract dalam ZK-rollup menggunakan bahasa khusus (seperti R1CS). Ini tidak hanya memiliki sintaks bahasa yang rumit, tetapi juga menuntut keahlian kuat dalam ZKP.
- ZK-Rollup tidak mendukung composability: Aplikasi ZK-Rollup yang berbeda tidak dapat berinteraksi satu sama lain di dalam Layer 2. Ini merusak fungsi berbagai aplikasi DeFi yang saling terhubung.
Jadi, zkEVM pada dasarnya ingin membuat ZK-rollup menjadi seperti rollup pada umumnya di mana aplikasi dibuat menggunakan bahasa Solidity. Tim pengembang aplikasi bisa dengan mudah melakukan migrasi ke jaringan ZK-rollup. Selain itu, pekerjaan pengembang yang ingin membangun di atas zkEVM menjadi lebih mudah. zkEVM sedang menjadi misi utama bagi berbagai tim pengembang karena ini dapat membuka teknologi ZK terhadap ekosistem smart contract yang ada di Ethereum
Beberapa tim yang sedang mengembangkan zkEVM adalah Polygon, Scroll, Applied ZKP, zkSync, dan ConsenSys. zkEVM versi Polygon baru saja diluncurkan dan sedang diuji sementara zkEVM versi zkSync baru memasuki tahap alpha.
Kesimpulan
Teknologi zero-knowledge merupakan salah satu inovasi terbaru untuk mengatasi masalah skalabilitas dan keamanan blockchain. Metode ZK memungkinkan transaksi diverifikasi tanpa harus mengungkapkan data sensitif di dalamnya. Teknologi ini juga memangkas waktu verifikasi transaksi karena jaringan hanya perlu menerima zero-knowledge proof tanpa harus memproses semua transaksi yang dibawanya. Saat ini, Ethereum menjadi tempat pengujian dan perkembangan berbagai teknologi ZK. Banyak tim pengembang menganggap teknologi ZK bisa menjadi solusi skalabilitas terbaik. Tim-tim ini sedang berusaha melakukan optimasi pada ZK untuk berbagai kegunaan di industri crypto.
Cara Membeli Aset Kripto di Pintu
Beberapa aset kripto yang berkaitan dengan ZK sudah bisa kamu beli di Pintu. Beberapa aset yang mengadopsi teknologi ZK pada platformnya adalah MATIC, IMX, dan ZEC. Kamu juga bisa berinvestasi pada aset crypto lain seperti BTC, ETH, dan SOL tanpa harus khawatir adanya penipuan. Selain itu, semua aset crypto yang ada di Pintu sudah melewati proses penilaian yang ketat dan mengedepankan prinsip kehati-hatian.
Aplikasi Pintu kompatibel dengan berbagai macam dompet digital populer seperti Metamask untuk memudahkan transaksimu. Ayo download aplikasi cryptocurrency Pintu di Play Store dan App Store! Keamananmu terjamin karena Pintu diregulasi dan diawasi oleh Bappebti dan Kominfo.
Selain melakukan transaksi, di aplikasi Pintu, kamu juga bisa belajar crypto lebih lanjut melalui berbagai artikel Pintu Academy yang diperbarui setiap minggunya! Semua artikel Pintu Akademi dibuat untuk tujuan edukasi dan pengetahuan, bukan sebagai saran finansial.
Referensi
- Pontem Network, Zero-Knowledge 101. Zero-Knowledge Proofs | Zero Knowledge… | by Pontem Network | Mar, 2023, Medium, diakses pada 27 Maret 2023.
- Pontem Network, Part 1: Can We Kill Moloch? ZK Basics and Virtual Machines , Zee Prime Capital, diakses pada 27 Maret 2023.
- Zero-Knowledge 201. Learn more about zero-knowledge proofs… | by Pontem Network | Mar, 2023, Medium, diakses pada 28 Maret 2023.
- Zero-Knowledge Proof (ZKP) — Explained, Chainlink, diakses pada 28 Maret 2023.
- Krinza.eth, A Non-Mathematical Introduction to Zero Knowledge Proof, Mirror.xyz, diakses pada 29 Maret 2023.
- Zero-knowledge proofs, Ethereum, diakses pada 29 Maret 2023.
- Mattison Asher, Coogan Brennan, Zero-Knowledge Proofs: STARKs vs SNARKs, ConsenSys, diakses pada 29 Maret 2023.
- Zero-Knowledge rollups, Ethereum, diakses pada 30 maret 2023.
- Ye Zhang, zkEVM, HackMD, diakses pada 30 Maret 2023.
- What is a zkEVM?, Alchemy, diakses pada 30 Maret 2023.