PENJELASAN PERSETUJUAN TOKEN
Pelajari apa itu persetujuan token (tunjangan), tujuannya dalam aplikasi terdesentralisasi, dan bagaimana hal itu dapat disalahgunakan oleh pelaku kejahatan
Apa Itu Persetujuan Token?
Persetujuan token, juga dikenal sebagai alokasi token, merujuk pada mekanisme izin dalam ekosistem Ethereum dan jaringan blockchain lain yang mengikuti arsitektur serupa, seperti Binance Smart Chain atau Polygon. Fitur ini memungkinkan aplikasi terdesentralisasi (DApps) untuk berinteraksi dengan token pengguna tanpa perlu menyetujui setiap transaksi secara individual.
Pada intinya, persetujuan token diimplementasikan melalui standar ERC-20, yang mengatur token yang dapat dipertukarkan. Ketika pengguna ingin berinteraksi dengan kontrak pintar—seperti melakukan pertukaran token, mempertaruhkan aset dalam kumpulan yield farming, atau menyediakan likuiditas—mereka harus memberikan izin kepada kontrak pintar tersebut untuk memindahkan sejumlah token mereka. Hal ini penting karena memungkinkan protokol non-kustodian beroperasi secara otonom, namun tetap memerlukan persetujuan eksplisit dari pengguna.
Cara Kerja Persetujuan Token
Berikut adalah rincian dasar tentang cara kerja alokasi token:
- Seorang pengguna memiliki Token A di dompet mereka.
- Mereka ingin menggunakan DApp (misalnya, bursa terdesentralisasi seperti Uniswap) yang memerlukan Token A untuk transaksi tertentu.
- Sebelum menyelesaikan transaksi, DApp akan meminta pengguna untuk menyetujui alokasi. Ini akan memanggil fungsi
approve()pada kontrak pintar token. - Melalui fungsi ini, pengguna mengizinkan kontrak pintar DApp untuk membelanjakan sejumlah Token A atas nama mereka.
Persetujuan sangat penting karena dompet Ethereum dan protokol blockchain dirancang untuk melindungi aset pengguna. Tanpa persetujuan, setiap pergerakan token harus ditandatangani dan diotorisasi secara manual oleh pengguna, sehingga pengalaman pengguna menjadi sangat rumit, terutama dalam operasi kompleks yang melibatkan banyak transaksi.
Persetujuan Berkelanjutan
Yang penting, persetujuan token akan tetap berlaku di rantai hingga dicabut. Setelah kontrak pintar diotorisasi, kontrak pintar tersebut dapat mengakses token yang diberikan kapan saja, tanpa konfirmasi pengguna tambahan—hingga batas yang disetujui. Beberapa protokol meminta "persetujuan tak terbatas" demi kenyamanan, yang memungkinkan kontrak pintar beroperasi tanpa transaksi persetujuan di masa mendatang. Meskipun ramah pengguna, praktik ini menimbulkan potensi risiko jika kontrak pintar disusupi.
Terminologi Kunci
- Alokasi: Jumlah token spesifik yang diizinkan untuk dibelanjakan oleh kontrak pintar.
- approve(): Fungsi yang menetapkan alokasi dalam kontrak pintar.
- transferFrom(): Fungsi yang digunakan oleh kontrak yang diotorisasi untuk memindahkan token pengguna dalam batas alokasi.
Memahami mekanisme inti ini sangat penting bagi pengguna yang menggunakan keuangan terdesentralisasi (DeFi) dan aplikasi berbasis blockchain lainnya, karena merupakan aspek dasar dari interaksi yang aman dan efisien dalam ekosistem.
Mengapa Alokasi Token Diperlukan
Persetujuan token ada untuk menyediakan aplikasi terdesentralisasi (DApps) dengan akses aman dan terbatas ke aset pengguna. Dalam lingkungan terdesentralisasi di mana tidak ada otoritas pusat untuk memediasi transaksi, kontrak pintar bergantung pada konsep alokasi token untuk menjalankan fungsi-fungsi vital sekaligus menjaga otonomi pengguna. Bagian ini membahas alasan mengapa persetujuan token sangat penting bagi ekosistem blockchain.
1. Memungkinkan Interaksi Non-Kustodian
Salah satu ciri inovasi blockchain adalah kemampuan untuk mempertahankan kendali atas aset tanpa perantara. DApps berfungsi tanpa bank atau broker, tetapi tetap membutuhkan cara untuk melakukan transaksi terkait token atas nama pengguna. Alokasi token memungkinkan protokol otomatis untuk beroperasi sementara dengan otoritas yang didelegasikan, tanpa mengambil alih token pengguna.
2. Meningkatkan Pengalaman Pengguna
Tanpa persetujuan token, setiap interaksi yang melibatkan transfer token akan mengharuskan pengguna untuk mengonfirmasi dan menandatangani setiap transaksi secara manual. Misalnya, dalam protokol yield farming di mana reinvestasi sering terjadi, hal ini akan menjadi membosankan dan tidak praktis. Persetujuan menyederhanakan operasi ini dengan memberikan izin yang telah ditentukan sebelumnya, meningkatkan efisiensi sekaligus menjaga transparansi.
3. Mendukung Protokol Multi-Langkah yang Kompleks
DApps modern sering kali terlibat dalam transaksi multi-langkah, seperti menukar pasangan token, menyediakan likuiditas, atau berinteraksi dengan derivatif. Setiap langkah ini dapat memerlukan transfer token terpisah. Persetujuan token memungkinkan kontrak pintar untuk mengelompokkan atau mengotomatiskan urutan ini, memungkinkan layanan seperti pinjaman kilat, jembatan lintas rantai, dan staking NFT berfungsi secara efektif.
4. Mengoptimalkan Biaya Gas
Menyetujui kontrak hanya sekali untuk jumlah yang tidak terbatas dapat menghemat biaya gas, yang sangat penting selama periode kemacetan jaringan. Persetujuan berulang untuk setiap transaksi individual akan meningkatkan biaya dan berpotensi menghambat partisipasi dalam DeFi.
5. Model Keamanan Berizin
Persetujuan merepresentasikan tingkat izin yang terperinci yang selaras dengan prinsip model keamanan prinsip hak istimewa terkecil. Pengguna menentukan siapa yang dapat mengakses token mereka dan seberapa banyak yang dapat mereka akses. Sifat keikutsertaan ini memastikan bahwa bahkan ketika berinteraksi dengan DApps, pengguna tetap memegang kendali.
6. Kompatibilitas di Seluruh Aplikasi
Alokasi token distandarisasi melalui ERC-20 dan turunannya, sehingga kompatibel secara luas di seluruh ekosistem Ethereum Virtual Machine (EVM). Keseragaman ini memungkinkan token untuk digunakan secara lancar di seluruh bursa terdesentralisasi, protokol peminjaman, platform gim, dan gateway pembayaran.
7. Integrasi Terprogram
Bagi pengembang, persetujuan token juga krusial. Mereka memungkinkan akses terprogram ke token dari dalam kontrak pintar, mengotomatiskan tindakan seperti likuidasi di pasar pinjaman atau penyelesaian transaksi dalam sistem pembayaran terdesentralisasi.
Pada akhirnya, persetujuan token adalah tulang punggung akses berizin di DeFi. Tanpanya, setiap aplikasi terdesentralisasi akan membutuhkan penyimpanan penuh atas dana pengguna—sehingga menggagalkan tujuan desentralisasi. Mereka membantu menjaga interaksi tanpa kepercayaan sekaligus memenuhi kebutuhan praktis keuangan digital.
Bagaimana Persetujuan Token Disalahgunakan
Meskipun persetujuan token memiliki peran teknis dan fungsional yang penting dalam aplikasi terdesentralisasi, persetujuan tersebut juga membuka pintu bagi potensi penyalahgunaan dan eksploitasi. Karena izin dapat bertahan on-chain tanpa batas waktu dan memfasilitasi akses otomatis ke dana pengguna, pelaku kejahatan sering kali mencari cara untuk menyalahgunakan alokasi token. Bagian ini membahas cara-cara utama bagaimana persetujuan token dapat dieksploitasi dan apa yang dapat dilakukan pengguna untuk melindungi diri mereka sendiri.
1. Persetujuan Tak Terbatas dan Paparan Berlebihan
Banyak DApps meminta alokasi token tak terbatas atau sangat tinggi sebagai fitur praktis untuk menghindari persetujuan berulang. Sayangnya, hal ini membuat pengguna rentan. Jika kontrak pintar tersebut disusupi—misalnya, melalui kerentanan perangkat lunak atau serangan tata kelola—penyerang dapat menguras semua token yang disetujui dari dompet pengguna. Meskipun token tetap berada dalam kendali pengguna on-chain, pemberian izin berlebih ini secara efektif melanggar prinsip hak istimewa terkecil.
2. Kontrak Pintar Berbahaya
Penipu sering kali menyebarkan kontrak pintar berbahaya yang tampak seperti DApps atau NFT drop yang sah. Setelah pengguna menyetujui akses token untuk kontrak semacam itu, kontrak tersebut dapat diprogram untuk mencuri dana segera atau di kemudian hari. Persetujuan ini pada dasarnya tidak dapat dibatalkan oleh aplikasi kontrak pintar atau dompet; pencabutan harus dilakukan secara manual oleh pengguna atau melalui pengelola persetujuan token.
3. Phishing melalui Antarmuka Kontrak Pintar
Vektor umum lainnya adalah situs web phishing yang meniru protokol terkenal. Pengguna tanpa sadar berinteraksi dengan antarmuka palsu, yang meminta mereka untuk menyetujui akses token ke alamat palsu. Hal ini dapat mengakibatkan pencurian aset langsung atau serangan tertunda yang dipicu setelah kondisi yang telah ditentukan terpenuhi.
4. Bug yang Dapat Dieksploitasi dalam Protokol
Ketika DApps terkemuka dieksploitasi melalui kerentanan, penyerang dapat memanfaatkan alokasi token yang ada untuk menguras dana pengguna. Dalam sejarah DeFi, contoh seperti eksploitasi bZx dan peretasan BadgerDAO menonjol karena pengguna yang telah memberikan izin bernilai tinggi mengalami kerugian yang signifikan, meskipun tidak pernah terlibat dalam transaksi langsung pada saat serangan.
5. Persetujuan Dormant
Banyak pengguna lupa mencabut izin setelah berinteraksi dengan DApp—meskipun mereka tidak pernah berniat menggunakannya lagi. Persetujuan dorman ini tetap ada di rantai dan dapat dieksploitasi jauh di kemudian hari jika kontrak pintar terkait menjadi rentan. Audit rutin dan pencabutan persetujuan yang tidak diperlukan sangat penting untuk keamanan jangka panjang.
6. Persetujuan Front-Running dan Kondisi Race
Meskipun jarang terjadi, beberapa eksploitasi melibatkan persetujuan token front-running. Penyerang dapat memantau mempool (tempat transaksi tertunda terlihat) dan mencoba mengeksploitasi urutan transaksi untuk mencegat atau memanfaatkan persetujuan token sebelum pengguna menyadarinya. Bot berbahaya juga dapat mencoba kondisi balapan, meskipun sebagian besar dompet kini memiliki nonce yang bervariasi dan menawarkan perlindungan terhadap kasus-kasus ekstrem ini.
7. Sifat Izin yang Tidak Dapat Diubah
Tidak seperti sistem keuangan tradisional di mana izin dapat dicabut atas kebijakan bank, persetujuan blockchain mengharuskan pengguna untuk mengambil langkah proaktif guna menghapus atau menyesuaikan izin. Kecuali pengguna berinteraksi dengan platform seperti Revoke.cash atau Pemeriksa Persetujuan Etherscan, mereka mungkin tidak menyadari adanya izin yang belum diproses yang menimbulkan ancaman keamanan.
Praktik Terbaik Keamanan
Untuk mengurangi risiko ini, pengguna harus mempertimbangkan tindakan pencegahan berikut:
- Hanya berinteraksi dengan DApps terverifikasi dan URL resmi.
- Berikan alokasi token terbatas atau khusus jika memungkinkan.
- Gunakan alat persetujuan token untuk memantau dan mencabut izin yang ada.
- Berhati-hatilah terhadap DApps yang meminta persetujuan tanpa batas.
- Tinjau aktivitas dompet secara berkala untuk melihat apakah ada yang tidak digunakan atau ditinggalkan aplikasi.
Meskipun sifat blockchain yang terdesentralisasi memberdayakan pengguna, ia juga menuntut tanggung jawab individu yang lebih besar. Menjaga riwayat penyisihan yang bersih merupakan bagian penting dari manajemen aset kripto yang aman.