menemukan sesuatu hampir secara tidak sengaja malam ini, mengutak-atik issue GitHub Dusk alih-alih dokumennya untuk sekali ini — sebuah thread diskusi tentang bagaimana Phoenix sebenarnya menurunkan kuncinya, dan pengakuan adanya kelemahan dalam cara melakukannya saat ini.

Phoenix, seperti kebanyakan protokol berlapis pelindung, memecah kunci menjadi dua peran:

sebuah spend key yang dapat memindahkan dana, dan sebuah view key yang hanya dapat melihatnya. Bagikan view key kepada akuntan atau auditor, dan mereka bisa melihat aktivitas Anda tanpa pernah bisa menyentuhnya. Secara teori hal ini sederhana. Tapi @Dusk Foundation para insinyur internalnya menemukan kelemahan nyata pada implementasi saat ini: untuk menurunkan kunci baru, sekarang masih perlu meneruskan seluruh seed phrase itu sendiri, bukan suatu nilai antara yang diturunkan darinya. Ini melanggar prinsip keamanan dasar, least privilege, karena setiap kode yang menangani penurunan kunci akhirnya memegang materi rahasia lebih banyak daripada yang sebenarnya dibutuhkan.
Perbaikan mereka, masih dalam proses: memperkenalkan master key yang dipisahkan di antara seed dan setiap kunci turunan, sehingga seed mentah tidak perlu lagi melewati logika penurunan apa pun. Perubahan arsitektur kecil, tetapi bedanya antara bug dompet yang tetap terisolasi dan bug dompet yang mengekspos semuanya sekaligus.
Yang membuat saya terpikir: mereka melakukan perbaikan ini secara terbuka, di tengah migrasi, bersamaan dengan perombakan model ala EIP-2333 untuk kunci Moonlight juga. Sebagian besar chain akan menambalnya secara diam-diam. Wallet $DUSK akan lebih aman setelah ini dirilis — tetapi jika sebuah chain yang mengutamakan privasi menjalankannya dengan diekspos selama masa transisi, atau apakah iterasi yang transparan justru jalur yang lebih dapat dipercaya? #dusk $DUSK @Dusk