Hanya untuk tujuan edukasi; bukan merupakan nasihat investasi atau rekomendasi investasi. Investasi dapat mengakibatkan kerugian.
Jawaban langsung
ERC-2612 menggunakan tanda tangan EIP-712 untuk menetapkan allowance token ERC-20 tanpa transaksi approve terpisah. Artikel ini menjelaskan pemeriksaan Owner, Spender, Value, Nonce, dan Deadline serta verifikasi keadaan on-chain.
Saat permit yang valid ditambang, kontrak menetapkan allowance(owner, spender) ke value dan menaikkan nonce pemilik sebesar 1. Relayer atau pihak ketiga dapat mengirimkan tanda tangan, sehingga pemilik tidak perlu mengirim transaksi atau membayar gasnya. deadline hanya diperiksa saat permit dikirim; deadline tidak membuat allowance yang sudah ditulis kedaluwarsa otomatis. Selama allowance tidak nol, Spender dapat memanggil transferFrom dalam batasnya.
Menyelesaikan tinjauan ini tidak membuktikan suatu aset, transaksi, atau sistem aman.
Cara kerjanya
Pesan mengikat owner, spender, value, nonce, dan deadline; domain EIP-712 mengikat tanda tangan ke kontrak token dan ID rantai yang benar. Kontrak hanya menerimanya ketika block.timestamp <= deadline; setelah berhasil, kontrak menulis allowance dan menaikkan nonce, sedangkan deadline yang lebih lambat tidak mengurangi allowance yang sudah ditulis. Halaman berbahaya dapat mengganti Spender dengan kontrak serangan, menetapkan value ke 2^256-1, atau membuat deadline sangat jauh.
Operasi on-chain harus dibagi menjadi empat lapisan: antarmuka dompet, siaran RPC, eksekusi kontrak, dan finalitas blok. Keberhasilan lapisan mana pun tidak dapat menggantikan verifikasi lapisan lainnya. Hasil nyata didasarkan pada penerimaan transaksi, peristiwa, penyimpanan kontrak, dan saldo pada rantai yang benar.
Contoh
Pengguna hanya ingin mengotorisasi 100 USDC, tetapi value yang ditandatangani adalah 2^256-1 dan deadline-nya sepuluh tahun lagi. Panggilan yang berhasil menetapkan maksimum itu dan menaikkan nonce; walaupun transaksi pertama hanya mentransfer 100, penyerang dapat mentransfer USDC yang disetor kemudian selama allowance masih ada. Setelah deadline lewat, permit yang belum dipakai tidak dapat dikirim, tetapi allowance yang sudah ditulis tidak otomatis menjadi 0. Cabut dengan approve(spender, 0) atau perubahan tepercaya lainnya.
Gas, tarif pajak, dan waktu blok dalam kasus ini hanya menunjukkan urutan besarnya. Status kontrak saat ini, likuiditas kumpulan, dan izin harus dibaca sebelum pengoperasian. Jumlah secara bersamaan mencatat jumlah yang dapat dibaca manusia, nilai dolar, dan bilangan bulat mentah secara on-chain untuk menghindari kesalahan presisi.
Resiko
Bandingkan keuntungan protokol dengan kerugian keluar dalam kasus terburuk. Asumsikan Gas meningkat lima kali lipat, dampak harga meningkat dua kali lipat, dan stablecoin didiskon sebesar 5%. Jika Anda bergabung untuk satu hari lagi, Anda tidak akan bisa keluar. Jika imbal hasil mingguan atau bulanan tidak dapat menutupi hambatan ini, apa yang disebut dengan imbal hasil tinggi tidak memberikan kompensasi yang memadai. Kegagalan protokol apa pun tidak boleh membuat seluruh dompet tidak mampu membayar bahan bakar atau mentransfer aset.
Kesalahpahaman umum
-
Mitos 1: Tampilan front-end adalah fakta pada rantai. Front end mungkin di-cache, terlambat diindeks, atau terhubung ke jaringan yang salah dan harus divalidasi silang.
-
Mitos 2: Peningkatan Gas atau Slippage dapat mengatasi kegagalan apa pun. Gas hanya mempengaruhi penyortiran, dan slippage hanya mengurangi harga; kesalahan izin, Nonce, dan kondisi kontrak tidak akan diperbaiki secara otomatis.
-
Mitos 3: Pengujian dalam jumlah kecil yang berhasil berarti keamanan permanen. Peningkatan administrator, parameter dinamis, dan perubahan likuiditas akan mengubah hasil dan harus ditinjau sebelum setiap perluasan posisi.
Topik terkait
- Tanda Tangan Terstruktur EIP-712
- Klien Cahaya simpul cahaya
- Izin2 tanda tangan
- Konflik penyimpanan kontrak agen: mengapa saldo mungkin kacau setelah peningkatan
- Otorisasi dompet
Sumber
- ERC-2612: Permit Extension for EIP-20 Signed Approvals - Ethereum Improvement Proposals (accessed: 2026-07-28)
- EIP-712: Typed structured data hashing and signing - Ethereum Improvement Proposals (accessed: 2026-07-28)