
Table of Contents
Untuk menghapus akses DApp ke token Anda, Anda harus menemukan persetujuan yang dipegangnya dan mencabutnya dalam transaksi on-chain terpisah - memutuskan DApp tidak menghapus izin, dan token Anda tetap terpapar hingga allowance diatur ke 0.
Poin Penting
- Persetujuan hidup on-chain - menutup aplikasi atau sesi WalletConnect tidak mengubah apa pun; izin pengeluaran tetap aktif hingga Anda mencabutnya.
- Persetujuan unlimited meningkatkan kerusakan - satu izin unlimited memungkinkan contract menghabiskan seluruh saldo token saat ini dan masa depan.
- Mencabut mencegah pengeluaran masa depan, bukan pencurian masa lalu - mereset allowance memblokir transfer baru tetapi tidak dapat memulihkan aset yang sudah dipindahkan drainer.
Apa Itu Persetujuan Token DApp?
Persetujuan token DApp adalah izin yang diberikan pemilik dompet kepada smart contract untuk menghabiskan token tertentu hingga jumlah yang ditetapkan. Tanpa persetujuan itu, exchange terdesentralisasi, pasar pinjaman, atau DApp lainnya tidak dapat memindahkan token Anda - persetujuan adalah yang memungkinkannya swap, stake, atau mentransfernya atas nama Anda saat Anda berinteraksi dengannya.
Smart contract adalah program berbasis blockchain yang secara otomatis melakukan tindakan ketika kondisi yang telah ditentukan terpenuhi.
Cara Kerja Persetujuan Token DApp
Persetujuan token mengikuti urutan tetap: Anda menghubungkan dompet Anda ke DApp, DApp meminta persetujuan, dicatat on-chain, dan sejak saat itu DApp melakukan tindakan yang disetujui tanpa meminta lagi. Beginilah cara DApp terkenal seperti Aave dan Uniswap bekerja. Karena izin hidup di blockchain dan bukan di sesi aplikasi, izin tetap berlaku lama setelah Anda berhenti menggunakan DApp.
Persetujuan datang dalam beberapa bentuk berbeda:
- Limited Approval: DApp hanya dapat menghabiskan jumlah yang Anda tetapkan, misalnya 500 USDC, dan harus meminta persetujuan baru untuk menghabiskan lebih banyak.
- Unlimited Approval: DApp dapat menghabiskan jumlah berapa pun dari token yang dipilih, termasuk token yang tiba di dompet Anda nanti.
- Token Approval: Smart contract menerima izin untuk mengelola token fungible tertentu, seperti USDC atau USDT.
- NFT Approval: Izin dapat mencakup satu NFT atau seluruh koleksi, misalnya melalui
setApprovalForAll.
Persetujuan token tidak mengungkapkan secret phrase Anda atau memberi DApp akses tidak terbatas ke seluruh dompet. Ini hanya berlaku untuk token, NFT, jumlah, dan smart contract yang disetujui.
Kapan Pengguna Dompet Crypto Memberikan Persetujuan Token?
Persetujuan token muncul selama tindakan DeFi sehari-hari: swap token, pinjaman, staking, dan penjualan NFT. Mereka dapat tetap aktif setelah tindakan selesai atau DApp diputuskan.
Swap Token di DEX: Katakanlah Anda swap USDC untuk ETH di Uniswap - pertama Anda menyetujui contract Permit2 (manajer izin oleh Uniswap Labs) untuk menggunakan USDC. Persetujuan unlimited dapat tetap aktif setelah swap selesai atau dibatalkan.
Memasok Token ke Protokol Pinjaman: Untuk meminjamkan USDT di Aave, Anda menyetujui contract Aave Pool untuk memindahkan token keluar dari dompet. Allowance yang tidak digunakan dapat tetap ada setelah deposit ditarik atau DApp diputuskan.
Staking Token Melalui DApp: Saat staking melalui Aave Umbrella, Anda menyetujui contract staking untuk memindahkan token yang dipilih ke dalam pool. Jika persetujuan melebihi deposit, allowance yang tersisa dapat terus bekerja setelah Anda keluar dari staking.
Listing NFT untuk Dijual: List NFT di OpenSea dan marketplace mungkin meminta akses ke satu NFT atau seluruh koleksi melalui setApprovalForAll. Persetujuan seluruh koleksi tetap berlaku hingga pengguna mencabutnya dalam transaksi terpisah.
Klaim Token Dari Airdrop: Situs airdrop palsu dapat menyembunyikan persetujuan unlimited atau tanda tangan Permit di balik tombol Claim biasa. Setelah Anda konfirmasi, wallet drainer dapat memindahkan token atau NFT yang disetujui tanpa permintaan baru di dompet.
Apa Risiko Persetujuan Token?
Bahayanya bukan persetujuan itu sendiri tetapi apa yang bisa berubah seiring waktu. Tiga risiko paling penting:
- Unlimited Allowance: Contract dapat menghabiskan seluruh saldo token yang disetujui saat ini dan masa depan, bukan hanya jumlah yang Anda maksudkan untuk digunakan.
- Lingering Approval: Izin terus bekerja selama berbulan-bulan atau bertahun-tahun setelah Anda terakhir menyentuh DApp, jadi persetujuan yang terlupakan tetap dapat dieksploitasi.
- Compromised Contract: Bahkan DApp yang sah dapat diretas setelah Anda memberikan persetujuan, menyerahkan akses yang sudah Anda tandatangani kepada penyerang.
Apa Itu Crypto Wallet Drainer?
Crypto wallet drainer adalah alat berbahaya yang menggunakan situs phishing atau DApp palsu untuk menipu Anda agar memberikan izin untuk mentransfer token atau NFT Anda. Alih-alih menebak secret phrase Anda, drainer membuat Anda menandatangani akses secara sukarela, lalu menggunakannya untuk memindahkan aset Anda yang paling berharga. Drainer adalah ancaman besar dan aktif: mereka mencuri $494 juta dari sekitar 332.000 alamat dompet pada tahun 2024, naik 67% dari tahun sebelumnya (Scam Sniffer, 2024).
Cara Wallet Drainer Mengeksploitasi Persetujuan Token
Serangan drainer biasanya berjalan melalui rantai langkah yang dapat diprediksi:
- Pengguna mendarat di situs mint, airdrop, atau investasi palsu.
- Situs meminta pengguna untuk menghubungkan dompet mereka.
- Pengguna menandatangani persetujuan atau tanda tangan permit.
- Drainer memindai dompet dan mengidentifikasi aset paling berharga.
- Token atau NFT yang disetujui ditransfer keluar tanpa konfirmasi baru.
Menghubungkan dompet saja tidak memungkinkan siapa pun memindahkan aset Anda - bahaya dimulai hanya setelah Anda menandatangani persetujuan atau transaksi berbahaya. Tanda tangan tunggal itu adalah garis antara koneksi yang tidak berbahaya dan dompet yang terkuras.
Mengapa Memutuskan DApp Tidak Mencabut Persetujuannya
Memutuskan dan mencabut adalah dua tindakan berbeda, dan hanya satu dari mereka yang menghapus izin pengeluaran contract. Memutuskan menutup antarmuka antara dompet Anda dan DApp; persetujuan tetap hidup on-chain.
| Tindakan | Apa yang Dilakukan | Apa yang Tetap Aktif |
|---|---|---|
| Disconnect | Menutup koneksi antara dompet dan antarmuka DApp | Persetujuan on-chain yang sebelumnya diberikan |
| Revoke | Menghapus atau mereset izin pengeluaran smart contract | DApp harus meminta persetujuan baru untuk mengakses token lagi |
Untuk menunjukkan perbedaannya, kami menghubungkan Gem Wallet ke DApp sah Uniswap dan memberikan persetujuan unlimited Permit2 pada USDC. Setelah memutuskan Uniswap, tidak ada sesi WalletConnect aktif yang tersisa, tetapi Revoke.cash masih menunjukkan persetujuan dengan saldo USDC penuh sebagai nilai yang berisiko. Memutuskan hanya menutup koneksi ke DApp - persetujuan on-chain tetap ada hingga transaksi pencabutan terpisah.
Setujui di Uniswap, putuskan DApp - dan persetujuan masih aktif on-chain di Gem Wallet.
Cara Mencabut Persetujuan Token DApp: Langkah demi Langkah
Mencabut persetujuan membutuhkan beberapa menit. Berikut seluruh proses secara sekilas:
- Buka approval checker.
- Masukkan alamat dompet Anda.
- Pilih blockchain.
- Tinjau persetujuan aktif.
- Cabut atau kurangi allowance.
- Konfirmasi transaksi.
- Verifikasi hasilnya.
Mari kita bahas setiap langkah secara detail.
Langkah 1: Buka Approval Checker Terpercaya
Buka approval checker seperti Revoke.cash atau Etherscan Token Approval Checker, dan ketik alamat sendiri daripada mengikuti link. Salinan phishing dari alat ini ada, jadi periksa ulang domain sebelum menghubungkan apa pun.
Langkah 2: Masukkan Alamat Dompet Crypto Anda
Mulai dalam mode read-only dengan menempelkan alamat dompet publik Anda - ini memungkinkan Anda melihat setiap persetujuan aktif tanpa menghubungkan atau menandatangani. Menghubungkan melalui WalletConnect hanya diperlukan setelah Anda siap untuk mencabut.
Langkah 3: Pilih Blockchain yang Benar
Pilih jaringan di mana persetujuan diberikan, karena setiap chain menyimpan persetujuannya sendiri. Ethereum, BNB Chain, Polygon, Base, dan jaringan lain harus diperiksa secara terpisah - persetujuan di satu chain tidak terlihat di chain lain.
Langkah 4: Tinjau Spender dan Allowance
Untuk setiap entri, periksa token, smart contract (spender), jumlah yang disetujui, tanggal diberikan, dan nilai yang berisiko. Spender yang tidak dikenal atau jumlah unlimited pada token yang Anda pegang adalah tanda paling jelas bahwa persetujuan harus dihapus.
Langkah 5: Cabut atau Kurangi Persetujuan Token
Hapus persetujuan yang tidak lagi Anda perlukan sepenuhnya, atau kurangi allowance ke jumlah yang sebenarnya Anda rencanakan untuk digunakan. Mengetuk Revoke membangun transaksi yang mereset allowance pengeluaran untuk contract itu ke 0.
Langkah 6: Konfirmasi Transaksi di Dompet Anda
Permintaan terbuka di dompet Anda, seperti Gem Wallet, melalui WalletConnect. Sebelum Anda konfirmasi, periksa bahwa:
- Amount: Allowance yang disetujui berubah menjadi 0 USDC.
- Contract: USDC.
- Method: Approve.
- Spender: Permit2.
- Network: Ethereum.
Mengonfirmasi memerlukan biaya jaringan (misalnya ETH), karena ini adalah transaksi on-chain yang benar-benar menghapus izin. Setujui di Gem Wallet untuk mengirimnya.
Langkah 7: Verifikasi Bahwa Persetujuan Telah Dihapus
Muat ulang Revoke.cash dan konfirmasi persetujuan hilang atau jumlahnya telah berubah. Dalam pengujian kami, dashboard diperbarui menjadi 0 persetujuan, nilai $0 yang berisiko, dan daftar persetujuan kosong - bukti bahwa contract tidak lagi dapat menghabiskan USDC hingga meminta lagi.
Ketuk Revoke, konfirmasi allowance 0 USDC di Gem Wallet, dan verifikasi persetujuan hilang.
Persetujuan Token Mana yang Harus Anda Cabut?
Tidak setiap persetujuan perlu dihapus, tetapi beberapa adalah kandidat yang jelas. Cabut persetujuan ketika:
- DApp Tidak Digunakan: Anda tidak lagi menggunakan DApp yang memegangnya.
- Spender Tidak Dikenal: Anda tidak mengenali contract spender.
- Jumlah Unlimited: Persetujuan diberikan untuk jumlah unlimited.
- Listing NFT Lama: Izin terkait dengan listing NFT yang telah Anda tutup.
- Hack yang Dilaporkan: Proyek telah mengungkapkan hack atau exploit.
- Sumber Mencurigakan: Persetujuan muncul setelah mint atau airdrop yang meragukan.
- Alasan Terlupakan: Anda tidak dapat mengingat mengapa Anda memberikannya.
Apa yang Harus Dilakukan Jika Dompet Crypto Anda Sudah Terkuras
Cabut setiap persetujuan aktif segera: mencabut menghentikan pengeluaran lebih lanjut tetapi tidak akan memulihkan aset yang sudah dicuri. Jika secret phrase atau private key Anda terpapar, buat dompet baru di perangkat bersih dan pindahkan dana yang tersisa ke sana. Jika sweeper bot memantau alamat, jangan kirim gas ke alamat yang dikompromikan tanpa rencana penyelamatan aset terpisah.
Cara Menggunakan DApp Tanpa Terkuras
Mencabut membersihkan izin yang sudah Anda berikan - tetapi kebiasaan yang lebih aman adalah menangkap persetujuan berisiko sebelum Anda menandatanganinya. Beberapa aturan mencakup sebagian besar kasus:
- Verifikasi Domain: Periksa URL DApp yang tepat sebelum menghubungkan.
- Abaikan Umpan Persetujuan: Jangan tanda tangani persetujuan yang tidak jelas hanya untuk klaim airdrop.
- Batasi Jumlah: Batasi jumlah yang disetujui alih-alih memberikan unlimited.
- Perhatikan setApprovalForAll: Perlakukan izin NFT seluruh koleksi dengan ekstra hati-hati.
- Periksa Spender: Konfirmasi alamat spender milik protokol asli.
- Bersihkan Secara Teratur: Hapus persetujuan lama sesuai jadwal.
- Isolasi Risiko: Gunakan dompet terpisah untuk DApp baru dan tidak terpercaya.
Gunakan DApp di lebih dari 100 blockchain dengan Gem Wallet - dompet open-source penuh, self-custody yang menyimpan private key di perangkat Anda dan tidak mengumpulkan data pribadi. Download Gem Wallet dan hubungkan ke aplikasi yang kompatibel dengan WalletConnect sambil menjaga kontrol penuh atas kunci Anda.


