Saya masuk ke kontrak migrasi Dusk dengan mengharapkan eksploitasi Solidity. Namun, yang saya temukan justru sesuatu yang lebih menarik.

Kontraknya sendiri sederhana: pengguna mengunci ERC-20 DUSK, dan peristiwa "Locked" dipancarkan.

Kekuatan sesungguhnya berada di luar rantai (off-chain).

Sebuah pendengar backend memantau peristiwa itu dan memicu sebuah wallet penandatanganan untuk menerbitkan DUSK asli (native). Artinya, kontrak tidak benar-benar menyelesaikan migrasi—proses backend dan kuncinya-lah yang melakukannya.

Insiden 16 Januari menunjukkan risikonya. Seorang penyerang pertama kali menguji sistem dengan 7.880 DUSK, lalu memindahkan 1,91M DUSK. Transfer ketiga sebesar 8,91M hanya dihentikan setelah layanan penandatanganan dimatikan.

Kontraknya tidak rusak. Yang rusak adalah operasinya.

Redesain—memisahkan listener, signer, database, dan job queue—adalah peningkatan yang berarti, tetapi tidak menghapus kepercayaan (trust). Kepercayaan hanya dipindahkan ke infrastruktur di sekitar kontrak.

Itu mengubah cara saya memikirkan jembatan (bridges):

Sebuah jembatan bukan cuma smart contract. Itu adalah seluruh proses yang mengubah peristiwa on-chain menjadi otorisasi off-chain.

Kadang-kadang kerentanan paling menakutkan bukan ada di Solidity.

Melainkan skrip yang berjalan diam-diam di latar belakang dengan sebuah private key.

@Dusk_Foundation #dusk $DUSK