Mengapa Dompet Anda Menampilkan Transfer yang Tidak Pernah Anda Kirim: Transaksi Bernilai Nol dan Peracunan Alamat
Transaksi keluar yang tidak dikenal tidak otomatis berarti dompet Anda diretas. Pelajari apa yang sebenarnya dibuktikan oleh catatan bernilai nol, alamat yang mirip, dan perpindahan aset sungguhan.
Apa yang dibuktikan entri ini tentang dompet saya?
Jika riwayat Anda tiba-tiba menyatakan bahwa Anda mengirim 0 USDT ke alamat asing, entri itu sendiri tidak membuktikan bahwa seseorang mengakses kunci privat Anda. Pihak ketiga dapat membuat catatan transfer token bernilai nol tertentu yang mencantumkan alamat Anda tanpa tanda tangan atau izin Anda untuk membelanjakan jumlah di atas nol. Catatan itu dapat ada di blockchain meskipun Anda tidak pernah memulainya.
Pertanyaan yang lebih tepat adalah: Aset apa ini? Berapa jumlah yang benar-benar berpindah? Siapa yang mengirimkan transaksi? Apa yang mengizinkan pengeluaran sungguhan?
- Peristiwa token berjumlah nol tidak membuktikan bahwa Anda menandatangani atau membelanjakan apa pun. Untuk token asli, jumlah tepat nol berarti transfer tersebut tidak memindahkan token.
- Transfer dengan nama token yang dikenal tidak memastikan identitas aset. Kontrak yang tidak terkait dapat menggunakan nama dan simbol yang sama.
- Pembayaran masuk yang sangat kecil dapat sungguhan, sambil menyisipkan alamat pengirim yang menyesatkan dalam riwayat Anda.
- Perpindahan keluar aset asli yang terkonfirmasi tetapi tidak dapat dijelaskan perlu diselidiki. Jangan mengabaikannya hanya karena kolom lain menunjukkan nol.
Panduan ini membahas Ethereum, BNB Smart Chain (BSC), dan jaringan serupa yang memakai kontrak token bergaya Ethereum. Contohnya sengaja disederhanakan dan direka, bukan tangkapan layar ataupun temuan tentang dompet tertentu.
Pertama, tentukan kolom mana yang menunjukkan nol
Istilah transaksi bernilai nol digunakan untuk beberapa hal berbeda. Hanya salah satu tampilan berikut berarti jumlah token adalah nol:
- Jumlah token: 0 USDC. Untuk kontrak USDC asli, jumlah tepat nol berarti transfer tersebut tidak memindahkan USDC.
- Nilai transaksi: 0 ETH. Tidak ada ETH yang disertakan dalam transaksi utama. Token tetap dapat berpindah, dan tindakan kontrak tetap dapat dijalankan.
- Perkiraan nilai: $0.00. Antarmuka menunjukkan nilai dalam mata uang fiat. Ini tidak menentukan jumlah token.
Di BSC, kolom koin asli biasanya memakai BNB, bukan ETH. Interaksi kontrak dengan nilai koin asli nol tetap dapat mentransfer token, mengubah izin pengeluaran, atau memicu operasi lain. Nilai koin asli terpisah dari data input transaksi.
Jumlah positif yang kecil dapat dibulatkan menjadi $0.00. Aset tanpa harga yang andal juga mungkin menampilkan nilai fiat yang tidak berguna. Tampilkan jumlah token hingga presisi penuh; bahkan jumlah token yang ditampilkan sebagai 0.00 mungkin menyembunyikan jumlah positif yang lebih kecil. Perubahan valuasi portofolio bukan catatan yang andal mengenai unit yang masuk atau keluar akun.
Nol merupakan jumlah token yang diperbolehkan, sehingga angka nol saja tidak membuktikan adanya serangan. Alamat yang mirip dan rincian pembayaran yang disalin merupakan petunjuk untuk diselidiki.
Mengapa dua kolom From bisa berbeda
Riwayat dompet dapat menggabungkan informasi dari beberapa lapisan:
- Transaksi: instruksi bertanda tangan yang dikirim ke jaringan. Untuk transaksi Ethereum konvensional, kolom From utama menunjukkan akun penanda tangan.
- Peristiwa token: catatan yang diterbitkan kontrak saat eksekusi. Peristiwa Transfer mempunyai kolom From, To, dan jumlah sendiri.
- Baris riwayat: cara dompet atau penjelajah blockchain menampilkan informasi tersebut. Baris dapat diberi label OUT karena peristiwa mencantumkan alamat Anda sebagai pengirim.
Kedua kolom From tersebut tidak dapat dipertukarkan. Kemunculan alamat Anda dalam peristiwa bukanlah tanda tangan dompet Anda. Kontrak berbahaya dapat mencantumkan alamat Anda dalam data peristiwa, tetapi itu tidak membuat log-nya berasal dari kontrak token asli. Karena itu, kontrak penerbit merupakan bukti penting.
Demikian pula, hash transaksi mengidentifikasi suatu transaksi; bukan membuktikan persetujuan Anda. Transaksi yang masuk blok dan berstatus Success menunjukkan eksekusi luarnya tidak dibatalkan. Status itu bukan pengesahan atas token, penerima, atau tujuannya.
Lima contoh riwayat transaksi dengan penjelasan
Contoh 1: Transfer keluar nol token yang tidak pernah Anda tandatangani
Entri riwayat: OUT · 0 USDC · Dari alamat Anda ke alamat asing yang mirip.
- From transaksi: akun lain yang tidak terkait mengirimkan transaksi.
- From peristiwa token: peristiwa mencantumkan alamat Anda.
- Kontrak token penerbit: kontrak USDC asli di jaringan ini.
- Jumlah token sebenarnya: nol.
Apa yang dibuktikan: kontrak token asli mencatat transfer nol token yang menyebut alamat Anda. Transfer itu tidak memindahkan USDC. Ini tidak membuktikan dompet Anda menandatangani transaksi, bahwa pemanggil berizin membelanjakan jumlah positif, atau bahwa kunci Anda dicuri.
Bagaimana ini terjadi: ERC-20, standar token umum, mewajibkan transfer berjumlah nol menghasilkan peristiwa Transfer. Dalam implementasi lazim, fungsi transfer terdelegasi, transferFrom, memeriksa apakah jumlah yang diminta melebihi allowance pemanggil. Nol tidak melebihi allowance nol. Bergantung pada aturan kontrak lainnya, pemanggilan dapat berhasil tanpa persetujuan sebelumnya.
Hal ini tidak berlaku mutlak untuk semua token. Masing-masing kontrak dapat memberlakukan pembatasan tambahan.
Yang perlu diperiksa berikutnya: periksa seluruh bagian transaksi. Baris nol hanya menjelaskan baris itu; operasi lain dapat menghasilkan efek berbeda. Jika ini hanya catatan peracunan terpisah tanpa pengeluaran mencurigakan atau perubahan izin, tindakan tepat adalah menghindari alamat yang ditanamkan, bukan langsung menganggap dompet harus diganti.
Contoh 2: Transaksi palsu yang menampilkan jumlah token besar
Entri riwayat: OUT · 2,500 USDC · Dari alamat Anda ke alamat asing.
- Simbol token yang ditampilkan: USDC.
- Kontrak penerbit: kontrak lain yang tidak terkait, bukan USDC asli.
- Jumlah peristiwa yang dilaporkan: 2,500.
- Perpindahan USDC asli dalam transaksi ini: tidak ada.
Apa yang dibuktikan: kontrak lain menerbitkan catatan yang ditampilkan dengan label USDC. Ini tidak membuktikan bahwa 2,500 USDC asli keluar dari akun Anda.
Transaksi palsu di dompet dapat berupa data blockchain sungguhan yang ditafsirkan secara menyesatkan. Penyerang dapat menyalin nama dan simbol token lalu menerbitkan peristiwa mirip pembayaran Anda sebelumnya, termasuk jumlahnya. Kontrak nonstandar juga dapat menghasilkan catatan transfer yang tidak sesuai dengan perubahan saldonya sendiri.
Yang perlu diperiksa berikutnya: identifikasi jaringan dan alamat kontrak persis yang menerbitkan peristiwa. Bandingkan alamat itu dengan informasi kontrak penerbit resmi untuk jaringan tersebut yang diperoleh secara independen. Ticker, logo, atau label verifikasi kode sumber yang dikenal tidak cukup untuk memastikan identitas penerbit.
Contoh 3: Pembayaran sungguhan yang sangat kecil dari alamat mirip
Entri riwayat: IN · 0.000001 USDC · Dari alamat asing ke alamat Anda.
Misalkan kontrak token asli mengonfirmasi transfer dan saldo token Anda bertambah sebesar jumlah yang sangat kecil itu. Dalam kasus ini, token asli benar-benar diterima. Untuk menerimanya Anda tidak perlu menyetujui pengirim, dan penerimaan itu tidak memberi pengirim wewenang membelanjakan dana.
Jebakannya ada pada alamat. Perhatikan contoh rekaan ini, yang dikelompokkan dengan spasi agar setiap karakter terlihat. Alamat sebenarnya tidak memiliki spasi; kelompok tengah yang ditebalkan berbeda:
Penerima terverifikasi: 0x7a2f 1111 2222 3333 4444 5555 6666 7777 8888 9c4d
Alamat yang ditanamkan: 0x7a2f aaaa bbbb cccc dddd eeee ffff 0000 1111 9c4d
Antarmuka yang hanya menampilkan awal dan akhir dapat menampilkan keduanya sebagai 0x7a2f...9c4d.
Apa yang dibuktikan: seseorang mengirimkan sejumlah kecil dana kepada Anda dari alamat tersebut. Ini tidak membuktikan pengirim adalah penerima langganan Anda atau akun yang Anda kendalikan. Karakter terlihat yang sama tidak membuktikan kepemilikan.
Yang perlu diperiksa berikutnya: ambil alamat tujuan yang dimaksud dari kontak yang diverifikasi secara terpisah atau halaman akun tepercaya milik penerima. Bandingkan alamat lengkap. Peracunan alamat berupaya mengubah entri riwayat yang ditanam menjadi alamat yang Anda pilih untuk pembayaran nanti. Kerugian dapat terjadi belakangan ketika Anda mengizinkan transfer yang sepenuhnya sah ke tujuan salah.
Contoh 4: ETH nol, tetapi 2,500 token asli keluar
Header transaksi: Value · 0 ETH.
- Nilai koin asli yang disertakan pada pemanggilan: 0 ETH.
- Transfer token asli: 2,500 USDC dari alamat Anda.
- Perubahan saldo USDC akibat transaksi ini: berkurang 2,500 USDC.
- Status eksekusi: Success.
Apa yang dibuktikan: USDC asli keluar dalam contoh ini. Nol menunjukkan jumlah ETH yang disertakan pada pemanggilan. Itu tidak menjelaskan transfer USDC atau meniadakan biaya gas.
Yang masih belum diketahui: mengapa pembayaran terjadi dan apakah Anda menginginkannya. Pembayaran dapat terkait pertukaran, setoran, operasi terjadwal, pembayaran ke alamat salah, atau pengeluaran tanpa izin. Cocokkan dengan tindakan yang Anda lakukan dan tujuan yang Anda maksud sebelum menggolongkannya.
Contoh 5: Token asli keluar, tetapi akun lain mengirimkan transaksi
Entri riwayat: OUT · 500 USDC asli · Tujuan tidak dikenal.
Anggap transaksi berhasil mengurangi saldo USDC asli Anda sebanyak 500, tetapi kolom From utama menyebut orang lain.
Apa yang dibuktikan: token berpindah. Pengirim transaksi yang berbeda tidak menjadikan perpindahan itu palsu.
Pihak yang sebelumnya diberi persetujuan dapat menggunakan allowance token tanpa meminta Anda menandatangani transaksi baru setiap penarikan. Beberapa token juga mendukung tanda tangan permit, yang mengizinkan allowance melalui pesan bertanda tangan yang dapat dikirim pihak lain. Akun pintar dan dompet terdelegasi memperkenalkan cara lain agar pihak lain mengirim operasi yang telah diizinkan.
Yang perlu diperiksa berikutnya: periksa pihak yang boleh membelanjakan, allowance atau izin bertanda tangan yang relevan, dan operasi dompet. Jika pengurangan saldo tetap tidak terjelaskan, perlakukan sebagai insiden keamanan. Bukti mungkin mengarah pada persetujuan berbahaya, tanda tangan yang menipu, atau kendali akun yang dibobol; baris itu sendiri tidak membedakannya.
Untuk transaksi biasa yang ditandatangani secara langsung, alamat Anda dalam kolom From utama merupakan bukti tanda tangan valid untuk akun tersebut. Namun, itu tidak membuktikan bahwa Anda memahami tindakan, bermaksud mengirim ke penerima itu, atau memulainya sendiri. Kolom From peristiwa token memberikan bukti yang jauh lebih lemah.
Apa yang sebenarnya diukur oleh 270 juta upaya peracunan
Analisis aktivitas Ethereum dan BSC selama dua tahun, dari 1 Juli 2022 hingga 30 Juni 2024, menemukan sekitar 270 juta catatan transfer peracunan yang menargetkan 17 juta alamat.
Catatan tersebut terbagi menjadi tiga kategori:
- 147.7 juta transfer bernilai nol.
- 118.4 juta transfer token palsu.
- 4.0 juta transfer dalam jumlah sangat kecil.
Semua itu merupakan catatan transfer di dalam sekitar 18.2 juta transaksi, karena penyerang dapat menggabungkan beberapa catatan. Alamat yang ditargetkan tidak sama dengan jumlah orang, dompet yang dibobol, atau korban yang kehilangan uang.
Analisis mengidentifikasi 6,633 transfer pembayaran kepada penyerang yang berhasil, berjumlah setidaknya $83.8 juta. Beberapa korban membayar lebih dari sekali. Deteksi berfokus pada stablecoin tertentu, sehingga estimasi kerugian itu merupakan batas bawah dalam cakupannya, bukan jumlah keseluruhan untuk semua token atau chain.
Implikasi praktisnya: hanya memeriksa jumlah nol akan melewatkan sebagian besar serangan. Entri palsu dapat meniru pembayaran yang berarti, dan transfer masuk sangat kecil dapat memindahkan token asli sambil memperkenalkan alamat berbahaya.
Cara memeriksa entri Anda
- Buka transaksi di jaringan yang benar. Gunakan opsi penjelajah pada dompet atau penjelajah dikenal seperti Etherscan atau BscScan. Periksa status transaksi. Membaca detail transaksi publik tidak membutuhkan koneksi dompet, persetujuan token, tanda tangan pesan, atau memasukkan frasa pemulihan.
- Identifikasi aset yang sebenarnya. Bedakan ETH atau BNB asli dari token yang memakai nama tersebut. Untuk token, periksa jaringan dan kontrak penerbit yang tepat terhadap referensi penerbit tepercaya.
- Baca jumlah dengan presisi penuh. Pisahkan jumlah token, nilai transaksi dalam koin asli, dan perkiraan nilai fiat.
- Bedakan pengirim transaksi dari pengirim peristiwa. Untuk akun pintar, periksa juga operasi dompet dan izinnya. Orang lain yang membayar gas bukan bukti bahwa aset Anda tidak bisa berpindah.
- Tinjau seluruh transaksi. Periksa semua perpindahan token, transfer koin asli, dan perubahan izin yang relevan. Jika penjelajah menyediakan perubahan saldo per transaksi, gunakan untuk mencocokkan hasilnya. Saldo hari ini yang tidak berubah adalah bukti yang lebih lemah: setoran belakangan atau transfer pengimbang dapat menyembunyikan perpindahan sebelumnya.
- Verifikasi tujuan secara independen. Gunakan detail pembayaran tepercaya dari penerima atau entri buku alamat yang sebelumnya Anda verifikasi. Baris riwayat terbaru merupakan bukti untuk diperiksa, bukan bukti tujuan yang benar.
Jika penjelajah tidak memperjelas hasilnya, berikan jaringan dan hash transaksi publik kepada tim dukungan resmi penyedia dompet. Jelaskan tindakan yang Anda harapkan, jika ada. Detail tersebut membantu membedakan operasi yang asing tetapi memang dimaksudkan dari pengeluaran tidak terjelaskan, tanpa membocorkan rahasia yang mengendalikan dompet.
Apa yang harus dilakukan setelah pemeriksaan
Jika Anda hanya menemukan satu catatan peracunan terpisah
Sembunyikan atau laporkan spam jika dompet mendukungnya, dan hindari alamatnya. Menyembunyikan baris hanya mengubah antarmuka; tidak menghapus riwayat blockchain atau mencabut izin.
Transfer nol dapat terjadi dengan allowance nol, jadi catatan itu sendiri bukan alasan mencabut semua persetujuan atau memindahkan seluruh dana. Bisa jadi tidak ada izin pengeluaran terkait catatan tersebut yang perlu dihapus. Jangan gunakan situs yang diiklankan suatu token atau tautan pemulihan dari orang asing untuk “membersihkan” dompet.
Jika Anda menemukan izin pengeluaran yang mencurigakan
Gunakan jalur pengelolaan persetujuan tepercaya di dompet untuk meninjau dan mencabut allowance terkait. Memutus koneksi situs web dari dompet tidak mencabut persetujuan token on-chain yang sudah ada. Pencabutan menangani izin tersebut; tidak dapat memperbaiki kunci privat yang dicuri.
Jika aset asli berpindah tanpa sepengetahuan Anda
Simpan hash transaksi, jaringan, aset yang terdampak, dan alamat terkait. Tinjau tanda tangan, persetujuan, dan operasi dompet terbaru melalui saluran dukungan resmi.
Jika ada bukti bahwa frasa pemulihan atau kunci privat Anda terekspos, buat dompet baru dengan frasa pemulihan baru di perangkat tepercaya dan ikuti rencana cermat untuk memindahkan sisa aset. Akun lain yang berasal dari frasa yang bocor tidak mengatasi paparan itu. Jika dana hilang secara otomatis, jangan terus menambahkan uang gas: program penyapu dapat mengambilnya.
Jika Anda sadar telah menandatangani pembayaran tetapi menyalin tujuan yang diracuni, dokumentasikan perbedaannya. Pembayaran mungkin telah ditandatangani dan dieksekusi dengan benar tetapi sampai kepada penerima salah. Hasil tersebut sendiri tidak membuktikan bahwa kunci privat Anda dicuri.
Pertanyaan umum tentang transaksi tidak dikenal
Apakah penyerang membuat saya membayar gas?
Dalam skenario peracunan biasa, penyerang mengirim transaksi dan membayar biaya jaringannya. Sekadar mencantumkan alamat Anda dalam peristiwa token tidak membebani akun Anda. Namun, transaksi bersponsor dan akun pintar berarti pembayar biaya saja tidak dapat memastikan operasi tidak berbahaya. Periksa dampak sebenarnya.
Bagaimana jika transaksi gagal?
Transfer token yang dibatalkan tidak menyelesaikan transfer tersebut, meskipun gas mungkin tetap ditagihkan. Jika dompet menggunakan delegasi akun, periksa secara terpisah: Ethereum dapat mempertahankan delegasi meski eksekusi berikutnya gagal. Delegasi yang tidak dikenal perlu ditinjau.
Apakah dompet perangkat keras dapat mencegah peracunan alamat?
Dompet perangkat keras menyediakan tempat tambahan untuk memeriksa tujuan sebelum menandatangani. Dompet itu tidak dapat membuat tujuan yang dikendalikan penyerang menjadi benar apabila Anda menyetujuinya. Bandingkan alamat lengkap pada layar penandatanganan tepercaya dengan detail penerima yang diverifikasi secara independen.
Dapatkah saya mencegah orang asing menambahkan entri tersebut?
Umumnya Anda tidak dapat mencegah pihak ketiga mengirim aset atau menghasilkan catatan yang berlaku bagi alamat publik. Filter dompet dan penjelajah dapat mengurangi yang Anda lihat. Simpan penerima terverifikasi dan periksa alamat tujuan lengkap sebelum membayar; hanya menyembunyikan entri bernilai nol tidak dapat mendeteksi semua varian token palsu atau transfer sangat kecil.
