Apa itu EIP-7702? Cukup satu tanda tangan, dompetmu bisa menjalankan kode milik orang lain?
Beberapa hari ini, setelah pencurian di Binance, banyak orang bertanya tentang EIP-7702. Singkatnya: EIP ini memungkinkan alamat dompet biasa (EOA) dipasangi kode kontrak untuk dijalankan.
Menurut teks resmi spesifikasi Ethereum:
1. Jenis transaksi baru ditambahkan. Transaksi ini menyertakan “daftar otorisasi”.
2. Setiap otorisasi ditandatangani oleh pemilik alamat. Isinya mencakup ID chain, alamat kontrak yang dituju, dan nonce.
3. Setelah otorisasi berlaku, sebuah “penunjuk delegasi” akan ditulis ke alamatmu. Setelah itu, siapa pun yang memanggil alamatmu akan menjalankan kode kontrak tersebut, dan kode itu berjalan atas nama alamatmu.
4. Delegasi ini akan terus tersimpan, bukan hilang setelah dipakai. Jika ingin mencabutnya, kamu harus menandatangani lagi dengan alamat nol sebagai tujuan.
Tujuan awal desain ini sebenarnya baik: melakukan operasi secara massal, meminta orang lain membayar biaya transaksi, dan membatasi izin subkunci.
Namun, spesifikasinya sendiri menyatakannya dengan sangat jelas: kode yang didelegasikan memiliki akses tanpa batas ke akun; aplikasi tidak seharusnya mengandalkan pengguna untuk menandatangani otorisasi seperti ini, dan dompet juga tidak seharusnya menyediakan opsi tersebut; jika kontrak delegasi ditulis dengan buruk, orang lain bisa hampir sepenuhnya mengendalikan alamatmu.
Kembali ke insiden kali ini. Menurut Chainalysis, di Ethereum, penyerang mengirimkan otorisasi dengan tanda tangan yang valid agar sebuah dompet panas Binance menjalankan kode yang diterapkan oleh penyerang, lalu menggunakan dompet itu untuk menguras aset. Belum ada laporan teknis lengkap dari Binance tentang bagaimana tanda tangan otorisasi ini diperoleh. Jangan buru-buru mengambil kesimpulan, dan jangan menyalahkan satu EIP begitu saja.
Terus terang saja: begitu otorisasi semacam ini ditandatangani, aset bisa dikuras hanya dengan satu kali pemanggilan. Saat orang biasa menekan “Konfirmasi”, tidak ada alasan untuk melakukannya tanpa berpikir.
Tiga hal yang bisa kamu periksa sendiri:
1. Jangan tanda tangani permintaan tanda tangan yang tidak kamu pahami, terutama yang bertuliskan “otorisasi”, “delegasi”, atau “upgrade akun”.
2. Percayai hanya penjelasan tanda tangan dari dompet itu sendiri, bukan keterangan di jendela pop-up situs web.
3. Periksa status otorisasi dan delegasi alamat secara berkala. Cabut yang tidak digunakan.
Pernahkah dompetmu menampilkan pemberitahuan seperti “upgrade akun”? Waktu itu kamu menekannya?
#EIP7702 #钱包安全 $ETH