Saya ingin membahas lebih dalam tentang pembuktian tanpa pengetahuan (zero-knowledge proofs) hari ini, karena postingan sebelumnya hanya menggarisbawahi idenya.

Analogi sederhana: membuktikan bahwa Anda sudah berusia lebih dari 18 tahun tanpa menunjukkan tanggal lahir Anda yang sebenarnya. Anda tidak menyembunyikan apakah klaim itu benar — Anda hanya tidak mengungkap lebih dari yang diperlukan untuk membuktikannya. Pembuktian tanpa pengetahuan memungkinkan komputer melakukan hal yang setara dengan matematika, bukan dengan kartu identitas.

Secara teknis, @Dusk mengandalkan PLONK, sebuah sistem pembuktian yang membantu dikembangkan sejak masa testnet awalnya, berjalan di atas kurva BLS12-381. PLONK memungkinkan jaringan mengonfirmasi bahwa sebuah transaksi atau kontrak mengikuti aturan tanpa pernah melihat input privat di balik klaim tersebut.

Namun ada sebuah kendala, dan itu yang relatif baru, jadi penting untuk dibicarakan dengan jujur. Pada bulan April, peneliti keamanan di OtterSec mengungkap adanya kelemahan soundness dalam implementasi PLONK milik #dusk : verifikator tidak memeriksa empat komitmen polinomial dari prover, sebuah celah yang secara teori dapat memungkinkan seseorang memalsukan bukti untuk transaksi yang dilindungi (shielded transaction). Tim Dusk menanganinya dengan menambahkan pemeriksaan yang hilang tersebut ke langkah verifikasi.

Saya mengangkat ini bukan untuk menakut-nakuti siapa pun, tetapi karena ini pengingat yang berguna: kriptografinya bisa saja sudah sound, sementara kode yang mengimplementasikannya masih bisa memiliki bug. Verifikasi terhadap verifikator juga ikut penting.
$DUSK $HEMI $TUT