Token onayları nedir?

Her DeFi etkileşimi bir token onayıyla başlar ve her token onayı, onu oluşturan işlemin ötesinde sürebilen bir izindir.

9 dakika
Token onayları nedir?

Token onayı, merkeziyetsiz bir uygulamanın (dapp) bir cüzdandan belirli bir token türüne erişmesine ve bu tokeni taşımasına izin veren bir akıllı sözleşme iznidir. Onay olmadan, cüzdan uygulamanın arayüzüne bağlı olsa bile hiçbir uygulama kendi kendine saklama cüzdanındaki tokenlere dokunamaz. Onay, bir cüzdanı bağlamak ile bir protokolün içindeki varlıkları gerçekten kullanmasına izin vermek arasındaki boşluğu kapatan unsurdur.

Token onayları, neredeyse her DeFi etkileşimi için gereklidir: merkeziyetsiz bir borsada token takas etmek, bir borç verme protokolüne para yatırmak, bir havuza likidite eklemek veya bir NFT'yi bir pazaryerinde listelemek. Aynı zamanda kripto güvenliğinde en çok istismar edilen mekanizmalardan biridir. MetaMask'ın aylık kripto güvenlik raporları bu tehditleri ayrıntılı olarak takip etmektedir. Örneğin, Şubat 2026 Kripto Güvenlik Raporu, "imza kimlik avı" saldırılarında, yani onay kimlik avında %207'lik bir artışı ele almıştır. Token onaylarının ne işe yaradığını, nasıl kalıcı olduklarını ve saldırganların bunları nasıl istismar edebildiğini anlamak, kendi kendine saklama cüzdanı kullanan herkes için son derece önemlidir.

Sorumluluk Reddi: Bu içerik yalnızca eğitim amaçlıdır. Finansal tavsiye, talep veya İngiltere kitlesine yönelik içerik değildir. Kripto cüzdanlar ve dijital varlıklar risklidir ve tüm kullanıcılar için uygun değildir.

Token onayları nasıl çalışır?

Token onaylarına ilişkin yaygın bir örnek şudur: Merkeziyetsiz bir borsada USDC ile ETH takas etmek. Uygulamanın akıllı sözleşmesinin, USDC'yi cüzdandan alıp işlemi gerçekleştirmek için izne ihtiyacı vardır. Bu izin, token onayıdır.

Sözleşme düzeyinde kullanıcı, USDC token sözleşmesinde approve() adlı bir fonksiyonu çağırır. Bu fonksiyon iki girdi alır: harcayan (yetkilendirilen akıllı sözleşme adresi) ve miktar (harcayanın taşımasına izin verilen token sayısı). Onay işlemi blok zincirinde onaylandıktan sonra, harcayan sözleşme kullanıcıdan herhangi bir ek onay almaksızın kullanıcının cüzdanından onaylanan miktara kadar o tokeni taşımak için transferFrom() fonksiyonunu çağırabilir.

Token onayları hakkında, özellikle yeni başlayanların bilmesi gereken iki önemli ayrıntı vardır. Birincisi, onay tek bir token ve tek bir harcayan için geçerlidir. Merkeziyetsiz bir borsanın (DEX) USDC harcamasını onaylamak, ona ETH, BTC veya başka herhangi bir tokene erişim sağlamaz. İkincisi, onay ağ ücreti gerektiren bir blok zinciri işlemidir; bu, asıl takasdan ayrı bir adımdır ve DeFi etkileşimlerinin genellikle iki onay gerektirmesinin nedeni budur: biri onaylamak için, diğeri işlemi gerçekleştirmek için.

Sınırlı ve sınırsız onaylar

Bir onayın miktar alanı, harcayanın kaç tokene erişebileceğini belirler.

Sınırlı onay, harcayana yalnızca belirli sayıda tokeni taşıma yetkisi verir; örneğin, belirli bir takas için gereken tam olarak 500 USDC. Bu 500 USDC transfer edildikten sonra ödenek tükenir. Bir sonraki takas için yeni bir onay gerekecektir; bu da başka bir blok zinciri işlemi ve başka bir ağ ücreti anlamına gelir.

Sınırsız onay, harcayana o tokenin mümkün olan maksimum miktarını taşıma yetkisi verir (teknik olarak 2^256 − 1, herhangi bir tokenin toplam arzından çok daha büyük bir sayı). Bu, sözleşmenin şu anda ve gelecekte başka bir onaya gerek kalmaksızın kullanıcının o tokendeki tüm bakiyesine erişebileceği anlamına gelir. Çoğu uygulama, kullanıcı için sürtüşmeyi azalttığından sınırsız onay talep etmeyi varsayılan olarak kullanır; bir onay ve o tokenle yapılacak tüm gelecekteki işlemler önceden yetkilendirilmiş olur.

Kolaylık gerçektir, ancak risk de öyle. Sınırsız bir onayın süresi hiçbir zaman dolmaz. Onay verilen sözleşme daha sonra istismar edilirse, kötü niyetli olarak yükseltilirse veya kullanıcı onayı meşru bir uygulamayı taklit eden bir kimlik avı sitesinde imzalamışsa, saldırgan kullanıcıdan herhangi bir ek etkileşim olmaksızın onayın kapsadığı her tokeni boşaltabilir. Kurban, tokenler kaybolana kadar onayın var olduğunun farkında bile olmayabilir.

Değerlendirme

Sınırlı token onayı

Sınırsız token onayı

Yetkilendirilen miktar

Belirli (örn. 500 USDC)

Mümkün olan maksimum (tüm bakiye, süresiz)

Kalıcılık

Belirtilen miktar transfer edildikten sonra tükenir

Manuel olarak iptal edilene kadar aktif kalır

Kullanıcı sürtüşmesi

İşlem başına yeni onay gerekir (ek ağ ücretleri)

Tek onay tüm gelecekteki işlemleri kapsar

Sözleşme istismar edilirse risk

Kayıp onaylanan miktarla sınırlıdır

Tüm token bakiyesi risk altındadır

Yaygın kullanım

Güvenlik bilincine sahip kullanıcılar, yüksek değerli işlemler

Çoğu uygulama için varsayılan

Permit2 token onayları nasıl çalışır?

Kasım 2022'de Uniswap Labs, geleneksel token onaylarının yarattığı sürtüşme ve riski gidermek amacıyla Permit2 adlı bir sözleşme yayımladı. 2025 itibarıyla 3,1 milyondan fazla Ethereum mainnet adresi Permit2 sözleşmesini yetkilendirmiş ve Permit2, Uniswap, 1inch, CowSwap ve diğer pek çok protokol tarafından kullanılan DeFi'nin en yaygın entegre onay sistemi haline gelmiştir.

Temel fikir şudur: Kullanıcı, her uygulamanın akıllı sözleşmesine ayrı bir blok zinciri onayı vermek yerine Permit2 sözleşmesine tek bir onay verir. Buradan itibaren, her bireysel uygulama etkileşimi zincir dışı bir imzayla yetkilendirilir; bu imza, hangi tokenlerin, kaç tanesinin, hangi harcayanın ve iznin sona ereceği son tarihin belirtildiği, cüzdanda imzalanan bir mesajdır.

Eski onaylara kıyasla iyileştirmeler anlamlıdır. Permit2 imzaları son tarihler içerdiğinden, eski izinler sonsuza kadar devam etmek yerine otomatik olarak sona erer. Nonce'lar aynı imzanın iki kez kullanılmasını engeller. Kullanıcı, uygulama başına bir onay yerine token başına bir onay imzalar; bu da toplam blok zinciri onay işlemi sayısını ve ilgili ağ ücretlerini azaltır.

Bunun karşılığında saldırı yüzeyi değişir. Eski onaylar, aylarca veya yıllarca önce onaylanmış ve daha sonra ele geçirilmiş sözleşmeler olan atıl blok zinciri izinleri aracılığıyla istismar ediliyordu. Permit2 imzaları ise imzalama anında kimlik avı yoluyla istismar edilir. Permit2 yetkilendirmeleri EIP-712 tipli veri imzaları kullandığından, cüzdanda işlem onayı yerine imzalama istemi olarak görünür. Kötü niyetli bir site, aslında kullanıcının tüm token bakiyesinin transferini yetkilendiren bir Permit2 imzası olan, rutin bir "bu mesajı imzala" isteği gibi görünen bir şey sunabilir. Blok zinciri işlemi yok. Kullanıcı tarafında ağ ücreti yok. Sadece bir imza ve ardından saldırgan transferFrom() fonksiyonunu çağırır.

Drainer'lar token onaylarını nasıl istismar eder?

Cüzdan drainer'ları, kurbanlardan hem eski hem de Permit2 token onaylarını çıkarmak için tasarlanmış otomatik kimlik avı araç setleridir. Hizmet olarak drainer (DaaS) şeklinde çalışırlar: bir geliştirici kötü niyetli akıllı sözleşmeleri, kimlik avı altyapısını ve fon aklama hattını yönetir; iş ortakları ise çalınan fonların bir payı karşılığında hizmeti kiralar (genellikle drainer'ların %75-95'ini elinde tutar).

Cüzdan drainer saldırı kalıpları sıklıkla tutarlı bir sıra izler:

1. Adım: Tuzak. Kurban, sponsorlu bir arama sonucu, sahte bir airdrop bağlantısı, ele geçirilmiş bir Discord sunucusu veya kopyalanmış bir uygulama arayüzü aracılığıyla bir kimlik avı sitesine ulaşır. Site meşru bir protokol gibi görünür: aynı marka kimliği, aynı düzen, çoğunlukla neredeyse aynı URL.

2. Adım: İmza isteği. Site, cüzdanın bir işlem veya Permit2 imzası imzalamasını ister. İstem, standart bir uygulama bağlantısı, token takası veya airdrop talebi gibi görünebilir. Gerçekte ise imza, drainer'ın sözleşmesine kurbanın tokenlerini taşıma yetkisi verir.

3. Adım: Boşaltma. Saldırgan, ayrı bir cüzdandan transferFrom() fonksiyonunu çağırarak onaylanan tokenleri çeker. Gelişmiş drainer kitleri, birden fazla token transferini (ERC-20'ler, NFT'ler ve Permit2 yetkilendirmeleri) tek bir multicall içinde toplu olarak işler ve cüzdanı saniyeler içinde boşaltır. Fonlar, izi gizlemek için merkeziyetsiz borsalar ve zincirler arası köprüler aracılığıyla yönlendirilir.

Kritik ayrıntı şudur: Blok zincirinin bakış açısından her adım geçerli ve yetkilendirilmiş bir işlemdir. Kurban onayı imzaladı. Sözleşme, yetkilendirildiği şeyi yaptı. Bunu geri almanın protokol düzeyinde bir mekanizması yoktur.

Bazı cüzdanlar artık kullanıcı onaylamadan önce işlemleri ve imzaları simüle ederek bilinen drainer sözleşmelerini ve şüpheli onay miktarlarını işaretlemektedir. MetaMask bunu Blockaid entegrasyonu aracılığıyla yapmaktadır. Bu, riski tamamen ortadan kaldırmaz; yeni bir drainer sözleşmesi henüz hiçbir tespit veritabanında olmayabilir, ancak kimlik avı istemi ile kullanıcının onayı arasına bir katman ekler.

Token onayları nasıl incelenir ve iptal edilir?

Token onayını iptal etmek, belirli bir harcayan için ödeneği sıfıra geri ayarlamak anlamına gelir. Bu bir blok zinciri işlemidir; ağ ücreti gerektirir ve cüzdanda onaylanması gerekir, ancak o sözleşmenin belirtilen tokeni taşıma yeteneğini kalıcı olarak kaldırır.

Üç kavram önemlidir:

Ne zaman iptal edilmeli. Bir uygulamanın kullanımı bittiğinde ve geri dönme planı olmadığında. Artık gerekli olmayan sınırsız bir onay verildikten sonra. Hemen bir kayıp yaşanmamış olsa bile şüpheli hissettiren herhangi bir etkileşimin ardından. Rutin bir uygulama olarak: aktif onayların periyodik olarak gözden geçirilmesi, amacını yitirmiş izinleri yakalar.

İptal etmenin maliyeti. Her iptal, kendi ağ ücreti olan ayrı bir blok zinciri işlemidir. Ethereum mainnet'te bu genellikle birkaç dolara mal olur; katman 2 ağlarında ise bir sentin çok küçük bir kesimine kadar düşebilir. Maliyet, ele geçirilmiş bir onaydan kaynaklanabilecek potansiyel kayba kıyasla küçüktür, ancak aylarca süren DeFi faaliyeti boyunca onlarca onay birikirse bu maliyet artabilir.

İptal etmenin çözmediği şey. Bir onayı iptal etmek, o izin kapsamındaki gelecekteki transferleri engeller. Halihazırda gerçekleşmiş bir transferi geri alamaz. Bir drainer transferFrom() fonksiyonunu zaten çağırdıysa, tokenler gitmiştir. İptal etmek önleyicidir, düzeltici değil.

Kendi kendine saklama cüzdanında onayları inceleme ve iptal etmeye ilişkin adım adım talimatlar için MetaMask'ın akıllı sözleşme ödeneklerini iptal etme sayfasına bakın.

Token onay riski nasıl azaltılır?

Birkaç uygulama, DeFi etkileşiminin kolaylığını ortadan kaldırmadan maruziyeti azaltır.

Seçenek mevcut olduğunda sınırlı onaylar belirleyin. Örneğin, MetaMask Uzantısı talep edilen onay miktarını görüntüler ve kullanıcıların onaylamadan önce harcama limitini özelleştirmesine olanak tanır. Limiti işlem için gerçekten ihtiyaç duyulan miktara ayarlamak, sözleşmenin daha sonra ele geçirilmesi durumunda oluşabilecek zararı sınırlar.

İmzalama istemini okuyun. Permit2 imzaları token adını, miktarını, harcayan adresini ve son tarihi gösterir. Bir "mesaj imzala" istemi token ayrıntıları gösteriyorsa bu bir giriş değil, bir yetkilendirmedir. Miktar beklenen işlem boyutu yerine kullanıcının tam bakiyesiyle eşleşiyorsa bu bir uyarı işaretidir.

Bağlanmadan önce siteyi doğrulayın. Drainer siteleri meşru uygulama arayüzlerini kopyalar. Güvenilen URL'leri yer imlerine eklemek ve arama sonuçlarından, sosyal medya bağlantılarından veya DM'lerden değil, yer imlerinden gezinmek en yaygın tuzak mekanizmasını ortadan kaldırır.

Onayları periyodik olarak gözden geçirin. Aktif onaylar, aylarca süren DeFi kullanımı boyunca birikir. Bir blok gezgini onay denetleyicisi veya harcama limitleri panosu kullanılarak yapılan üç aylık bir inceleme, artık amacına hizmet etmeyen izinleri yakalar.

Token onayları hakkında sık sorulan sorular

Yapay zeka tarafından çevrildi. Hatalar içerebilir. Lütfen her zaman bilgileri doğrulayın.

Çeviriyi değerlendir
  • MetaMask
    MetaMask

    Consensys tarafından geliştirilen, öncü kendi saklama yetkili kripto cüzdanı ve kriptoya açılan kapı.

    Tüm makaleleri oku