Beli Kripto
Pasar
Spot
Futures OILBTC
Tabungan
Pusat Acara
Hub Hadiah
Lainnya
Fest. 0-Biaya
Mekanisme Persetujuan: Apa Itu Mekanisme Persetujuan?Mekanisme persetujuan adalah sistem izin kripto yang memungkinkan pengguna memberi wewenang kepada smart contract, wallet, protokol, atau operator untuk melakukan tindakaMekanisme Persetujuan: Apa Itu Mekanisme Persetujuan?Mekanisme persetujuan adalah sistem izin kripto yang memungkinkan pengguna memberi wewenang kepada smart contract, wallet, protokol, atau operator untuk melakukan tindaka

Mekanisme Persetujuan

2026/10/13 14:35
#Intermediate
Humanity
H$0.05527-2.40%
PX
PX$0.0128+1.58%
Smart Blockchain
SMART$0.004429-0.58%
TokenFi
TOKEN$0.00196-2.04%
AINFT
NFT$0.0000002372-2.18%

Apa Itu Mekanisme Persetujuan?

Mekanisme persetujuan adalah sistem izin kripto yang memungkinkan pengguna memberi wewenang kepada smart contract, wallet, protokol, atau operator untuk melakukan tindakan tertentu atas nama pengguna.

Dalam sebagian besar percakapan seputar kripto, mekanisme persetujuan biasanya merujuk pada persetujuan token di blockchain smart contract.

Persetujuan token memungkinkan alamat lain, yang sering kali berupa smart contract, untuk menggunakan atau mengelola token pengguna sesuai aturan yang ditetapkan oleh standar token.

Contoh paling umum adalah sistem persetujuan ERC-20. Pemegang token memanggil approve() untuk memberi spender izin memindahkan sejumlah token melalui transferFrom().

Standar token ERC-20 resmi menyatakan bahwa standar ini memungkinkan token disetujui agar dapat digunakan oleh pihak ketiga lain secara on-chain.

Mekanisme ini banyak digunakan karena banyak aplikasi kripto hanya memerlukan izin untuk memindahkan token setelah pengguna menyetujui akses tersebut.

Misalnya, aplikasi pinjaman mungkin memerlukan persetujuan sebelum dapat menyetor stablecoin pengguna ke dalam pool.

Aplikasi trading mungkin memerlukan persetujuan sebelum dapat menukar token pengguna.

Marketplace NFT mungkin memerlukan persetujuan sebelum dapat mentransfer NFT setelah penjualan.

Kontrak staking mungkin memerlukan persetujuan sebelum dapat memindahkan token staking ke dalam kontrak.

Mekanisme persetujuan berguna karena memisahkan pemberian izin dari transfer yang sebenarnya.

Pengguna dapat memberikan persetujuan terlebih dahulu, lalu aplikasi dapat memanggil fungsi transfer atau pengelolaan ketika pengguna menyelesaikan tindakan berikutnya.

Desain ini meningkatkan fleksibilitas, tetapi juga menimbulkan salah satu risiko keamanan wallet terpenting dalam kripto.

Mengapa Mekanisme Persetujuan Penting dalam Kripto

Mekanisme persetujuan penting karena pengguna kripto berinteraksi langsung dengan smart contract.

Ketika pengguna menghubungkan wallet ke aplikasi, aplikasi biasanya tidak dapat mengambil token sendiri kecuali pengguna menandatangani transaksi atau memberikan izin.

Persetujuan adalah salah satu cara utama untuk memberikan izin tersebut.

Karena itu, persetujuan menjadi bagian penting dari DeFi, NFT, gaming, staking, swap token, bridge token, pembayaran, dan berbagai aktivitas on-chain lainnya.

Tanpa mekanisme persetujuan, pengguna harus mengirim token secara manual untuk banyak tindakan, sehingga alur kerja smart contract menjadi lebih lambat dan kurang fleksibel.

Dengan mekanisme persetujuan, pengguna dapat memberi wewenang kepada kontrak untuk bertindak sesuai batas allowance atau izin operator yang ditentukan.

Manfaatnya adalah kemudahan.

Risikonya adalah spender yang berbahaya atau telah disusupi dapat menyalahgunakan izin tersebut.

Jika pengguna memberikan persetujuan tanpa batas kepada kontrak berbahaya, kontrak tersebut mungkin dapat menguras semua token dari jenis yang disetujui.

Jika pengguna menyetujui operator berbahaya untuk semua NFT dalam suatu koleksi, operator tersebut mungkin dapat mentransfer NFT-NFT itu.

Itulah sebabnya memahami persetujuan merupakan salah satu keterampilan keamanan terpenting bagi pengguna kripto.

Mekanisme persetujuan bukan sekadar detail teknis yang tersembunyi di balik pop-up wallet.

Mekanisme ini menentukan siapa yang dapat memindahkan aset, berapa banyak yang dapat dipindahkan, dan apa yang mungkin terjadi jika kontrak atau kunci privat disusupi.

Cara Kerja Persetujuan ERC-20

Persetujuan ERC-20 melibatkan hubungan antara tiga pihak.

Pihak pertama adalah pemilik token.

Pihak kedua adalah spender.

Pihak ketiga adalah kontrak token ERC-20.

Pemilik token menyimpan token di alamat wallet.

Spender adalah smart contract atau alamat yang diizinkan pemilik untuk menggunakan token.

Kontrak token mencatat allowance di penyimpanan internalnya.

Ketika pemilik memanggil approve(spender, amount), kontrak token memperbarui jumlah token yang dapat dipindahkan spender dari saldo pemilik.

Ketika spender kemudian memanggil transferFrom(owner, receiver, amount), kontrak token memeriksa apakah allowance spender mencukupi.

Jika allowance mencukupi dan saldo pemilik juga cukup, transfer dapat dilakukan.

Jika allowance terlalu rendah, transaksi seharusnya gagal.

Dokumentasi ERC-20 OpenZeppelin menjelaskan fungsi yang terkait dengan allowance serta ekstensi permit yang digunakan dalam implementasi token modern.

Sistem persetujuan ini sangat berguna karena memungkinkan smart contract memindahkan token hanya setelah pengguna memberikan izin.

Sistem ini juga berisiko karena pengguna mungkin lupa bahwa persetujuan lama tetap aktif sampai diubah atau dicabut.

Allowance

Allowance adalah jumlah token yang diizinkan untuk dipindahkan spender dari wallet pemilik.

Pada token ERC-20, allowance biasanya disimpan sebagai mapping di dalam kontrak token.

Pemilik tidak mengirim token saat membuat allowance.

Pemilik hanya memberikan izin untuk transfer di kemudian hari.

Perbedaan ini penting karena pengguna dapat menyetujui allowance dalam jumlah besar meskipun tidak ada token yang langsung berpindah.

Risikonya, persetujuan tersebut mungkin tetap aktif setelah pengguna meninggalkan aplikasi.

Jika kontrak spender kemudian dieksploitasi, ditingkatkan dengan cara berbahaya, atau dikendalikan penyerang, sisa allowance dapat menimbulkan risiko.

Allowance kecil membatasi jumlah yang dapat dipindahkan spender.

Allowance tanpa batas memberi spender izin untuk memindahkan jumlah yang sangat besar, sering kali hingga bilangan bulat maksimum yang didukung kontrak token.

Allowance tanpa batas umum digunakan karena mengurangi transaksi persetujuan berulang dan menghemat waktu pengguna.

Namun, allowance tanpa batas juga meningkatkan risiko karena pengguna mungkin mengekspos saldo token di masa mendatang, bukan hanya saldo saat ini.

Wallet mungkin menampilkan persetujuan sebagai permintaan sederhana, padahal dampaknya terhadap keamanan bisa sangat besar.

Persetujuan vs Transfer

Persetujuan tidak sama dengan transfer.

Transfer memindahkan token dari satu alamat ke alamat lain.

Persetujuan mengubah izin di dalam kontrak token.

Saat pengguna menyetujui spender, token biasanya tetap berada di wallet pengguna pada saat itu.

Spender dapat menggunakan persetujuan tersebut nanti untuk memindahkan token jika standar token dan logika kontrak mengizinkannya.

Itulah sebabnya penipuan persetujuan bisa membingungkan.

Pengguna mungkin menandatangani persetujuan dan melihat bahwa tidak ada token yang langsung berpindah.

Kemudian, penyerang dapat memanggil transferFrom() dan memindahkan token menggunakan persetujuan yang sudah ada.

Persetujuan itulah tindakan yang berbahaya, meskipun pencurian terjadi belakangan.

Karena itu, pengguna sebaiknya meninjau persetujuan dengan keseriusan yang sama seperti transfer.

Konfirmasi wallet yang menyebut “approve” mungkin memberikan kewenangan untuk menggunakan aset di kemudian hari.

Pendekatan paling aman adalah memeriksa alamat spender, simbol token, jumlah allowance, dan konteks aplikasi sebelum menandatangani.

Persetujuan Tanpa Batas

Persetujuan tanpa batas berarti memberi spender izin untuk memindahkan jumlah token yang sangat besar atau secara efektif tidak terbatas.

Desain ini umum digunakan karena mengurangi kebutuhan untuk memberikan persetujuan berulang kali.

Misalnya, pengguna yang sering berinteraksi dengan aplikasi yang sama mungkin memilih satu persetujuan tanpa batas daripada menyetujui setiap transaksi secara terpisah.

Hal ini memudahkan penggunaan, tetapi juga menimbulkan risiko yang bertahan lama.

Jika spender memiliki persetujuan tanpa batas, spender mungkin dapat memindahkan seluruh saldo token pengguna saat ini maupun di masa mendatang.

Penelitian akademis tentang risiko persetujuan ERC-20 tanpa batas menemukan bahwa persetujuan tanpa batas digunakan secara luas dan menimbulkan paparan risiko yang signifikan bagi pengguna dalam ekosistem Ethereum.

Masalah utamanya bukan berarti persetujuan tanpa batas selalu menyebabkan kerugian.

Masalahnya, izin yang luas tetap terbuka lama setelah pengguna mungkin lupa pernah memberikannya.

Pengguna sebaiknya menghindari persetujuan tanpa batas kecuali mereka memahami kontrak, alasannya, dan risikonya.

Meskipun menggunakan aplikasi tepercaya, membatasi persetujuan hanya pada jumlah yang diperlukan dapat mengurangi dampak jika terjadi masalah di kemudian hari.

Persetujuan Terbatas

Persetujuan terbatas berarti memberikan izin hanya untuk jumlah token tertentu.

Misalnya, pengguna dapat menyetujui 100 token karena tindakan berikutnya hanya memerlukan 100 token.

Hal ini mengurangi risiko karena spender tidak dapat memindahkan token melebihi jumlah yang disetujui.

Persetujuan terbatas biasanya lebih aman daripada persetujuan tanpa batas.

Komprominya, pengguna mungkin perlu memberikan persetujuan lagi untuk transaksi berikutnya.

Ini dapat menambah biaya gas dan konfirmasi wallet.

Bagi banyak pengguna, langkah tambahan tersebut sepadan dengan peningkatan keamanan.

Persetujuan terbatas sangat berguna saat berinteraksi dengan smart contract yang baru, belum diaudit, eksperimental, atau tidak dikenal.

Persetujuan terbatas juga berguna saat menggunakan wallet yang menyimpan aset bernilai tinggi.

Salah satu praktik terbaik yang umum adalah menyetujui hanya jumlah yang diperlukan untuk tindakan saat ini.

Setelah tindakan selesai, pengguna dapat mencabut sisa allowance.

Mencabut Persetujuan

Mencabut persetujuan berarti mengubah izin spender menjadi nol atau menghapus akses operator.

Ini adalah salah satu kebiasaan keamanan terpenting dalam kripto.

Panduan Ethereum.org tentang pencabutan akses token menyarankan pengguna untuk menghindari akses token tanpa batas dan secara berkala mencabut akses allowance token.

Pencabutan biasanya tidak memindahkan token.

Pencabutan mengubah kemampuan spender untuk memindahkan token di kemudian hari.

Untuk token ERC-20, pencabutan biasanya dilakukan dengan mengirim transaksi persetujuan yang menetapkan allowance menjadi nol.

Untuk NFT, pencabutan dapat berarti menghapus persetujuan untuk token tertentu atau menghapus persetujuan operator untuk seluruh koleksi.

Mencabut persetujuan dapat memerlukan biaya gas karena prosesnya merupakan transaksi on-chain.

Namun, biayanya mungkin kecil dibandingkan potensi kerugian akibat membiarkan izin berbahaya tetap terbuka.

Pengguna sebaiknya meninjau persetujuan lama setelah menggunakan aplikasi baru, menandatangani transaksi mencurigakan, berpartisipasi dalam klaim token, atau terhubung ke situs web yang tidak dikenal.

Pencabutan bukan perlindungan yang sempurna, tetapi dapat mengurangi jumlah celah yang bisa dimanfaatkan penyerang.

Mekanisme Persetujuan dan Permit ERC-2612

ERC-2612 menambahkan fungsi permit() yang memungkinkan pengguna mengubah allowance ERC-20 melalui pesan bertanda tangan, bukan transaksi approve() on-chain secara langsung.

Standar permit ERC-2612 resmi menjelaskan bahwa permit memungkinkan pengguna mengubah mapping allowance menggunakan pesan bertanda tangan.

Hal ini dapat meningkatkan pengalaman pengguna karena pengguna mungkin tidak perlu memiliki token gas jaringan hanya untuk membuat persetujuan.

Pihak lain dapat mengirim permit bertanda tangan tersebut, membayar gas, dan menyelesaikan proses persetujuan.

Persetujuan berbasis permit umum digunakan dalam DeFi modern karena mengurangi jumlah langkah.

Namun, desain wallet perlu diperhatikan karena pengguna mungkin menandatangani izin tanpa memahaminya sepenuhnya.

Tanda tangan bisa sama kuatnya dengan transaksi jika memberikan izin kepada spender.

Pengguna tidak boleh menganggap tanda tangan pesan tidak berbahaya hanya karena tidak langsung menampilkan transfer on-chain.

Pengguna perlu memeriksa token, spender, jumlah, batas waktu, chain, dan domain yang ditampilkan di wallet.

Tanda tangan permit berbahaya dapat menciptakan persetujuan yang berisiko jika dikirim on-chain sebelum kedaluwarsa.

Mekanisme Persetujuan dan NFT

Mekanisme persetujuan NFT berbeda dari allowance ERC-20.

Pada ERC-721, pengguna dapat menyetujui satu alamat untuk mentransfer satu NFT tertentu.

Pengguna juga dapat menggunakan setApprovalForAll() untuk menyetujui operator agar mengelola semua NFT dari koleksi tersebut.

Jenis kedua ini memiliki kewenangan luas dan berisiko karena dapat mencakup setiap NFT dalam koleksi yang dimiliki pengguna.

Untuk token ERC-1155, setApprovalForAll() dapat mengizinkan operator mengelola semua token pengguna di bawah kontrak tersebut.

Standar multi-token ERC-1155 resmi menjelaskan bahwa setApprovalForAll memungkinkan operator mengelola seluruh kumpulan token milik pemberi persetujuan atas namanya.

Pengguna NFT perlu sangat berhati-hati terhadap persetujuan untuk seluruh koleksi.

Persetujuan operator yang berbahaya dapat memungkinkan penyerang mentransfer NFT bernilai tinggi tanpa meminta persetujuan untuk setiap item secara terpisah.

Itulah sebabnya peringatan wallet terkait persetujuan NFT perlu ditanggapi dengan serius.

Pengguna sebaiknya mencabut persetujuan operator NFT lama saat tidak lagi diperlukan.

Mekanisme Persetujuan dan Izin Smart Contract

Persetujuan token hanyalah salah satu jenis izin smart contract.

Banyak sistem kripto mencakup persetujuan admin, persetujuan peran, persetujuan validator, persetujuan governance, dan otorisasi tingkat akun.

Smart contract mungkin memerlukan persetujuan sebelum proposal dijalankan.

Wallet multisig mungkin memerlukan beberapa persetujuan sebelum transaksi dikirim.

Bridge mungkin memerlukan validator atau guardian untuk menyetujui pesan lintas blockchain.

DAO mungkin mengharuskan pemegang token menyetujui proposal governance melalui voting.

Wallet mungkin meminta pengguna menyetujui session key, batas pengeluaran, atau delegasi akun.

Semua mekanisme persetujuan ini memiliki gagasan dasar yang sama.

Seseorang atau sesuatu menerima izin untuk bertindak sesuai aturan yang ditentukan.

Pertanyaan utama terkait keamanan selalu sama.

Siapa yang diberi persetujuan, apa yang dapat mereka lakukan, berapa lama izin berlaku, dan bagaimana izin tersebut dapat dicabut?

Mekanisme Persetujuan dan EIP-7702

EIP-7702 memperkenalkan model otorisasi akun baru untuk akun milik eksternal sebagai bagian dari jalur upgrade Pectra Ethereum.

Dokumentasi Pectra 7702 Ethereum.org menjelaskan bahwa EIP-7702 menetapkan mekanisme yang memungkinkan akun milik eksternal memperoleh peningkatan fungsi jangka pendek dengan menambahkan perilaku berbasis kode.

Mekanisme ini tidak sama dengan persetujuan token ERC-20 biasa.

Ini adalah mekanisme otorisasi tingkat akun yang dapat memungkinkan wallet berperilaku lebih seperti smart account untuk tindakan tertentu.

Mekanisme ini dapat mendukung fitur berguna seperti penggabungan transaksi, transaksi bersponsor, dan alur wallet yang lebih baik.

Namun, otorisasi tingkat akun juga dapat menimbulkan risiko phishing baru jika pengguna menyetujui logika delegasi yang berbahaya.

Pengguna sebaiknya memperlakukan otorisasi akun sebagai izin berisiko tinggi karena izin tersebut dapat memengaruhi perilaku wallet itu sendiri.

Pertanyaan tentang persetujuan menjadi lebih luas daripada sekadar allowance satu token.

Pertanyaannya adalah kode apa yang diizinkan akun untuk bertindak melalui wallet.

Seiring berkembangnya teknologi wallet, mekanisme persetujuan akan menjadi lebih fleksibel dan lebih kuat.

Artinya, antarmuka wallet juga perlu menjadi lebih jelas dan aman.

Mekanisme Persetujuan dan Pop-up Wallet

Pop-up wallet adalah tempat sebagian besar pengguna pertama kali menjumpai mekanisme persetujuan.

Wallet dapat meminta pengguna menyetujui penggunaan token, menandatangani permit, menyetujui akses NFT, mengonfirmasi transaksi, atau mengotorisasi perilaku akun.

Masalahnya, banyak pop-up wallet sulit dipahami pengguna.

Pop-up tersebut mungkin menampilkan alamat kontrak, data heksadesimal, nama fungsi teknis, atau label izin yang tidak jelas.

Antarmuka wallet yang aman seharusnya menjelaskan aset yang terdampak, pihak yang menerima izin, jumlah yang dapat dipindahkan, dan apakah izinnya tanpa batas.

Pengguna sebaiknya tidak terburu-buru melewati layar persetujuan hanya karena aplikasi terlihat familier.

Situs phishing sering meniru aplikasi asli dan meminta pengguna menyetujui spender berbahaya.

Pengguna mungkin mengira mereka sedang mengklaim reward, padahal wallet sebenarnya meminta persetujuan token.

Membaca detail persetujuan adalah salah satu cara paling sederhana untuk menghindari kerugian yang dapat dicegah.

Jika peringatan wallet tidak jelas, pengguna sebaiknya berhenti sejenak dan tidak langsung menandatangani.

Mekanisme Persetujuan dan DeFi

Aplikasi DeFi sangat bergantung pada mekanisme persetujuan.

Swap mungkin memerlukan persetujuan token sebelum kontrak swap dapat memindahkan token yang akan ditukar.

Deposit pinjaman mungkin memerlukan persetujuan sebelum kontrak pinjaman dapat menarik agunan ke dalam protokol.

Tindakan staking mungkin memerlukan persetujuan sebelum kontrak staking dapat menerima token.

Posisi likuiditas mungkin memerlukan persetujuan untuk satu atau beberapa aset sebelum posisi dibuat.

Persetujuan ini memungkinkan komposabilitas DeFi karena smart contract dapat berinteraksi dengan token sesuai izin pengguna.

Namun, DeFi juga meningkatkan risiko persetujuan karena pengguna mungkin berinteraksi dengan banyak kontrak dari waktu ke waktu.

Wallet yang telah digunakan di puluhan aplikasi mungkin memiliki banyak allowance yang terlupakan.

Beberapa persetujuan itu mungkin masih terbuka meskipun pengguna tidak lagi memakai aplikasinya.

Pengguna DeFi sebaiknya menjadikan peninjauan persetujuan sebagai bagian dari rutinitas keamanan.

Hal ini sangat penting bagi wallet yang menyimpan saldo besar atau aset untuk tabungan jangka panjang.

Mekanisme Persetujuan dan Bridge

Bridge sering memerlukan persetujuan sebelum dapat memindahkan token dari satu chain ke chain lain.

Kontrak bridge mungkin meminta pengguna menyetujui token sebelum pengguna menyetorkannya ke bridge.

Bridge kemudian mengunci, membakar, atau mentransfer aset sesuai desainnya.

Persetujuan bridge perlu diperhatikan karena bridge merupakan target bernilai tinggi.

Jika kontrak bridge atau jalur persetujuannya disusupi, allowance yang masih terbuka dapat menjadi berbahaya.

Pengguna sebaiknya berhati-hati saat menyetujui kontrak bridge, terutama ketika menggunakan bridge baru atau jaringan yang tidak dikenal.

Pengguna perlu memastikan alamat bridge resmi melalui sumber tepercaya.

Hindari menyetujui jumlah tanpa batas kecuali Anda memahami risikonya dan memercayai kontraknya.

Cabut persetujuan bridge yang tidak lagi digunakan setelah transfer selesai.

Persetujuan bridge sebaiknya diperlakukan sebagai izin untuk memindahkan nilai, bukan sekadar klik rutin di situs web.

Mekanisme Persetujuan dan Account Abstraction

Account abstraction mengubah cara wallet mengotorisasi tindakan.

Alih-alih setiap tindakan menjadi transaksi akun milik eksternal yang sederhana, smart account dapat menggunakan aturan khusus.

Aturan tersebut dapat mencakup batas pengeluaran, session key, tindakan gabungan, pemulihan sosial, gas bersponsor, dan izin berbasis kebijakan.

Mekanisme persetujuan menjadi lebih fleksibel dalam lingkungan ini.

Pengguna dapat menyetujui sesi game yang mengizinkan tindakan kecil dalam game selama satu jam.

Pengguna dapat menyetujui batas pembayaran untuk aplikasi bergaya langganan.

Pengguna dapat menyetujui perangkat tepercaya untuk menandatangani tindakan berisiko rendah, tetapi tidak untuk transfer besar.

Hal ini dapat meningkatkan pengalaman pengguna dan mengurangi permintaan wallet yang berulang.

Namun, hal ini juga menimbulkan tantangan baru dalam pengelolaan izin.

Pengguna memerlukan dasbor yang jelas untuk melihat sesi aktif, batas pengeluaran, kunci yang didelegasikan, waktu kedaluwarsa, dan opsi pencabutan.

Seiring berkembangnya account abstraction, persetujuan akan semakin menyerupai sistem kontrol akses digital daripada sekadar allowance token.

Mekanisme Persetujuan dan Governance

Persetujuan governance berbeda dari persetujuan penggunaan token, tetapi mengikuti logika izin yang sama.

Proposal DAO mungkin memerlukan persetujuan pemegang token sebelum mengubah parameter protokol atau menggunakan dana treasury.

Treasury multisig mungkin memerlukan persetujuan beberapa penanda tangan sebelum transaksi dijalankan.

Upgrade protokol mungkin memerlukan persetujuan governance sebelum kode baru diaktifkan.

Persetujuan ini melindungi sistem bersama dari tindakan sepihak.

Namun, persetujuan governance juga dapat berisiko jika voting power terkonsentrasi atau para penanda tangan disusupi.

Persetujuan governance yang buruk dapat mengubah biaya, meng-upgrade kontrak, mentransfer dana, atau mengubah pengaturan risiko.

Pengguna perlu memahami bahwa persetujuan bukan hanya persoalan di tingkat wallet.

Persetujuan juga penting di tingkat protokol dan komunitas.

Sistem kripto yang aman membutuhkan persetujuan yang aman untuk perpindahan aset individu maupun pengambilan keputusan kolektif.

Risiko Keamanan Mekanisme Persetujuan

Risiko utama pertama adalah persetujuan tanpa batas.

Persetujuan tanpa batas dapat mengekspos seluruh saldo token saat ini dan di masa mendatang kepada spender yang disetujui.

Risiko kedua adalah alamat spender berbahaya.

Situs phishing mungkin meminta pengguna menyetujui kontrak yang dikendalikan penyerang.

Risiko ketiga adalah kontrak yang disusupi.

Kontrak yang sebelumnya aman dapat menjadi berbahaya jika di-upgrade, dieksploitasi, atau dikendalikan oleh kunci admin yang disusupi.

Risiko keempat adalah tampilan wallet yang kurang baik.

Jika wallet tidak menjelaskan persetujuan dengan jelas, pengguna dapat menandatanganinya tanpa memahami izin yang diberikan.

Risiko kelima adalah race condition persetujuan.

Pola persetujuan ERC-20 lama dapat menimbulkan masalah ketika allowance diubah dari satu nilai bukan nol ke nilai bukan nol lainnya.

Risiko keenam adalah penyalahgunaan tanda tangan.

Tanda tangan permit atau otorisasi akun dapat berbahaya meskipun tidak langsung menyiarkan transaksi.

Risiko ketujuh adalah persetujuan yang terlupakan.

Izin lama dapat tetap aktif lama setelah pengguna berhenti memakai aplikasi.

Race Condition Persetujuan

Race condition persetujuan ERC-20 merupakan masalah yang diketahui saat pengguna mengubah allowance dari satu nilai ke nilai lainnya.

Jika spender sudah memiliki allowance 100 token dan pengguna mengubahnya menjadi 50, spender berbahaya mungkin mencoba menggunakan 100 token yang lama sebelum nilai baru sebesar 50 dikonfirmasi.

Jika waktunya merugikan pengguna, spender mungkin dapat menggunakan lebih banyak daripada yang dimaksudkan pengguna.

Penelitian keamanan tentang masalah penarikan berkali-kali ERC-20 mempelajari risiko terkait persetujuan ini dan langkah mitigasi yang mungkin dilakukan.

Pola yang umumnya lebih aman adalah mengatur allowance menjadi nol terlebih dahulu, lalu menetapkan allowance baru yang diinginkan.

Beberapa implementasi token dan library menyediakan fungsi bantu untuk mengurangi allowance dengan aman.

Developer sebaiknya merancang alur token dan aplikasi agar perubahan allowance yang tidak aman dapat dihindari.

Pengguna tidak perlu mengetahui setiap detail teknis, tetapi perlu memahami bahwa persetujuan dapat memiliki kasus khusus.

Wallet dan aplikasi sebaiknya membantu pengguna menghindari kasus khusus tersebut secara otomatis.

Praktik Terbaik bagi Pengguna

Jika memungkinkan, pengguna sebaiknya hanya menyetujui jumlah yang diperlukan.

Hindari persetujuan tanpa batas untuk kontrak yang tidak dikenal atau berisiko tinggi.

Periksa alamat spender sebelum menandatangani persetujuan.

Pastikan apakah persetujuan memengaruhi satu token, semua token dalam suatu koleksi, atau perilaku di tingkat akun.

Cabut persetujuan lama setelah selesai menggunakan aplikasi.

Berhati-hatilah terhadap tanda tangan yang membuat permit atau otorisasi.

Gunakan wallet terpisah untuk menyimpan aset bernilai tinggi dan berinteraksi dengan aplikasi.

Simpan aset jangka panjang di wallet dengan jumlah persetujuan terbuka seminimal mungkin.

Pastikan alamat kontrak resmi dari sumber tepercaya sebelum memberikan persetujuan.

Berhenti sejenak jika wallet meminta persetujuan saat Anda melakukan tindakan yang tidak terduga.

Ingat bahwa persetujuan dapat tetap aktif meskipun wallet telah diputus dari situs web.

Praktik Terbaik bagi Developer

Developer sebaiknya meminta jumlah persetujuan terkecil yang cukup untuk tindakan pengguna.

Jangan menjadikan persetujuan tanpa batas sebagai satu-satunya pilihan.

Jelaskan jumlah persetujuan dengan bahasa sederhana di dalam antarmuka aplikasi.

Identifikasi kontrak spender yang menerima izin secara jelas.

Dukung alur berbasis permit hanya jika pengguna dapat memahami apa yang mereka tandatangani.

Berikan panduan pencabutan setelah interaksi berisiko tinggi.

Hindari persetujuan operator NFT dan kontrak multi-token yang tidak diperlukan.

Rancang kontrak agar persetujuannya memiliki cakupan terbatas, dapat diaudit, dan mudah dicabut.

Gunakan library token yang telah ditinjau dengan baik dan ikuti praktik keamanan terkini.

Perlakukan UX persetujuan sebagai fitur keamanan, bukan sekadar aspek tingkat konversi.

Mekanisme Persetujuan vs Koneksi Wallet

Koneksi wallet tidak sama dengan persetujuan.

Menghubungkan wallet biasanya memungkinkan situs web melihat alamat wallet dan meminta tindakan.

Biasanya, hal ini tidak memberi situs web izin untuk memindahkan token sendiri.

Persetujuan memiliki cakupan lebih luas karena memberikan izin kepada spender di dalam kontrak token atau sistem smart account.

Pengguna sering keliru membedakan kedua tindakan ini.

Memutus koneksi wallet dari situs web dapat mencegah situs tersebut meminta tanda tangan baru dengan mudah, tetapi tidak otomatis mencabut persetujuan token yang sudah ada.

Karena itu, pengguna sebaiknya tidak hanya mengandalkan pemutusan koneksi wallet untuk menjaga keamanan.

Jika pengguna telah menyetujui spender, allowance mungkin tetap berlaku sampai diubah secara on-chain.

Untuk menghapus izin tersebut, pengguna biasanya perlu mencabut atau memperbarui persetujuan.

Memahami perbedaan ini dapat mencegah rasa aman yang keliru.

Mekanisme Persetujuan vs Tanda Tangan

Tanda tangan juga tidak selalu sama dengan persetujuan, tetapi beberapa tanda tangan dapat membuat persetujuan.

Tanda tangan pesan biasa dapat membuktikan kepemilikan wallet atau digunakan untuk login ke aplikasi.

Tanda tangan permit dapat mengotorisasi allowance token.

Tanda tangan delegasi akun dapat mengotorisasi kode atau perilaku kebijakan untuk sebuah wallet.

Artinya, pengguna tidak boleh menganggap tanda tangan tidak berbahaya.

Situs web berbahaya mungkin meminta tanda tangan yang terlihat lebih murah daripada transaksi, tetapi tetap memberikan izin yang serius.

Periksa jenis pesan, domain, chain, spender, token, jumlah, batas waktu, dan tindakan yang diminta.

Wallet sebaiknya membedakan tanda tangan berbahaya secara visual dari pesan login berisiko rendah.

Developer sebaiknya menghindari permintaan tanda tangan yang tidak jelas dan mendorong pengguna untuk mengeklik tanpa berpikir.

Dalam kripto modern, persetujuan dapat diberikan melalui transaksi maupun pesan bertanda tangan.

Mekanisme Persetujuan dan Standar Token

Standar token yang berbeda menggunakan mekanisme persetujuan yang berbeda.

ERC-20 menggunakan persetujuan berbasis allowance untuk token fungibel.

ERC-721 menggunakan persetujuan untuk NFT individual dan persetujuan operator untuk koleksi.

ERC-1155 menggunakan persetujuan operator yang dapat mencakup beberapa ID token di bawah satu kontrak.

ERC-2612 menambahkan persetujuan permit bertanda tangan untuk token bergaya ERC-20.

Standar wallet dan akun yang lebih baru dapat menambahkan izin sesi, eksekusi yang didelegasikan, atau otorisasi tingkat akun.

Beragamnya mekanisme ini berarti pengguna tidak boleh menganggap setiap pop-up persetujuan sama.

Persetujuan untuk satu stablecoin berbeda dari persetujuan untuk semua NFT dalam suatu koleksi.

Tanda tangan permit berbeda dari transaksi approve langsung.

Delegasi akun berbeda dari allowance token.

Pertanyaan terpenting adalah kewenangan apa yang diberikan oleh persetujuan tersebut.

Kesalahpahaman Umum tentang Mekanisme Persetujuan

Salah satu kesalahpahaman umum adalah mengira persetujuan langsung memindahkan token.

Persetujuan biasanya memberikan izin, sedangkan transfer yang dilakukan kemudian dapat memindahkan token.

Kesalahpahaman lainnya adalah mengira memutus koneksi wallet akan mencabut persetujuan.

Memutus koneksi wallet biasanya tidak mengubah allowance di kontrak token.

Kesalahpahaman ketiga adalah mengira persetujuan tanpa batas hanya memengaruhi saldo saat ini.

Persetujuan tanpa batas juga dapat mengekspos saldo token yang sama di masa mendatang jika token tersebut diterima kemudian.

Kesalahpahaman keempat adalah mengira tanda tangan pesan selalu aman.

Beberapa tanda tangan dapat membuat permit atau otorisasi akun yang menimbulkan risiko nyata terhadap aset.

Kesalahpahaman kelima adalah mengira aplikasi tepercaya tidak pernah memerlukan pencabutan persetujuan.

Aplikasi tepercaya pun dapat mengalami bug, upgrade, penyusupan kunci, atau perubahan kondisi risiko.

Kesalahpahaman keenam adalah mengira persetujuan NFT berisiko rendah karena tidak melibatkan token fungibel.

Persetujuan operator NFT dapat memberikan kendali luas atas koleksi bernilai tinggi atau aset game.

Istilah Kripto Terkait

Allowance adalah jumlah token ERC-20 yang dapat dipindahkan spender dari wallet pemilik.

approve() adalah fungsi ERC-20 yang digunakan untuk menetapkan allowance spender.

transferFrom() adalah fungsi ERC-20 yang digunakan spender untuk memindahkan token setelah menerima allowance.

Permit adalah metode persetujuan bertanda tangan yang dapat mengubah allowance tanpa pemilik mengirim transaksi approve secara langsung.

setApprovalForAll() adalah fungsi dalam standar NFT dan multi-token untuk menyetujui operator atas aset dengan cakupan lebih luas.

Pencabutan adalah proses menghapus atau mengurangi persetujuan.

Spender adalah alamat atau kontrak yang diizinkan memindahkan token melalui persetujuan.

Operator adalah alamat yang disetujui untuk mengelola NFT atau aset multi-token atas nama pemilik.

Account abstraction adalah pendekatan desain wallet yang memungkinkan aturan akun dan sistem izin lebih fleksibel.

Smart contract adalah kode blockchain yang dapat menjalankan aturan secara otomatis saat dipanggil.

FAQ

Apa arti mekanisme persetujuan dalam kripto?

Mekanisme persetujuan adalah sistem izin yang memungkinkan pengguna memberi wewenang kepada kontrak, alamat, wallet, atau operator untuk melakukan tindakan tertentu atas nama pengguna.

Apa itu persetujuan token?

Persetujuan token adalah izin on-chain yang memungkinkan spender memindahkan atau mengelola token sesuai aturan standar token.

Apa itu persetujuan ERC-20?

Persetujuan ERC-20 adalah sistem allowance yang memungkinkan pemilik token memberi wewenang kepada spender untuk mentransfer token hingga jumlah tertentu melalui transferFrom().

Apa itu allowance?

Allowance adalah jumlah token yang diizinkan untuk dipindahkan spender dari wallet pemilik.

Apakah persetujuan sama dengan transfer?

Tidak. Persetujuan memberikan izin, sedangkan transfer benar-benar memindahkan token.

Mengapa persetujuan tanpa batas berisiko?

Persetujuan tanpa batas berisiko karena spender mungkin dapat memindahkan seluruh saldo token yang disetujui, baik saldo saat ini maupun di masa mendatang.

Bagaimana cara pengguna mencabut persetujuan token?

Pengguna mencabut persetujuan token dengan mengirim transaksi on-chain yang menetapkan allowance menjadi nol atau menghapus izin operator.

Apakah memutus koneksi wallet mencabut persetujuan?

Tidak. Memutus koneksi wallet dari situs web biasanya tidak mencabut persetujuan token yang tersimpan on-chain.

Apa itu persetujuan permit?

Persetujuan permit menggunakan pesan bertanda tangan untuk mengotorisasi allowance ERC-20 tanpa pemilik token harus mengirim transaksi approve secara langsung.

Apakah persetujuan NFT berbahaya?

Persetujuan NFT dapat berbahaya jika memberikan izin kepada operator untuk mengelola NFT bernilai tinggi atau seluruh koleksi.

Apa yang perlu diperiksa pengguna sebelum memberikan persetujuan?

Pengguna perlu memeriksa spender, token, jumlah, jaringan, batas waktu, situs web, dan apakah persetujuannya terbatas atau tanpa batas.

Apa praktik persetujuan yang paling aman?

Praktik paling aman adalah menyetujui hanya jumlah yang diperlukan, menghindari spender yang tidak dikenal, dan mencabut izin saat tidak lagi diperlukan.

Kesimpulan

Mekanisme persetujuan merupakan salah satu sistem izin terpenting dalam mata uang kripto.

Mekanisme ini memungkinkan pengguna memberi wewenang kepada smart contract, operator, wallet, protokol, atau sistem governance untuk bertindak sesuai batas yang ditentukan.

Bentuk yang paling umum adalah persetujuan token ERC-20, yaitu ketika pengguna memberikan allowance kepada spender.

Mekanisme persetujuan memungkinkan DeFi, NFT, bridge, staking, pembayaran, game, dan berbagai alur kerja smart contract lainnya.

Mekanisme ini juga menimbulkan risiko keamanan serius ketika pengguna menyetujui kontrak berbahaya, memberikan izin tanpa batas, mengabaikan allowance lama, atau menandatangani pesan otorisasi yang tidak jelas.

Pelajaran utamanya adalah bahwa persetujuan bukanlah langkah latar belakang yang tidak berbahaya.

Persetujuan adalah izin yang dapat menentukan apakah alamat lain boleh memindahkan aset bernilai.

Pengguna sebaiknya hanya menyetujui hal yang diperlukan, membaca permintaan wallet dengan cermat, menghindari persetujuan tanpa batas jika memungkinkan, dan secara rutin mencabut izin yang tidak digunakan.

Developer sebaiknya merancang alur persetujuan yang jelas, terbatas, dan mudah dicabut.

Wallet sebaiknya menjelaskan persetujuan dengan bahasa sederhana agar pengguna memahami apa yang mereka tandatangani.

Seiring wallet kripto berkembang dengan tanda tangan permit, account abstraction, session key, dan otorisasi akun bergaya EIP-7702, mekanisme persetujuan akan menjadi lebih kuat dan lebih kompleks.

Karena itu, pengelolaan izin menjadi bagian inti dari keamanan kripto.

Pengguna yang memahami persetujuan akan lebih siap menghindari phishing, mengurangi risiko smart contract, dan melindungi aset jangka panjang.

Protokol yang merancang persetujuan lebih aman berpeluang lebih besar mendapatkan kepercayaan pengguna.

Oleh karena itu, mekanisme persetujuan bukan hanya fitur teknis.

Mekanisme ini merupakan fondasi interaksi yang aman antara pengguna, token, smart contract, dan ekonomi on-chain yang lebih luas.
Menarik Kembali / Peluang?
Menarik Kembali / Peluang?Menarik Kembali / Peluang?
Simak arus masuk ETF BTC $2,4 miliar pada likuidasi