Kripto para dünyasında merkeziyetsiz uygulamalarla (DApp) etkileşime girdiğinizde, genellikle fark etmeden verdiğiniz bir izin türü vardır: token approval. Bu izinler, DeFi protokollerinin, borsaların ve NFT platformlarının çalışması için gereklidir ancak zamanla cüzdanınız için ciddi bir güvenlik açığına dönüşebilir. Bu makalede token approval’ın ne olduğunu, nasıl çalıştığını ve neden düzenli olarak iptal edilmesi gerektiğini ayrıntılı şekilde ele alacağız.
Token Approval Nedir?
Token approval, bir akıllı kontrata cüzdanınızdaki belirli bir token türünü sizin adınıza harcama yetkisi vermenizdir. Örneğin Ethereum ağında ERC-20 standardındaki tokenlar, doğrudan cüzdandan cüzdana serbestçe transfer edilemez; bir DApp’in bu tokenları sizin adınıza kullanabilmesi için önce ona izin (approval) vermeniz gerekir.
Bu mekanizma, ERC-20 standardının approve ve transferFrom fonksiyonları üzerinden çalışır. Örneğin bir merkeziyetsiz borsada (DEX) token takas etmek istediğinizde şu adımlar yaşanır:
- Önce ilgili DEX’in kontratına token approval verirsiniz.
- Bu işlem, kontrata cüzdanınızdaki o token için belirli (veya sınırsız) bir harcama limiti tanımlar.
- Ardından gerçek takas (swap) işlemi gerçekleşir ve kontrat, verilen izin dahilinde tokenlarınızı hareket ettirir.
Bir örnek kod ile approve fonksiyonu şu şekilde çağrılır:
function approve(address spender, uint256 amount) public returns (bool) {
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
Buradaki amount değeri genellikle kullanıcı arayüzlerinde “sınırsız” (unlimited) olarak ayarlanır çünkü bu, her işlemde tekrar onay vermenizi gerektirmez ve daha az gas ücreti öder. Ancak bu kolaylık, güvenlik açısından ciddi bir bedel içerir.
Token Approval Neden Risk Oluşturur?
Sınırsız Harcama İzinleri
Çoğu DApp, kullanıcı deneyimini kolaylaştırmak için varsayılan olarak sınırsız approval talep eder. Bu, ilgili kontrata cüzdanınızdaki o tokenin tamamını, miktarı ne olursa olsun, harcama yetkisi verdiğiniz anlamına gelir. Kontrat güvenli ve dürüst kaldığı sürece bu bir sorun oluşturmaz, fakat kontrat kodu kötü niyetli ise veya zaman içinde hacklenirse, cüzdanınızdaki tüm bakiye risk altına girer.
Kontrat Güvenlik Açıkları
DeFi tarihinde pek çok büyük hack olayı, doğrudan cüzdan özel anahtarlarının çalınmasından değil, kullanıcıların geçmişte verdiği token approval’ların kötüye kullanılmasından kaynaklanmıştır. Bir protokolün akıllı kontratında güvenlik açığı bulunduğunda, saldırganlar bu açığı kullanarak kullanıcıların önceden verdiği approval’lar üzerinden token çekebilir.
Kimlik Avı (Phishing) Saldırıları
Sahte web siteleri, kullanıcıları “cüzdanını bağla” veya “airdrop talep et” gibi mesajlarla kandırarak, fark ettirmeden zararlı bir kontrata sınırsız approval imzalatabilir. Kullanıcı işlem detaylarını dikkatlice okumadığında, saniyeler içinde cüzdanındaki değerli tokenları kaybedebilir.
Unutulan Eski İzinler
Yıllar içinde onlarca farklı DApp ile etkileşime giren bir cüzdan, genellikle kullanıcının unuttuğu, artık kullanılmayan protokollere verilmiş çok sayıda aktif approval biriktirir. Bu protokollerden biri terk edilmiş, güncellenmemiş veya kötü niyetli bir aktör tarafından ele geçirilmiş olabilir. Aktif olmayan her approval, potansiyel bir risk kapısıdır.
Token Approval Nasıl İptal Edilir?
Token approval’ları iptal etmek (revoke) oldukça basittir ve düzenli olarak yapılması önerilen bir cüzdan bakımı işlemidir. İşte izlenebilecek adımlar:
- Revoke.cash veya Etherscan Token Approval Checker gibi araçları kullanarak cüzdan adresinizi girin.
- Cüzdanınıza bağlı tüm aktif approval’ların listesini görüntüleyin.
- Artık kullanmadığınız veya güvenmediğiniz protokollere ait izinleri seçip “Revoke” butonuna tıklayın.
- Cüzdanınızda çıkan işlemi onaylayın (bu işlem küçük bir gas ücreti gerektirir).
Bazı cüzdan uygulamaları (örneğin MetaMask’in bazı sürümleri) ve blok zinciri gezginleri de bu işlevi doğrudan arayüzlerinde sunmaktadır. Farklı ağlar (BNB Chain, Polygon, Arbitrum vb.) için de benzer revoke araçları mevcuttur.
Approval Verirken Alınması Gereken Önlemler
Sınırlı Miktar Belirleyin
Mümkünse cüzdan arayüzünde sınırsız yerine, işlem için gereken tam miktarı manuel olarak girin. Bu, gas ücretini biraz artırsa da riskinizi büyük ölçüde azaltır.
Bilinmeyen Sitelere Cüzdan Bağlamayın
Özellikle sosyal medyada paylaşılan airdrop veya ödül bağlantılarına karşı temkinli olun. Cüzdanınızı yalnızca güvendiğiniz, denetlenmiş (audit) protokollere bağlayın.
Düzenli Olarak Kontrol Yapın
Ayda bir veya birkaç ayda bir, cüzdanınızın approval geçmişini kontrol etmeyi alışkanlık haline getirin. Özellikle aktif olarak DeFi kullanan kullanıcılar için bu adım kritik önem taşır.
Ayrı Cüzdanlar Kullanın
Büyük miktarda varlık tuttuğunuz “ana cüzdan” ile deneme amaçlı DApp’lerle etkileşime girdiğiniz “işlem cüzdanı”nı ayırmak, riskleri izole etmenin etkili bir yoludur.
Sonuç
Token approval, merkeziyetsiz finans ekosisteminin işleyişi için gerekli bir mekanizma olsa da, kontrol edilmediğinde cüzdan güvenliğinizi tehdit eden gizli bir risk kaynağına dönüşebilir. Sınırsız izinlerden kaçınmak, güvenmediğiniz sitelere cüzdan bağlamamak ve düzenli aralıklarla eski approval’ları iptal etmek, kripto varlıklarınızı korumanın en etkili yollarından biridir. Unutmayın, cüzdan güvenliği tek seferlik bir işlem değil, sürekli dikkat gerektiren bir süreçtir.
