Skip to content
Semua panduan opsyen
Keselamatan dompet kripto12 minit

Kelulusan dan allowance token: cara menyemak dan membatalkan ERC-20

Ketahui perkara yang dibenarkan oleh kelulusan ERC-20, cara allowance tanpa had dan tandatangan permit berfungsi, serta kesan pembatalan yang sebenar.

Dalam panduan iniSambungan dompet dan kelulusan token ialah kebenaran berbeza

Ringkasan ringkas

Panggilan ERC-20 `approve` biasanya tidak menghantar token serta-merta. Ia merekod jumlah yang boleh diminta oleh spender tertentu kemudian melalui `transferFrom`. Memutuskan sambungan dompet daripada laman tidak semestinya memadam allowance dalam rantaian, dan menetapkannya kepada sifar tidak membalikkan pemindahan yang telah selesai.

Sambungan dompet dan kelulusan token ialah kebenaran berbeza

Menyambungkan dompet ke laman biasanya membolehkan aplikasi melihat alamat awam dan meminta tandatangan. Itu sahaja tidak memberinya hak untuk memindahkan semua token ERC-20. Allowance direkodkan secara berasingan dalam kontrak token. MetaMask juga membezakan memutuskan sambungan dapp dan membatalkan kelulusan token.

Allowance ERC-20 terikat kepada kontrak token, rangkaian, alamat pemilik dan alamat spender. Kelulusan di Ethereum bukan kelulusan untuk token bernama sama di Polygon atau token lain. Jika hanya mengingati “saya meluluskan laman ini”, anda mungkin terlepas token dan rangkaian yang masih mempunyai kebenaran aktif.

Panduan ini meliputi approve, allowance dan transferFrom ERC-20 pada Ethereum dan rangkaian yang serasi. Pemindahan ETH asli, setApprovalForAll NFT, piawaian lain dan sambungan log masuk dompet menggunakan model berbeza. Untuk sandaran dan pemulihan kunci, lihat panduan frasa seed dan pemulihan dompet.

`approve` merekod had perbelanjaan, bukan menghantar token

Pemilik boleh memanggil approve(spender, amount) pada kontrak token untuk membenarkan spender tertentu menggunakan token sehingga had itu. transferFrom membolehkan spender memindahkan token bagi pihak pemilik. Maka approve biasanya tidak mengubah baki serta-merta, tetapi panggilan kontrak kemudian boleh menggunakan allowance. Inilah aliran dalam piawaian ERC-20.

Contohnya, dompet mempunyai 300 token dan memberi router allowance 80. Dalam ERC-20 biasa, had berkesan ialah nilai yang lebih kecil antara baki dan allowance yang masih ada. Kebenaran itu tidak semestinya terhad kepada satu dagangan; kontrak boleh memanggil transferFrom beberapa kali. Jika kontrak yang diluluskan atau laluan panggilan disalahgunakan, token mungkin bergerak tanpa dijangka. Tingkah laku token yang tidak standard juga perlu diperiksa.

Kelulusan lazimnya transaksi dalam rantaian kepada kontrak token dan boleh dikenakan fi rangkaian. Sesetengah aplikasi memisahkan kelulusan dan pertukaran; yang lain menggabungkan tandatangan kebenaran dengan transaksi kemudian. Periksa kandungan sebenar yang diminta oleh dompet dan rangkaian yang dipilih, bukan label butang “Approve” sahaja.

Allowance tanpa had bukan pengeluaran serta-merta

Label “Unlimited” biasanya bermaksud allowance hampir kepada nilai integer maksimum token. Ia tidak mencipta token tanpa had atau memindahkan baki semasa kelulusan dibuat. Namun spender boleh menggunakan kebenaran yang masih ada kemudian terhadap token sejenis yang masuk ke dompet sama pada rangkaian sama. Sesetengah pelaksanaan tidak mengurangkan allowance maksimum selepas digunakan; semak tingkah laku token.

Aplikasi mungkin meminta had besar untuk mengurangkan kelulusan berulang, tetapi kemudahan dan pendedahan risiko perlu dinilai bersama. Kerentanan atau penyalahgunaan kawalan kontrak spender boleh menjadikan kelulusan lama digunakan kemudian. Panduan pembatalan Ethereum.org menerangkan sebab allowance besar mungkin masih penting selepas aset dipulangkan ke dompet.

Had kecil tidak menghapuskan semua risiko. Meluluskan token palsu atau spender yang salah boleh menyebabkan kerugian walaupun jumlahnya kecil; kelulusan setiap kali juga menambah fi dan peluang tersilap. Pertimbangkan jumlah yang dirancang, kekerapan penggunaan, kepercayaan terhadap kontrak dan keupayaan menyemak kebenaran kemudian.

Ilustrasi tanpa teks tentang dompet, token emas dan injap yang menunjukkan had kebenaran token yang berbeza.
Allowance membolehkan kontrak tertentu menggunakan token kemudian; semak alamat dan jumlah sebelum menandatangani.

Semak rangkaian, token, spender dan jumlah sebelum menandatangani

Sebelum menandatangani, semak empat perkara: rangkaian yang dipilih sepadan dengan arahan aplikasi; alamat kontrak token betul, bukan simbol sahaja; alamat spender sepadan dengan dokumentasi rasmi atau data kontrak yang boleh disahkan; dan hadnya sesuai dengan tindakan yang dirancang, bukannya meninggalkan kebenaran luas.

Jangan sambungkan dompet daripada pautan mesej peribadi, kod QR, sembang sokongan atau iklan yang belum disahkan. Laman pancingan data boleh meniru aplikasi sebenar. Mulakan daripada alamat rasmi tersimpan atau dokumentasi projek. Nama kontrak yang biasa tidak membuktikan alamatnya betul; tanda pengesahan dalam peneroka blok juga bukan jaminan keselamatan.

Penandatangan perkakasan boleh membantu memisahkan kunci peribadi daripada pelayar biasa, tetapi tidak menentukan sama ada spender atau jumlah yang diluluskan selamat. Jika peranti tidak memaparkan permintaan dalam bentuk yang boleh difahami, berhenti dan semak penerangan rasmi penyedia dompet. Maklumat yang sedikit bermaksud perkara yang boleh disemak juga sedikit.

`permit` mengubah cara kelulusan dibuat, tetapi tetap memberi kebenaran

Sesetengah ERC-20 menyokong ERC-2612 permit. Daripada menghantar transaksi approve biasa, pemilik menandatangani typed data; pihak lain boleh menghantar tandatangan itu untuk menetapkan allowance. Mesej piawai mengandungi pemilik, spender, nilai, nonce dan deadline serta domain yang mengikat tandatangan kepada rangkaian dan kontrak.

deadline ERC-2612 ialah masa terakhir permit bertandatangan boleh dihantar. Ia tidak bermaksud allowance yang telah berjaya ditetapkan akan luput secara automatik pada waktu itu. Kebenaran boleh kekal sehingga digunakan, diubah atau dibatalkan. Sesetengah token menggunakan reka bentuk permit atau aturan tamat tempoh lain; jangan anggap semua permintaan bernama “permit” mengikuti ERC-2612.

Tandatangan boleh membolehkan akaun lain membayar fi rangkaian, tetapi itu tidak menjadikannya pengesahan log masuk yang tidak berbahaya. Jika dompet tidak memaparkan token, spender, nilai dan masa dengan jelas, atau maklumatnya berbeza daripada penerangan aplikasi, tolak dan rujuk dokumentasi rasmi. Tandatangan yang belum dihantar juga boleh dihantar oleh pihak lain sebelum deadline.

Memutuskan sambungan laman tidak membatalkan allowance dalam rantaian

Log keluar atau memutuskan dompet mengubah sesi pelayar atau kebenaran sambungan. Allowance ERC-20 yang telah direkodkan dalam kontrak token mungkin kekal. Sebaliknya, membatalkannya tidak memadam alamat awam yang telah diketahui laman atau sejarah dalam rantaian. Panduan putus sambungan MetaMask menerangkan perbezaannya.

Pembatalan biasanya memerlukan transaksi dalam rantaian yang menetapkan allowance token dan spender itu kepada sifar. Transaksi ini dikenakan fi rangkaian dan kebenaran lama mungkin kekal aktif sehingga disahkan. Selepas itu, muat semula senarai kelulusan atau semak kontrak sekali lagi untuk memastikan nilainya sifar bagi dompet, rangkaian, token dan spender yang sama. MetaMask dan Ethereum.org menerangkan pemeriksaan mengikut rangkaian; sahkan domain rasmi dan rangkaian yang dipilih.

Setiap rangkaian menyimpan keadaan berasingan. Menetapkan allowance Ethereum kepada sifar tidak mengubah kebenaran token sama pada rangkaian lain. Semak setiap akaun, kontrak token, spender dan rangkaian yang berkaitan, kemudian sahkan hasil selepas transaksi dimuktamadkan. Alat pembatalan tidak memerlukan frasa seed atau kunci peribadi.

Pembatalan menghentikan penggunaan akan datang, bukan pemindahan yang sudah selesai

Selepas allowance sifar disahkan, kebenaran itu tidak boleh menyokong transferFrom baharu. Namun ia tidak membalikkan pemindahan yang telah selesai, mendapatkan token daripada penerima atau menghapuskan kebenaran kontrak lain. Jika spender mencurigakan sudah memindahkan token, pembatalan sahaja tidak menjamin pemulihan.

Jika kunci peribadi terdedah, penyerang masih boleh menandatangani transaksi melalui cara lain. Kelulusan untuk spender atau token lain, kebenaran operator NFT, tandatangan permit dan kebenaran khusus kontrak juga mungkin kekal. Tafsirkan hasil hanya dalam skop dompet dan rangkaian yang diperiksa.

Selepas pembatalan, pertukaran, deposit atau penebusan seterusnya mungkin memerlukan kelulusan baharu. Sebelum itu, semak sama ada transaksi tertunda atau kedudukan aktif menggunakan kebenaran tersebut dan rujuk bantuan rasmi protokol jika perlu. Fahami perkara yang berubah pada langkah seterusnya.

Mengubah allowance boleh melibatkan keadaan perlumbaan ERC-20

Piawaian ERC-20 mengesyorkan antara muka menetapkan allowance bukan sifar kepada sifar sebelum menggantikannya dengan nilai bukan sifar lain. Jika transaksi spender disusun antara kelulusan lama dan baharu, ia mungkin menggunakan lebih daripada yang dijangka. Contohnya, apabila menukar 100 kepada 25, spender boleh menggunakan 100 lama sebelum 25 baharu direkodkan, kemudian menggunakan 25 itu juga.

Mengesahkan sifar dahulu mengurangkan kemungkinan nilai lama dan baharu tersedia serentak, tetapi tidak membalikkan penggunaan allowance lama sebelum transaksi sifar disahkan. Kedua-dua langkah mungkin dikenakan fi dan tingkah laku token berbeza-beza. Ikut proses kemas kini selamat yang didokumenkan oleh dompet atau token dan tunggu pengesahan.

Jika tidak tahu allowance semasa, semak kontrak token pada rangkaian yang dipilih sebelum menggantikannya. Jika dompet menunjukkan nilai kosong atau tidak dijangka, pastikan anda tidak melihat rangkaian atau alamat lain. Alamat pemilik dan kontrak token perlu sepadan.

Gunakan rutin ringkas untuk menyemak kebenaran dompet dan token

  1. Sahkan domain rasmi projek dan rangkaian yang dipilih.
  2. Semak alamat kontrak token dan spender, kemudian bandingkan had dengan jumlah yang diperlukan.
  3. Baca transaksi atau typed data sebenar yang dipaparkan oleh dompet. Jangan tandatangani permintaan yang tidak difahami.
  4. Semak spender yang tidak lagi digunakan atau dipercayai pada rangkaian berkaitan; jika sesuai, sifarkan allowance dan sahkan hasilnya.
  5. Semasa membandingkan dompet, semak sokongan rangkaian, kejelasan paparan kelulusan serta panduan kemas kini dan pemulihan.

Dompet perkakasan ialah satu pilihan untuk menyimpan kunci dan menyemak tandatangan, bukan jaminan keselamatan kontrak atau penghalang daripada meluluskan had luas. Semak spender, token, rangkaian dan jumlah sendiri. Memahami bahawa allowance boleh kekal berasingan daripada sambungan laman membantu anda membandingkan ciri keselamatan dompet dan batas sebenarnya.

Soalan lazim

Q1Adakah memutuskan sambungan dompet memadam kelulusan token sedia ada?

Tidak. Sambungan laman ialah sesi; allowance ERC-20 ialah keadaan dalam rantaian pada kontrak token. Semak spender secara berasingan pada rangkaian dan token berkaitan, lalu batalkan jika perlu.

Q2Jika allowance disifarkan, bolehkah token yang telah dipindahkan diperoleh semula?

Tidak. Selepas disahkan, sifar menghalang penggunaan akan datang tetapi tidak membalikkan pemindahan selesai. Semak kelulusan lain dan kemungkinan kunci terdedah secara berasingan.

Q3Adakah semua token kripto dan NFT menggunakan allowance ERC-20?

Tidak. Panduan ini membincangkan approve dan transferFrom ERC-20. Kebenaran operator NFT, aset asli, piawaian lain dan kebenaran khusus rangkaian mempunyai peraturan berbeza.

Sumber dan bacaan lanjut

Laporkan masalah

Kami akan menyediakan e-mel dengan pautan artikel ini. Mark menerima laporan hanya selepas anda menghantarnya

Semakan pantas

Sudah membaca panduan? Uji diri dengan 3 soalan

Soalan 1 / 3

Soalan 01

Apakah yang ditetapkan oleh `approve(spender, amount)` ERC-20?

Pilih jawapan untuk melihat penjelasan

Glosari opsyen