zk-SNARK memiliki arti zero-knowledge succinct non-interactive argument of knowledge (pengetahuan kosong yang singkat pengetahuan non-interaktif. Bukti zk-SNARK sudah digunakan oleh Zcash, dan sistem pembayaran JP Morgan Chase yang berbasis blockchain, sebagai sebuah cara untuk mengamankan otentikasi relasi kepada server. Akan tetapi, zk-SNARK sedang dalam pengembangan untuk digunakan dan adopsi secara luas, akan tetapi bukti zk-STARK sekarang disebutkan sebagai versi terbaru dan terbaharui dari protokol tersebut, dengan memberikan penanganan terhadap banyak kelemahan dari zk-SNARK terdahulu.
Perumpamaan Goa Alibaba
Bayangkan sebuah goa berbentuk lingkaran hanya dengan sebuah pintu masuk dan sebuah pintu sihir yang memisahkan kedua sisi jalan. Untuk dapat melewati pintu sihir tersebut, seseorang harus membisikkan kata rahasia yang benar. Jadi, anggap Alice (warna kuning) ingin membuktikan kepada Bob (warna biru) bahwa ia tahu apakah kata rahasia tersebut - sambil terus menjaga rahasia tersebut. Untuk dapat melakukan ini, Bob setuju untuk menunggu di luar, sedangkan Alice berjalan masuk ke dalam goa dan berjalan sampai kepada pemisah jalan tersebut. Dalam contoh ini, ia memutuskan untuk berjalan melalui jalan nomor 1.
Setelah beberapa saat, Bob memasuki pintu masuk dan meneriakkan ke arah dimana Bob ingin Alice untuk muncul (contohnya pada jalan nomor 2).
Jika Alice benar-benar tahu rahasianya, ia akan muncul dari arah yang Bob inginkan.
Seluruh proses ini dapat diulang beberapa kali sebagai sebuah cara untuk mengkonfirmasi bahwa Alice tidak memilih jalan yang benar dikarenakan keberuntungannya.
Perumpamaan Goa Alibaba mengilustrasikan konsep bukti pengetahuan kosong, yang adalah bagian dari protokol zk-SNARK dan zk-STARK. Bukti ZK dapat digunakan untuk membuktikan kepemilikan dari sebuah pengetahuan tanpa membeberkan informasi apapun mengenai pengetahuan tersebut.
zk-SNARK
Bukti pengetahuan kosong (zero-knowledge) mengizinkan satu individu untuk membuktikan bahwa sebuah pernyataan adalah benar, tanpa membeberkan informasi apapun diluar validitas pernyataan tersebut. Semua pihak yang terkait secara umum disebut sebagai pembukti (prover) dan pemverifikasi (verifier), dam pernyataan yang mereka buat dalam kerahasiaan disebut sebagai saksi (witness). Tujuan utama dari bukti ini adalah untuk membeberkan sedikit mungkin data antara dua pihak. Dengan kata lain, seseorang tersebut dapat menggunakan bukti pengetahuan kosong (zero-knowledge) untuk membuktikan bahwa mereka memiliki sebuah pengetahuan tanpa harus membeberkan informasi lainnya mengenai pengetahuan tersebut.
Pada akronim SNARK, “succinct” berarti bahwa bukti ini adalah berukuran sangat kecil dan dapat secara cepat diverifikasi. “Non-interactive” berarti hanya ada sedikit atau tidak ada interaksi di antara pembukti dan pemverifikasi. Versi lama dari protokol pengetahuan kosong (zero-knowledge) biasanya membutuhkan pembukti dan pemverifikasi untuk berkomunikasi secara terus menerus, maka dari itu dianggap sebagai bukti zk “interaktif”. Akan tetapi pada konstruksi “non-interactive”, pembukti dan pemverifikasi hanya dibutuhkan untuk menukarkan satu bukti.
Sekarang ini, bukti zk-SNARK sangat bergantung kepada pengaturan awal di antara pembukti dan pemverifikasi, berarti sebuah rangkap parameter publik dibutuhkan untuk membuat bukti pengetahuan kosong (zero knowledge) dan menjadi transaksi privat. Parameter tersebut menjadi seperti sebuah aturan dalam sebuah permainan, dimana mereka di encode ke dalam protokol dan menjadi satu faktor penting dalam membuktikan bahwa transaksi tersebut adalah valid. Akan tetapi, ini membuat sebuah potensi sentralisasi menjadi masalah dikarenakan parameter tersebut seringkali diformulasi menjadi grup yang sangat kecil.
Terakhir dalam teka-teki akronim tersebut adalah “of Knowledge,” yang berarti tidak mungkin untuk pembukti untuk membuat sebuah bukti tanpa memiliki sebuah pengetahuan (atau saksi) untuk mendukung pernyataan mereka.
zk-STARK
zk_STARK dibuat sebagai sebuah versi alternatif terhadap bukti zk-SNARK dan dianggap sebagai sebuah pengimplementasian teknologi yang lebih cepat dan murah. Akan tetapi, terlebih penting, zk-STARK tidak membutuhkan sebuah pengaturan awal kepercayaan (maka dari itu “T” sebagai transparan).
Salah satu alasan mengapa zk-STARK menawarkan sebuah implementasi yang lebih cepat dan murah adalah dikarenakan jumlah komunikasi antara pembukti dan pemverifikasi tetap konstan walaupun adanya peningkatan daya komputasi. Sebagai pembangding, pada zk-SNARK, jika kebutuhan komputasi meningkat, semakin banyak komunikasi yang harus terjadi antar pihak yang terkait. Maka dari itu ukuran keseluruhan dari zk-SNARK akan menjadi lebih besar dibandingkan dengan dalam bukti zk-STARK.