Membaca batasan rangkaian Phoenix menghentikan saya. Pada Dusk $DUSK #dusk @Duskfoundation, Transfer Contract tidak pernah melihat nilai catatan yang sebenarnya atau leaf Merkle mana yang dibelanjakan.
Yang hanya dicek adalah bukti PLONK bahwa input privat memenuhi lima kondisi: hash catatan terbuka terhadap root Merkle terbaru dari catatan, prover mengetahui kunci rahasia catatan, nullifier sama dengan Poseidon(npk′ ‖ position), komitmen output terbuka dengan benar, dan jumlah nilai input sama dengan output ditambah fee serta deposit apa pun.
Nullifier sendiri dipublikasikan agar jaringan bisa menolak penggunaan ulang. Karena setiap nullifier diturunkan dari kunci catatan dan posisi yang tersembunyi, tidak ada pengamat yang dapat memetakan nullifier kembali ke leaf tertentu. Validitas sepenuhnya berada di dalam kepuasan rangkaian; isinya tidak pernah muncul di ledger.
Yang berubah bagi saya adalah menyadari bahwa perlindungan double-spend dan integritas saldo keduanya ada di dalam proof, bukan dalam perubahan status yang terlihat.
Cek berikutnya: apakah setiap nullifier yang dipublikasikan dari transaksi Phoenix yang diterima tetap unik di himpunan nullifier on-chain setelah finalitas.
@Dusk_Foundation