#dusk $DUSK @Dusk Saya awalnya mengira, Data Driver cukup dilengkapi tanda tangan pemilik kontrak—keamanannya sudah memadai. Setelah menelusuri kode sumber Dusk, ketenangan itu tinggal setengah: tanda tangan memang bisa membuktikan siapa yang mengunggah file, tetapi tidak bisa membuktikan ia cocok untuk versi kontrak yang mana.
Di Dusk, Data Driver adalah berkas WASM yang berdiri sendiri. Dompet, bursa, dan bot memakainya untuk membaca byte mesin yang dikeluarkan kontrak menjadi jumlah, izin, dan peristiwa—dan juga memakainya untuk mengenkode tindakan pengguna menjadi data yang bisa dieksekusi oleh kontrak. Saat pengunggahan, pemilik kontrak memberi tanda tangan hash untuk berkas Driver, lalu node menyimpannya berdasarkan ID kontrak.
Saya menemukan masalah utamanya ada di sisi klien. W3sper saat ini juga mendaftarkan dan menyimpan cache Driver berdasarkan ID kontrak. Issue resmi repositori terbuka menyoroti bahwa di sini masih kurang keterikatan yang kuat antara Driver dan versi atau hash kontrak.
Akibatnya muncul sebuah ketidakcocokan yang sangat ala Dusk: terminal lama terus memakai Driver lama yang tersimpan di cache, sementara terminal baru sudah mengunduh Driver baru. Dua berkas ini bisa sama-sama berasal dari jalur yang sah; keduanya juga tidak menimbulkan error. Namun pada ketinggian yang sama, mereka bisa saja menafsirkan jumlah, peristiwa, bahkan parameter transaksi dengan makna yang berbeda.
Saya paling takut kegagalan seperti ini terjadi saat transaksi. Transaksi yang gagal akan memberi peringatan; tetapi jika data dibaca dengan keliru secara diam-diam, saldo dompet, posisi bot, dan catatan platform data bisa masing-masing menghitung versi mereka sendiri—sampai dana tidak cocok barulah masalah itu terungkap.
Ke depan, saya akan menambahkan metrik untuk penilaian $DUSK . Jumlah kontrak sangat mudah bertambah, sedangkan konsistensi hash Driver jauh lebih bernilai. Dompet arus utama, bursa, dan indexer yang memakai versi Driver mana, berlaku sejak ketinggian berapa, dan kapan versi lama menjadi tidak valid—semuanya seharusnya bisa ditelusuri.
Dusk memisahkan “eksekusi kontrak” dan “interpretasi kontrak” menjadi dua lapis, memberi fleksibilitas, tetapi juga menambah satu lapisan tanggung jawab spesifik: berkas versi asli juga harus membuktikan dirinya tidak sudah kedaluwarsa. Hanya dengan begitu, semua pihak bisa bertransaksi dengan lebih tenang.
$BTC
Di Dusk, Data Driver adalah berkas WASM yang berdiri sendiri. Dompet, bursa, dan bot memakainya untuk membaca byte mesin yang dikeluarkan kontrak menjadi jumlah, izin, dan peristiwa—dan juga memakainya untuk mengenkode tindakan pengguna menjadi data yang bisa dieksekusi oleh kontrak. Saat pengunggahan, pemilik kontrak memberi tanda tangan hash untuk berkas Driver, lalu node menyimpannya berdasarkan ID kontrak.
Saya menemukan masalah utamanya ada di sisi klien. W3sper saat ini juga mendaftarkan dan menyimpan cache Driver berdasarkan ID kontrak. Issue resmi repositori terbuka menyoroti bahwa di sini masih kurang keterikatan yang kuat antara Driver dan versi atau hash kontrak.
Akibatnya muncul sebuah ketidakcocokan yang sangat ala Dusk: terminal lama terus memakai Driver lama yang tersimpan di cache, sementara terminal baru sudah mengunduh Driver baru. Dua berkas ini bisa sama-sama berasal dari jalur yang sah; keduanya juga tidak menimbulkan error. Namun pada ketinggian yang sama, mereka bisa saja menafsirkan jumlah, peristiwa, bahkan parameter transaksi dengan makna yang berbeda.
Saya paling takut kegagalan seperti ini terjadi saat transaksi. Transaksi yang gagal akan memberi peringatan; tetapi jika data dibaca dengan keliru secara diam-diam, saldo dompet, posisi bot, dan catatan platform data bisa masing-masing menghitung versi mereka sendiri—sampai dana tidak cocok barulah masalah itu terungkap.
Ke depan, saya akan menambahkan metrik untuk penilaian $DUSK . Jumlah kontrak sangat mudah bertambah, sedangkan konsistensi hash Driver jauh lebih bernilai. Dompet arus utama, bursa, dan indexer yang memakai versi Driver mana, berlaku sejak ketinggian berapa, dan kapan versi lama menjadi tidak valid—semuanya seharusnya bisa ditelusuri.
Dusk memisahkan “eksekusi kontrak” dan “interpretasi kontrak” menjadi dua lapis, memberi fleksibilitas, tetapi juga menambah satu lapisan tanggung jawab spesifik: berkas versi asli juga harus membuktikan dirinya tidak sudah kedaluwarsa. Hanya dengan begitu, semua pihak bisa bertransaksi dengan lebih tenang.
$BTC