WATS Wallet logoWATS Wallet
Teknik7 dk okuma

Token Onayları, Allowance ve Permit: Gerçekte Neyi İmzalıyorsunuz

Bir dApp sizden bir tokeni 'onaylamanızı' her istediğinde, bir sözleşmeye bakiyenizi harcama hakkı veriyorsunuz. İşte ERC-20 allowance'larının gerçekte nasıl çalıştığı, Permit ve Permit2'nin neyi değiştirdiği ve eski onayların bir yükümlülüğe dönüşmesini nasıl önleyeceğiniz.

dApp'ler neden onay istiyor

ERC-20 tokenlarının Web3 kullanıcı deneyiminin yarısını şekillendiren bir tuhaflığı vardır: bir akıllı sözleşme, siz istesenizde bile, adresinizden tokenları öylece alamaz. USDC'nizi takas eden bir DEX'in önce açık izninize ihtiyacı vardır. Bu yüzden pek çok etkileşim iki adımlıdır — önce bir approve işlemi, sonra asıl takas ya da yatırma. Onay bir formalite değildir; süregelen bir harcama yetkisidir ve verildiği işlemden daha uzun yaşar.

approve() gerçekte ne verir

Bir onay imzaladığınızda token sözleşmesi bir allowance kaydeder: X adresi (dApp'in sözleşmesi), tokenlarınızın en fazla N kadarını, harcanana ya da değiştirilene dek, dilediği zaman harcayabilir. İki özellik önemlidir. Birincisi, allowance ziyaret ettiğiniz web sitesinde değil, onayladığınız sözleşmede durur — arayüz ortadan kalkabilir, izin kalır. İkincisi, harcama anında sizin katılımınız gerekmez: yetki bir kez verildikten sonra onaylı sözleşme, sizden yeni bir imza almadan, sonraki herhangi bir işlemde tokenları çekebilir. Onayları kullanışlı yapan da tam olarak budur — saldırı yüzeyi yapan da.

Sınırsız onaylar: pratik ve kalıcı bir risk

Her onay gas'e mal olduğundan, birçok dApp bir daha onay istememek için fiilen sınırsız bir allowance ister. Kolaylık gerçektir, ama takas da öyle: bir sözleşmeye sınırsız allowance, o tokendeki tüm bakiyenizin sonsuza dek o sözleşmenin güvenliğine bağlı olması demektir. Sözleşme yıllar sonra istismar edilirse — ya da baştan beri kötü niyetliyse — saldırganın anahtarınıza ya da imzanıza ihtiyacı yoktur; verdiğiniz allowance yeterlidir. En büyük cüzdan boşaltma vakalarının birçoğu anahtar hırsızlığı değildi; sadece eski onayların paraya çevrilmesiydi.

Permit ve Permit2: imzayla onay

Modern iyileştirme Permit'tir (EIP-2612): zincir üstü bir approve işlemi yerine, dApp'in kendi eylemiyle birlikte gönderdiği zincir dışı bir mesaj imzalarsınız — iki işlem yerine bir, ayrı onay gas'i yok ve izin bir son kullanma tarihiyle sınırlandırılabilir. Permit2, fikri EIP-2612'yi hiç uygulamamış tokenlara genelleştirir; süresi dolan, miktarı sınırlı yetkiler veren ortak bir onay merkezi gibi çalışır. Bunlar gerçek iyileştirmelerdir, ama neyi değiştirdiklerine dikkat edin: eskiden işlemlerin yaptığı işi artık imzalar yapıyor. Sizi yanlış Permit mesajını imzalamaya ikna eden bir oltalama sitesi, kötü niyetli bir onayla aynı sonuca ulaşır — dolayısıyla imzaladığınızı okumak eskisinden daha da önemlidir.

Saldırı yüzeyi: drainer'lar ve bayat allowance'lar

Onay istismarı iki tatta gelir. Aktif: drainer siteleri gerçek dApp'leri taklit eder ve "claim" ya da "cüzdan doğrula" gibi zararsız görünen eylemler kılığında onaylar (veya Permit imzaları) ister. Pasif: yıllar önce meşru sözleşmelere verdiğiniz allowance'lar, sözleşme, yönetici anahtarları ya da yükseltme yolu ele geçirilene dek uykuda bekler. İkisi de bağlan-ve-onayla akışını Web3'ün güvenlik açısından kritik anı olarak görmek için birer nedendir — güvenli yolunu cüzdanınızı bir dApp'e bağlama rehberimizde anlatıyoruz.

Gerçekten işe yarayan onay hijyeni

Üç alışkanlık riskin çoğunu kapatır. dApp izin veriyorsa, özellikle büyük bakiyeler için sınırlı miktarlar onaylayın — sonraki ek onay, ucuz bir sigortadır. Allowance'ları saygın bir onay denetleyicisiyle düzenli inceleyip iptal edin; artık kullanmadığınız her şeyi atılacak ölü ağırlık sayın (iptalin kendisi de bir işlemdir). Ve ciddi varlıkları, aktif dApp cüzdanınızdan ayrı, onay imzalamayan bir adreste tutun. Daha katmanlı alışkanlıklar cüzdan güvenliği en iyi uygulamalarımızda.

WATS bu tabloda nerede

Onaylar imzadır ve imzalar cüzdanın alanıdır. WATS tamamen non-custodial'dir — anahtarlarınızı siz tutarsınız, WATS asla bir anahtar tutmaz — dolayısıyla her onay, Permit imzası ve iptal, yalnızca sizin anahtarınız imzaladığında, tarayıcı uzantısından ya da mobil uygulamadan, EVM, Solana ve TON genelinde gerçekleşir. Ücret tarafı ise WATS'ı benzersiz kılan yerdir: onay ve iptal işlemleri dahil her eylem, zincirin yerel gas'i yerine tek bir tokenle, ATS ile ücretlendirilir — EVM'de bir ERC-4337 paymaster, Solana ve TON'da eşdeğer bir ücret ödeyici/aktarıcı aracılığıyla — böylece eski allowance'ları temizlemek, o ağda gas tokeniniz bitti diye asla yarıda kalmaz. Toplanan ATS 100M arzdan 30M tabana doğru yakılır ve ATS bir LayerZero OFT olduğundan tek bakiye tüm zincirleri kapsar. WATS, ERC-4337 ile OFT tek-token ücretlerini bu yakımla birleştiren ilk ve tek cüzdandır — ayrıntılar ATS ücret sayfasında.

Sıkça sorulan sorular

Token allowance nedir?

Allowance, bir ERC-20 token sözleşmesine kaydedilen süregelen bir izindir: belirli bir sözleşmenin, tokenlarınızın belirli bir miktara kadarını harcayabileceğini söyler. Bir approve işlemi imzaladığınızda oluşur ve — kullandığınız web sitesinden bağımsız olarak — harcanana, değiştirilene ya da iptal edilene dek sürer. Harcama anında onaylı sözleşmenin sizden başka bir imzaya ihtiyacı yoktur.

Sınırsız (sonsuz) token onayları güvenli mi?

Kullanışlıdırlar ama kalıcı bir kuyruk riski taşırlar: o tokendeki tüm bakiyeniz, onaylanan sözleşmenin süresiz olarak asla istismar edilmemesine ya da kötü niyetli olmamasına bağlıdır. Küçük aktif bakiyelerde kolaylık çoğu zaman ağır basar; büyük varlıklar için sınırlı miktarları tercih edin ve artık kullanmadığınız allowance'ları düzenli olarak iptal edin. Büyük boşaltma vakalarının birçoğu çalınan anahtarlar değil, istismar edilen eski onaylardı.

Permit ile normal onay arasındaki fark nedir?

Normal onay, dApp harekete geçmeden önce gas'e mal olan ayrı bir zincir üstü işlemdir. Permit (EIP-2612) onu, dApp'in kendi işlemine iliştirdiği zincir dışı bir imzayla değiştirir — tek adım, isteğe bağlı son kullanma tarihleriyle; Permit2 bu deseni yerel Permit desteği olmayan tokenlara genişletir. Güvenlik modeli de buna göre kayar: artık bir imza harcama yetkisi verebilir, dolayısıyla imza isteklerini tıpkı bir onayı inceler gibi inceleyin.