PLONK:bagaimana komputasi di rantai “dapat dibuktikan” bukan “dapat direproduksi”
Beberapa hari ini saya mempelajari sistem bukti PLONK. Semakin saya lihat, semakin terasa bahwa verifikasi di blockchain telah benar-benar mengubah logikanya
Pertama-tama, masalah sederhana: bagaimana cara memastikan di rantai bahwa suatu komputasi itu benar?
Cara paling langsung adalah “menghitung ulang” — setiap node menjalankan perhitungan yang sama, hasilnya sama berarti valid. Metode ini memang bodoh tapi berhasil. Masalahnya, biaya meningkat secara linear seiring besarnya perhitungan; semakin rumit komputasinya, semakin besar juga beban seluruh jaringan untuk verifikasi ulang
Yang dilakukan PLONK adalah mengganti “menghitung ulang” menjadi “membuktikan bahwa suatu bagian berukuran tetap itu benar”. Tidak peduli seberapa kompleks komputasinya, ukuran bukti yang harus diperiksa oleh verifikator pada dasarnya konstan. Bebannya nyaris tidak membesar seiring skala komputasi—ini bukan sekadar optimasi, melainkan perubahan struktur biaya dari akarnya
━━━━━━━━━━━━━━
Di balik itu semua ada komitmen polinomial KZG
PLONK akan mengodekan seluruh syarat constraint dari sebuah sirkuit ke dalam beberapa polinomial. Pembukti tidak perlu membuka detail perhitungannya kepada Anda; cukup membuktikan “nilai polinomial-polainial tersebut pada titik-titik tertentu adalah benar”. Verifikator kemudian hanya menerima beberapa operasi grup—hitungannya sangat ringan. Jejak eksekusi yang panjang dan padat, dikompresi menjadi beberapa verifikasi aljabar yang ringkas
Ada satu desain kunci lagi: preprocessing
Bagian dari sirkuit yang bersifat publik dan tetap bisa dihitung terlebih dahulu secara offline, tidak perlu diulang setiap kali ada verifikasi. Saat verifikasi di rantai, yang diproses hanya bagian yang ringan dan relevan dengan bukti kali ini. Inilah juga mengapa PLONK bisa melakukan “universal dan bisa di-update” — kerangka yang sama bisa melayani sirkuit dengan ukuran berbeda; tidak perlu mengulang setup kepercayaan setiap kali ganti sirkuit
━━━━━━━━━━━━━━
Kalau diterapkan di sisi Dusk, sistem bukti ini dipanggil langsung oleh CVM
Setelah eksekusi kontrak privasi selesai, bukan hasilnya dibuang agar orang lain menjalankan verifikasi ulang, melainkan langsung mengeluarkan sebuah bukti—proses eksekusi itu sendiri adalah proses pembuatan bukti
Inilah perbedaan paling mendasar antara “dapat dibuktikan” dan “dapat direproduksi”: yang satu bergantung pada kemauan semua orang untuk menghitung ulang; yang lainnya membuat Anda tidak perlu menghitung karena matematika
@Dusk_Foundation $DUSK #dusk
Beberapa hari ini saya mempelajari sistem bukti PLONK. Semakin saya lihat, semakin terasa bahwa verifikasi di blockchain telah benar-benar mengubah logikanya
Pertama-tama, masalah sederhana: bagaimana cara memastikan di rantai bahwa suatu komputasi itu benar?
Cara paling langsung adalah “menghitung ulang” — setiap node menjalankan perhitungan yang sama, hasilnya sama berarti valid. Metode ini memang bodoh tapi berhasil. Masalahnya, biaya meningkat secara linear seiring besarnya perhitungan; semakin rumit komputasinya, semakin besar juga beban seluruh jaringan untuk verifikasi ulang
Yang dilakukan PLONK adalah mengganti “menghitung ulang” menjadi “membuktikan bahwa suatu bagian berukuran tetap itu benar”. Tidak peduli seberapa kompleks komputasinya, ukuran bukti yang harus diperiksa oleh verifikator pada dasarnya konstan. Bebannya nyaris tidak membesar seiring skala komputasi—ini bukan sekadar optimasi, melainkan perubahan struktur biaya dari akarnya
━━━━━━━━━━━━━━
Di balik itu semua ada komitmen polinomial KZG
PLONK akan mengodekan seluruh syarat constraint dari sebuah sirkuit ke dalam beberapa polinomial. Pembukti tidak perlu membuka detail perhitungannya kepada Anda; cukup membuktikan “nilai polinomial-polainial tersebut pada titik-titik tertentu adalah benar”. Verifikator kemudian hanya menerima beberapa operasi grup—hitungannya sangat ringan. Jejak eksekusi yang panjang dan padat, dikompresi menjadi beberapa verifikasi aljabar yang ringkas
Ada satu desain kunci lagi: preprocessing
Bagian dari sirkuit yang bersifat publik dan tetap bisa dihitung terlebih dahulu secara offline, tidak perlu diulang setiap kali ada verifikasi. Saat verifikasi di rantai, yang diproses hanya bagian yang ringan dan relevan dengan bukti kali ini. Inilah juga mengapa PLONK bisa melakukan “universal dan bisa di-update” — kerangka yang sama bisa melayani sirkuit dengan ukuran berbeda; tidak perlu mengulang setup kepercayaan setiap kali ganti sirkuit
━━━━━━━━━━━━━━
Kalau diterapkan di sisi Dusk, sistem bukti ini dipanggil langsung oleh CVM
Setelah eksekusi kontrak privasi selesai, bukan hasilnya dibuang agar orang lain menjalankan verifikasi ulang, melainkan langsung mengeluarkan sebuah bukti—proses eksekusi itu sendiri adalah proses pembuatan bukti
Inilah perbedaan paling mendasar antara “dapat dibuktikan” dan “dapat direproduksi”: yang satu bergantung pada kemauan semua orang untuk menghitung ulang; yang lainnya membuat Anda tidak perlu menghitung karena matematika
@Dusk_Foundation $DUSK #dusk
