Jujur saja, saat pertama kali melihat tiga singkatan ini ditaruh berdekatan, saya mengira itu adalah tiga jawaban untuk satu soal yang sama—siapa yang paling cepat, siapa yang paling aman, tinggal pilih satu saja. Tapi kemudian saya paham: menaruh semuanya dalam satu peringkat, seperti bertanya "mana yang terbaik: palu, obeng, atau kunci inggris", jawabannya tergantung di tangan Anda sedang ada paku, sekrup, atau baut.
Mereka masing-masing sebenarnya menyelesaikan tiga masalah yang selama ini dicampuradukkan.
Masalah pertama adalah: saya ingin membuktikan sesuatu itu benar, tetapi data yang dibutuhkan untuk membuktikannya sangat sensitif, dan saya tidak ingin memperlihatkannya kepada Anda. Bank ingin menjelaskan kepada regulator bahwa "transaksi ini sah, otorisasinya benar, dan tidak ada duplikasi", tetapi mereka tidak mau menuliskan rincian jumlah dan pihak penerima/pembayar di dalam pembukuan. Kebutuhan agar pembuktian tetap benar tanpa membuka data adalah arena utamanya ZK. Kehebatannya adalah: kesimpulan berasal dari matematika, bukan dari "saya berjanji pada Anda, saya tidak akan melihat"; regulator atau auditor yang memperoleh kunci verifikasi bisa memeriksa kesimpulannya, tetapi tidak bisa menyentuh data dasarnya. Harganya juga nyata: ia jago membuktikan sifat data, tetapi kurang jago membuat beberapa pihak bisa menghitung bersama ketika tidak ada yang memiliki data lengkap, dan ia juga lebih haus daya komputasi dibanding data terbuka (plaintext).