Insiden Binance yang baru saja diretas kemarin terkait dengan EIP-7702, fitur yang sangat berbahaya dan sudah lama tidak saya suka. Sekalian saya peringatkan kalian.
Biasanya banyak orang berpikir asal private key dirahasiakan dan tidak bocor, semuanya aman, apalagi kalau pakai dompet dingin. Soalnya, setiap kali mau transfer harus mencolokkan perangkat lalu menekan tombol konfirmasi secara fisik. Jadi mereka pikir sehebat apa pun peretas, dia tetap tidak bisa menekan tombol itu untuk mereka.
Tapi kenyataannya, dengan EIP-7702 ini, dompet dingin pun tidak aman. Kira-kira prosesnya begini: kalian membuka sebuah dapp, lalu muncul permintaan tanda tangan untuk meningkatkan dompet atau mengaktifkan fitur tertentu. Kalian colokkan dompet, layarnya kadang cuma menampilkan sederet kode hex yang tidak dipahami, lalu kalian buru-buru menekan konfirmasi. Tanda tangan otorisasi ini bisa membuat alamat dompet kalian menjalankan kode dari sebuah contract.
Kalau contract itu berbahaya, peretas bisa menggunakan dompet kalian sendiri untuk melakukan transfer tanpa perlu kalian menandatangani transaksi apa pun lagi.
Artinya, kalian tetap menyimpan dompet dingin di dalam brankas, seed phrase dijaga begitu rapat sampai kalian sendiri bahkan tidak tahu, tapi uangnya tetap bisa kabur begitu saja. Ibaratnya, kalian mengunci pintu dengan 100 gembok, tapi tetap menandatangani surat kuasa yang memberi orang lain hak penuh untuk mengalihkan kepemilikan rumah.
Yang berbahaya, otorisasi ini bisa bertahan lama. Dulu, kalau salah tanda tangan, yang hilang cuma satu token; tinggal buka beberapa situs revoke dan batalkan, beres. Tapi yang ini izinnya berada di tingkat akun, jadi apa pun yang ada di dompet bisa ditransfer, dan revoke di situs-situs biasa tidak bisa mengatasinya. Kalau mau membatalkan, kalian harus menandatangani authorization EIP-7702 baru yang menunjuk ke alamat 0, lalu mengirimkannya ke blockchain. Singkatnya, kebanyakan orang tidak tahu cara melakukannya.
Itulah alasan saya tidak suka desain ini.
$NEAR $BTC $ETH
Biasanya banyak orang berpikir asal private key dirahasiakan dan tidak bocor, semuanya aman, apalagi kalau pakai dompet dingin. Soalnya, setiap kali mau transfer harus mencolokkan perangkat lalu menekan tombol konfirmasi secara fisik. Jadi mereka pikir sehebat apa pun peretas, dia tetap tidak bisa menekan tombol itu untuk mereka.
Tapi kenyataannya, dengan EIP-7702 ini, dompet dingin pun tidak aman. Kira-kira prosesnya begini: kalian membuka sebuah dapp, lalu muncul permintaan tanda tangan untuk meningkatkan dompet atau mengaktifkan fitur tertentu. Kalian colokkan dompet, layarnya kadang cuma menampilkan sederet kode hex yang tidak dipahami, lalu kalian buru-buru menekan konfirmasi. Tanda tangan otorisasi ini bisa membuat alamat dompet kalian menjalankan kode dari sebuah contract.
Kalau contract itu berbahaya, peretas bisa menggunakan dompet kalian sendiri untuk melakukan transfer tanpa perlu kalian menandatangani transaksi apa pun lagi.
Artinya, kalian tetap menyimpan dompet dingin di dalam brankas, seed phrase dijaga begitu rapat sampai kalian sendiri bahkan tidak tahu, tapi uangnya tetap bisa kabur begitu saja. Ibaratnya, kalian mengunci pintu dengan 100 gembok, tapi tetap menandatangani surat kuasa yang memberi orang lain hak penuh untuk mengalihkan kepemilikan rumah.
Yang berbahaya, otorisasi ini bisa bertahan lama. Dulu, kalau salah tanda tangan, yang hilang cuma satu token; tinggal buka beberapa situs revoke dan batalkan, beres. Tapi yang ini izinnya berada di tingkat akun, jadi apa pun yang ada di dompet bisa ditransfer, dan revoke di situs-situs biasa tidak bisa mengatasinya. Kalau mau membatalkan, kalian harus menandatangani authorization EIP-7702 baru yang menunjuk ke alamat 0, lalu mengirimkannya ke blockchain. Singkatnya, kebanyakan orang tidak tahu cara melakukannya.
Itulah alasan saya tidak suka desain ini.
$NEAR $BTC $ETH
