Pagi ini aku membaca tentang Phoenix dan aku terjebak pada sesuatu yang kedengarannya hampir terlalu sederhana
Kalau seseorang menghabiskan private output, kenapa tidak saja menandai output itu sebagai sudah terpakai
Begitulah pikiranku awalnya tentang cara kerjanya
Kau menghabiskan sebuah output
dan jaringan menandainya sebagai sudah terpakai
mencoba menghabiskannya lagi akan ditolak
Mudah Tapi kemudian aku sadar ada masalah jika melakukan itu ketika output itu sendiri seharusnya tetap privat
Kalau jaringan harus secara publik menunjuk ke output privat persis yang sudah dihabiskan, berarti kau membocorkan informasi tentang transaksi tersebut
Jadi aku kembali ke bagian Phoenix di whitepaper Dusk untuk melihat bagaimana mereka menanganinya
Di situlah nullifier berperan
Alih-alih sekadar mengumumkan private output mana yang dihabiskan, Phoenix menghasilkan nilai kriptografis unik yang disebut nullifier
Jaringan dapat memeriksa apakah nullifier tersebut sudah pernah muncul
Jika sudah, maka penghabisan ditolak
Jika belum, transaksi bisa berlanjut tanpa perlu mengungkap secara langsung private output mana yang digunakan
Itulah bagian yang mula-mula tidak kusadari
Sistem tetap perlu cara untuk mengingat
Nilai ini sudah pernah dihabiskan
Tapi tidak berarti harus mengatakan
Private output persis mana yang terpakai
Itu justru masalah yang jauh lebih sulit
Karena sekarang kau mencoba menyelesaikan dua hal sekaligus
Mencegah double spending
Jangan mengekspos private output yang sedang dihabiskan
Karena itulah nullifier masuk akal bagiku sekarang
Bukan hanya objek kriptografis lain yang berada di dalam Phoenix
Itu pada dasarnya adalah penghubung antara mengingat bahwa sesuatu sudah dihabiskan dan tidak mengungkap secara tepat apa yang dihabiskan
Semakin aku melihatnya, semakin aku menyadari bahwa privasi bukan sekadar soal menyembunyikan sebuah transaksi
Kadang privasi adalah tentang menyembunyikan hubungan antara sebuah transaksi dan potongan state privat di baliknya
#dusk $DUSK @Dusk $BTR $BMT