Token Harcama İzinleri Nasıl Kaldırılır?

Token harcama izni (allowance), bir akıllı sözleşmenin cüzdanınızdaki belirli bir token’ı ne kadar harcayabileceğini belirleyen yetkidir. Artık kullanmadığınız izinler, izin kontrol aracında tutar sıfırlanarak kaldırılır.

Bu sayfada 10
  1. Token harcama izni nasıl çalışır?
  2. Cüzdan bağlantısını kesmek neden yetmez?
  3. Token izinleri nasıl kaldırılır? Adım adım
  4. İzni kaldırınca uygulama çalışmaz mı?
  5. Permit ve Permit2 imzaları nedir?
  6. Özel anahtarınız sızdıysa izin kaldırmak yeter mi?
  7. İzinlerinizi ne zaman kontrol etmelisiniz?
  8. Sınırsız izin mi, sınırlı izin mi?
  9. Sık sorulan sorular
  10. Kaynaklar

Token harcama izni (allowance), cüzdanınızın bir akıllı sözleşmeye “benim adıma bu token’dan şu kadarını harcayabilirsin” yetkisi vermesidir. Bir DEX’te takas yaparken veya bir borç verme protokolüne para yatırırken bu izni verirsiniz. İzni kaldırmak için Revoke.cash, Etherscan’in Token Approval Checker aracı ya da cüzdanınızın izin yönetimi ekranından ilgili izni bulup tutarı sıfırlayan bir işlem imzalarsınız.

İzinlerin kaldırılması önemlidir, çünkü verilen izin siz iptal edene kadar geçerli kalır. Sözleşme sonradan saldırıya uğrarsa veya izni bir phishing sitesine verdiyseniz, token’larınız sizin yeni bir onayınız olmadan çekilebilir.

Token harcama izni nasıl çalışır?

Ethereum ve uyumlu ağlardaki ERC-20 token’lar, bir sözleşmenin sizin token’larınızı doğrudan alamayacağı şekilde tasarlanmıştır. Bu yüzden bir uygulamayı kullanmadan önce iki işlem yaparsınız: Önce “approve” işlemiyle sözleşmeye harcama izni verirsiniz, ardından asıl takas veya yatırma işlemini yaparsınız. Bir izin üç bilgiden oluşur: token, harcayıcı (spender) sözleşme ve izin verilen tutar.

Birçok uygulama kolaylık için varsayılan olarak sınırsız izin ister. Böylece her işlemde tekrar onay vermeniz gerekmez, ancak o sözleşme cüzdanınızdaki o token’ın tamamını harcayabilir hâle gelir. NFT’lerde benzer yetki “setApprovalForAll” ile verilir ve bir koleksiyondaki bütün NFT’leri kapsar.

Cüzdan bağlantısını kesmek neden yetmez?

Cüzdan uygulamasında bir siteyle bağlantıyı kesmek, yalnızca o sitenin adresinizi görmesini ve size yeni işlem önermesini engeller. Harcama izni ise blockchain üzerinde, token sözleşmesinde kayıtlıdır. Bağlantıyı kesseniz, tarayıcı eklentisini silseniz veya cüzdanı başka bir cihaza taşısanız bile izin geçerliliğini korur. İzni ortadan kaldırmanın tek yolu, zincir üzerinde yeni bir işlemle tutarı sıfırlamaktır.

Token izinleri nasıl kaldırılır? Adım adım

  1. Ağı ve adresi belirleyin. İzinler her ağda ayrıdır. Ethereum’daki izinleri kaldırmak Arbitrum veya BNB Smart Chain’deki izinleri etkilemez; kullandığınız her ağı ayrı kontrol edin.
  2. Güvenilir bir izin aracı açın. Revoke.cash veya kullandığınız ağın blok gezginindeki izin kontrol sayfası (Etherscan’de Token Approval Checker) yaygın seçeneklerdir. Rabby gibi bazı cüzdanların kendi izin yönetim ekranı da vardır. Adresi doğrudan yazın; arama reklamlarındaki sahte kopyalara dikkat edin.
  3. Listeyi inceleyin. Her satırda token, harcayıcı sözleşme, izin tutarı ve verilme tarihi görünür. Tanımadığınız sözleşmeler, sınırsız izinler ve artık kullanmadığınız uygulamalar öncelikli adaylardır.
  4. İzni kaldırın. “Revoke” butonuna bastığınızda cüzdanınız, izni sıfıra çeken bir işlem imzalamanızı ister. Cüzdan ekranında işlemin gerçekten bir izin iptali (approve, tutar 0) olduğunu kontrol edin.
  5. Ücreti hesaba katın. Her iptal ayrı bir işlemdir ve ağ ücreti öder. Ethereum ana ağında çok sayıda iptal pahalı olabilir; değerli token’lardaki ve riskli izinlerdeki iptallere öncelik verin.

Uygulamayı kullanmaya devam edecekseniz izni tamamen kaldırmak yerine, araç destekliyorsa ihtiyacınız kadar bir tutara düşürebilirsiniz.

İzni kaldırınca uygulama çalışmaz mı?

Uygulama çalışmaya devam eder, ancak bir sonraki kullanımda yeniden izin ister. Bu, küçük bir ek ücret ve bir ek imza demektir. Sık kullandığınız güvendiğiniz bir uygulamada makul bir izin bırakmak pratik olabilir; nadiren kullandığınız veya bir kez denediğiniz uygulamalardaki izinleri kaldırmak ise riskinizi doğrudan azaltır.

Permit ve Permit2 imzaları nedir?

Bazı token’lar ERC-2612 standardındaki “permit” özelliğini destekler. Bu yöntemde izin, zincir üzerinde bir işlemle değil, ücretsiz bir mesaj imzasıyla verilir. Uniswap’in geliştirdiği Permit2 sözleşmesi de benzer şekilde imzayla, süre sınırlı izinler oluşturur.

Ücret ödenmediği için bu imzalar zararsız sanılır, ama sonuçları normal bir izinle aynıdır. Phishing siteleri bu yüzden sıklıkla permit imzası ister. İmzalamadan önce cüzdanın gösterdiği token, harcayıcı, tutar ve son geçerlilik tarihini okuyun.

Özel anahtarınız sızdıysa izin kaldırmak yeter mi?

Hayır. İzin kaldırmak, yalnızca belirli sözleşmelerin token’larınızı harcamasını engeller. Kurtarma kelimeleriniz veya özel anahtarınız ele geçirildiyse saldırgan cüzdanın kendisini kontrol eder ve token’ları doğrudan transfer edebilir. Bu durumda yapılması gereken, yeni bir cüzdan oluşturup varlıkları hemen oraya taşımaktır. Ayrıntılar için phishing’den korunma rehberine bakabilirsiniz.

İzinlerinizi ne zaman kontrol etmelisiniz?

  • Tanımadığınız bir siteye cüzdan bağlayıp imza attıktan hemen sonra.
  • Kullandığınız bir protokolün saldırıya uğradığı haberini gördüğünüzde.
  • Bir uygulamayı kullanmayı bıraktığınızda.
  • Bunların dışında, aktif DeFi kullanıcısıysanız birkaç ayda bir düzenli olarak.

Riskleri baştan sınırlamak için uygulamalara bağlandığınız cüzdanı, uzun vadeli birikiminizi tuttuğunuz cüzdandan ayırmak da etkili bir yöntemdir. Sıcak ve soğuk cüzdan ayrımı bu yapıyı kurmanıza yardımcı olur. DEX kullanırken izin adımının nasıl göründüğünü DEX rehberinde anlattık.

Sınırsız izin mi, sınırlı izin mi?

Birçok cüzdan, izin isteği geldiğinde tutarı düzenlemenize izin verir. Varsayımsal bir örnek: Bir DEX’te 100 USDC takas edeceksiniz ve uygulama sınırsız izin istiyor. İzni 100 USDC ile sınırlarsanız, takas tamamlandığında kalan izin sıfıra iner. Sözleşme ileride saldırıya uğrasa bile cüzdanınızdaki diğer USDC’ler etkilenmez.

Sınırlı iznin bedeli, her yeni işlemde tekrar onay vermek ve her seferinde küçük bir ağ ücreti ödemektir. Bu yüzden pratik bir denge şudur: Sık kullandığınız ve uzun süredir çalışan büyük protokollerde makul bir izin bırakın; yeni, tanımadığınız veya bir kez kullanacağınız uygulamalarda yalnızca işlem tutarı kadar izin verin.

Sık sorulan sorular

İzin kaldırmak para iadesi sağlar mı?

Hayır. İzin kaldırmak yalnızca gelecekteki harcamaları engeller. Daha önce çekilmiş token’lar geri gelmez.

Solana veya Bitcoin’de de token izni var mı?

Bu rehberdeki approve modeli Ethereum ve uyumlu ağlara özgüdür. Solana’da token hesaplarında benzer bir “delegate” yetkisi bulunur ve cüzdanların izin ekranlarından yönetilebilir; Bitcoin’de ise bu türden bir harcama izni yoktur.

Kaynaklar

Bir sonraki okuma