Bukti tanpa pengetahuan (ZKP) adalah metode kriptografi yang memungkinkan satu pihak, yang disebut pembuktinya, meyakinkan pihak lain, yaitu verifier, bahwa sebuah pernyataan itu benar tanpa mengungkapkan informasi apa pun di luar kebenaran pernyataan itu sendiri. Dalam istilah teknis, ZKP memenuhi tiga sifat inti: kelengkapan, ketepatan, dan tanpa pengetahuan. Kelengkapan memastikan bahwa pembukti yang jujur selalu dapat meyakinkan verifier jika pernyataan itu benar. Ketepatan menjamin bahwa pembukti yang tidak jujur tidak dapat menipu verifier untuk menerima pernyataan yang salah. Tanpa pengetahuan berarti bahwa verifier tidak belajar apa pun di luar validitas klaim.
Konsep ini tidak hanya bersifat teoretis. Bukti nol-pengetahuan sudah digunakan dalam sistem kriptografi modern untuk memverifikasi identitas, memvalidasi transaksi, dan menegakkan kebijakan tanpa mengungkapkan data pribadi. Mereka sangat cocok untuk aplikasi blockchain, di mana privasi dan desentralisasi adalah kunci.
Blockchain publik seperti Ethereum dan Bitcoin beroperasi berdasarkan prinsip transparansi penuh. Setiap node dalam jaringan harus mengeksekusi ulang setiap transaksi untuk memvalidasinya. Meskipun model ini memastikan keamanan dan konsensus, hal ini datang dengan biaya skalabilitas dan privasi. Bukti nol-pengetahuan mengatasi kedua keterbatasan ini.
Untuk privasi, ZKP memungkinkan pengguna untuk membuktikan sesuatu — misalnya, bahwa suatu transaksi valid — tanpa mengungkapkan isi transaksi tersebut. Ini memungkinkan transaksi yang bersifat rahasia dan logika kontrak pintar yang pribadi sambil tetap mempertahankan verifikasi publik. Untuk skalabilitas, ZKP mengompres perhitungan menjadi sebuah bukti yang ringkas. Bukti ini dapat diverifikasi dengan cepat di blockchain, bahkan jika perhitungan aslinya mahal dan memakan waktu. Alih-alih mengeksekusi logika penuh di setiap node, hanya bukti yang perlu diperiksa. Ini secara drastis mengurangi biaya gas dan meningkatkan throughput.
Teknologi zero-knowledge memungkinkan untuk menskalakan blockchain tanpa mengorbankan kepercayaan, dan untuk membangun aplikasi pribadi tanpa memperkenalkan perantara terpusat. Seiring blockchain menjadi lebih kompleks dan diadopsi untuk penggunaan umum, kemampuan ini menjadi sangat penting.
Kontrak pintar telah mengubah blockchain menjadi platform yang dapat diprogram. Mereka memungkinkan pengembang untuk membangun aplikasi terdesentralisasi yang secara otomatis mengeksekusi logika berdasarkan aturan yang telah ditentukan. Namun, kontrak pintar dibatasi oleh batasan komputasi dari blockchain itu sendiri. Mereka harus dijalankan di dalam jaringan, di mana setiap operasi mahal dan publik.
Seiring dengan pertumbuhan kompleksitas aplikasi terdesentralisasi, batasan ini menjadi semakin bermasalah. Melakukan perhitungan besar atau mengakses kumpulan data yang luas secara on-chain tidak praktis. Pada saat yang sama, pengguna semakin menuntut privasi, yang tidak dapat diberikan oleh kontrak pintar standar.
Untuk mengatasi hal ini, para pengembang mulai memindahkan komputasi di luar rantai (off-chain) sambil mempertahankan kepercayaan melalui bukti kriptografi. Di sinilah bukti nol-pengetahuan (zero-knowledge proofs) berperan. Alih-alih menjalankan seluruh logika di dalam rantai (on-chain), komputasi berat dilakukan di luar rantai, dan hanya bukti ringkas dari hasilnya yang diajukan ke blockchain. Ini menjaga blockchain tetap aman dan dapat diverifikasi sambil secara dramatis meningkatkan kinerja dan kerahasiaan.
Transisi dari logika on-chain ke verifikasi off-chain menandai pergeseran besar dalam arsitektur blockchain. Ini memungkinkan aplikasi untuk berkembang melampaui batas Mesin Virtual Ethereum dan mendukung kasus penggunaan baru yang sebaliknya akan menjadi tidak mungkin.
Koprosesor pengetahuan nol adalah sistem khusus off-chain yang melakukan perhitungan dan menghasilkan bukti kriptografis tentang kebenarannya. Tidak seperti kontrak pintar, yang dijalankan langsung di blockchain, koprosesor ZK beroperasi secara eksternal. Ia memproses masukan, menjalankan perhitungan menggunakan zkVM atau sirkuit kustom, dan menghasilkan bukti pengetahuan nol. Bukti ini kemudian dapat diajukan di on-chain untuk membuktikan bahwa perhitungan telah dieksekusi dengan benar.
Ide coprocessor diambil dari perangkat keras komputer. Dalam sistem tradisional, coprocessor adalah prosesor terpisah yang digunakan untuk menangani tugas-tugas tertentu seperti grafik atau aritmatika floating-point. Demikian pula, coprocessor ZK membebaskan logika kompleks dari blockchain, memungkinkan rantai utama untuk fokus pada verifikasi daripada eksekusi.
Koprosesor ZK memperkenalkan lingkungan eksekusi modular. Pengembang dapat membangun logika dalam runtime off-chain yang khusus, menjalankan komputasi besar atau pribadi di sana, dan kemudian mengkomit hasil yang telah diverifikasi kembali ke blockchain mana pun. Modularitas ini memungkinkan komposabilitas antar rantai, meningkatkan kinerja, dan mendukung desain aplikasi yang lebih fleksibel.
Dalam arsitektur blockchain modern, koprosesor ZK menempati lapisan tengah antara kontrak cerdas on-chain dan sumber data atau komputasi eksternal. Di dasar, Anda memiliki blockchain itu sendiri, yang mencatat status, menerapkan aturan, dan memverifikasi bukti. Di atasnya terdapat kontrak cerdas, yang mendefinisikan logika publik aplikasi dan menerima masukan dari pengguna atau kontrak lain.
ZK coprocessors beroperasi di samping atau di bawah kontrak pintar ini. Mereka menerima masukan — sering kali dalam bentuk calldata atau pesan yang ditandatangani — dari pengguna atau kontrak, mengeksekusi logika di luar rantai, dan menghasilkan bukti zero-knowledge. Bukti tersebut dikirim kembali ke kontrak pintar, yang memverifikasinya menggunakan kunci verifier. Jika valid, kontrak memperbarui statusnya atau memicu respons.
Arsitektur ini semakin modular. Sebuah koprosesor dapat melayani beberapa kontrak atau aplikasi. Demikian pula, satu kontrak dapat bekerja dengan beberapa koprosesor. Sistem ini juga dapat diperluas di seluruh rantai. Sebuah koprosesor ZK dapat menghitung bukti untuk data di satu rantai dan mengirimkannya ke rantai lain, memungkinkan interoperabilitas lintas rantai dengan jaminan yang kuat.