PLONK:Tidak perlu “menghitung ulang”, tapi tetap bisa memastikan benar atau tidak

Beberapa hari ini saya menelaah lagi PLONK, dan pemahaman saya jadi sedikit lebih jelas: ini bukan supaya verifikasinya lebih cepat, melainkan mengambil langkah “verifikasi ulang seluruh jaringan” dari sisi mekanisme.

Dulu verifikasi di blockchain terasa sangat langsung:
Kamu menghitung sekali, saya juga menghitung sekali, hasilnya sama berarti dianggap benar.

Masalahnya, begitu perhitungan menjadi lebih rumit, seluruh jaringan harus menjalankan logika yang sama berulang-ulang, sehingga biaya membesar secara linear.
Yang dilakukan PLONK adalah mengganti paradigma verifikasi:
Tidak lagi menuntut verifikator untuk menjalankan ulang perhitungan, melainkan pembukt i (prover) menghasilkan “bukti pengetahuan nol” (zero-knowledge proof) dan verifikator hanya perlu memeriksa apakah bukti tersebut valid.
Alat kriptografi kunci di sini adalah komitmen polinomial KZG (KZG polynomial commitments).
Lebih tegasnya, PLONK mengubah batasan rangkaian (circuit constraints) menjadi sistem batasan polinomial, lalu menggunakan KZG untuk “mengikat” polinomial-pol inomial tersebut menjadi satu.
Pembukt i mengirimkan bukti konsistensi dari polinomial-polinomial itu pada titik-titik tertentu, bukan lintasan perhitungan lengkap.

Verifikator tidak perlu menguraikan proses perhitungan; cukup melakukan sedikit operasi pairing pada kurva eliptik untuk memastikan apakah hubungan-hubungan polinomial tersebut benar.

Bisa dianalogikan dengan cara yang lebih dekat namun tetap tidak menyesatkan:

Seperti ketika kamu tidak melihat keseluruhan proses perhitungan, melainkan hanya mengecek apakah “tanda tangan matematis” tertentu cocok dengan aturan. Tanda tangan ini tidak dibuat sembarangan, melainkan dikompresi oleh seluruh proses perhitungan melalui constraint polinomial.

Jadi logika PLONK adalah:

Dulu: “Hitung ulang untuk memastikan kamu tidak salah”
Sekarang: “Verifikasi bahwa bukti yang dihasilkan dari perhitungan itu benar”

Selain itu, ada poin penting lainnya: mekanisme prap emrosesan (preprocessing).
PLONK akan menghasilkan parameter umum (universal setup) untuk bagian rangkaian yang tetap dan terkait struktur sebelumnya, sehingga saat verifikasi hanya perlu memproses bagian witness yang bergantung pada input spesifik.
Dengan begitu, konstruksi ulang constraint rangkaian bisa dihindari.

Jika ditempatkan ke dalam CVM Dusk, jadinya begini:
Setelah eksekusi kontrak selesai, tidak lagi dipublikasikan proses eksekusi lengkap, melainkan dibuat bukti zk-SNARK. Verifikator tidak perlu menjalankan ulang eksekusi; cukup memverifikasi bukti tersebut untuk memastikan kebenaran hasil.

Perubahan mendasarnya bisa dinyatakan lebih presisi sebagai: dari “verifikasi konsensus berbasis perhitungan redundan” menjadi “komputasi yang dapat diverifikasi berbasis komitmen polinomial”.
@Dusk $DUSK #dusk