Token onayı, merkeziyetsiz bir uygulamanın (dapp olarak da bilinir) 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 saklanan bir cüzdandaki 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. Bunlar 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, onay kimlik avı olarak da bilinen "imza kimlik avı" saldırılarında %207'lik bir artışı ele almıştır. Token onaylarının ne yaptığını, nasıl devam ettiğini ve saldırganların bunları nasıl istismar edebileceğini anlamak, kendi kendine saklanan bir 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'yi ETH ile 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 fonksiyon ç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 harcayana özgüdür. Merkeziyetsiz bir borsanın (DEX) USDC harcamasını onaylamak, ona ETH, BTC veya başka herhangi bir tokene erişim vermez. İkincisi, onay ağ ücreti gerektiren bir blok zinciri işlemidir; bu, gerçek takasdan ayrı bir adımdır ve bu nedenle DeFi etkileşimleri genellikle iki onay gerektirir: 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 yeni bir onay gerektirecektir; 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, herhangi bir tokenin toplam arzından çok daha büyük bir sayı olan 2^256 − 1). Bu, sözleşmenin başka bir onaya ihtiyaç duymaksızın şu anda ve gelecekte 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 ayarlar; tek 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ın verildiği 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 sürtüşmesini ve riskini 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şti ve bu sistem, Uniswap, 1inch, CowSwap ve diğer pek çok protokol tarafından kullanılan DeFi'nin en yaygın entegre onay sistemi haline gelmişti.
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; hangi tokenlerin, kaç tanesinin, hangi harcayanın ve iznin sona ereceği son tarihin belirtildiği, cüzdanda imzalanan bir mesaj olan zincir dışı imza aracılığıyla yetkilendirilir.
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 yerine token başına bir onay imzalar; bu da toplam blok zinciri onay işlemi sayısını ve buna bağlı ağ ücretlerini azaltır.
Bunun bedeli, saldırı yüzeyinin kaymasıdır. 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 edilmektedir. Permit2 yetkilendirmeleri EIP-712 tipli veri imzaları kullandığından, cüzdanda işlem onayı yerine imzalama istemi olarak görünürler. 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 aklamanın boru hattını yönetir; iş ortakları ise çalınan fonların bir payı karşılığında hizmeti kiralar (genellikle boşalttıklarının %75-95'ini ellerinde tutarlar).
Cüzdan drainer saldırı kalıpları sıklıkla tutarlı bir sırayı izler:
Adım 1: Tuzak. Kurban, sponsorlu bir arama sonucu, sahte bir airdrop bağlantısı, ele geçirilmiş bir Discord sunucusu veya klonlanmış 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 ve çoğunlukla neredeyse aynı URL.
Adım 2: İ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.
Adım 3: 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 gerçekleştirdi. 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
Bir 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 uygulamayla işi bittikten ve geri dönmeyi planlamadıktan sonra. Artık gerekli olmayan sınırsız bir onay verildikten sonra. Hemen bir şey kaybedilmemiş olsa bile şüpheli hissettiren herhangi bir etkileşimden sonra. Rutin bir uygulama olarak: aktif onayların periyodik olarak gözden geçirilmesi, amacını aşmış 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 zaten transferFrom() fonksiyonunu çağırmışsa, tokenler gitmiştir. İptal etmek önleyicidir, düzeltici değil.
Kendi kendine saklanan bir cüzdanda 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ırlandırır.
İmzalama istemini okuyun. Permit2 imzaları token adını, miktarı, harcayan adresini ve son tarihi gösterir. Bir "mesaj imzala" istemi token ayrıntılarını 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üvenilir 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
Hayır. Bir cüzdanı bağlamak, genel adresi paylaşır ve uygulamanın token bakiyelerini okumasına izin verir. Bu işlem, uygulamaya herhangi bir token'ı taşıma yetkisi vermez. Token onayı, ayrı bir blockchain işlemi (eski onaylar için) veya imzalı bir Permit2 mesajı gerektirir; her ikisi de cüzdanda kullanıcının onaylaması gereken açık istemler olarak görünür.
Hayır. ERC-20 approve() fonksiyonu ve Permit2 yalnızca token'lar için geçerlidir; blok zincirinin yerel para birimi için değil. ETH (ve MATIC veya BNB gibi diğer yerel para birimleri) yalnızca doğrudan bir transfer işlemi imzalanarak taşınabilir. Ancak yerel para birimlerinin wrapped versiyonları (WETH, WMATIC) ERC-20 token'larıdır ve onaylar aracılığıyla boşaltılabilir.
Permit2, geleneksel onayların en büyük zayıflığını —sonsuza kadar devam eden atıl sınırsız izinleri— son tarihler ve nonce'lar ekleyerek giderir. Ancak farklı bir risk ortaya çıkarır: Zararsız görünen zincir dışı imzalar, büyük transferlere yetki verebilir. Her iki sistem de kategorik olarak daha güvenli değildir. Permit2, eski onay açıklarına karşı daha güvenlidir; geleneksel onaylar ise imza phishing'ine karşı daha güvenlidir; zira cüzdanların daha belirgin biçimde görüntülediği bir blok zinciri işlemi gerektirirler.
Sınırsız token onayı, bir akıllı sözleşmeye cüzdandan belirli bir tokenın herhangi bir miktarını, süre sınırı olmaksızın taşıma izni verir. Çoğu uygulama, gereken işlem sayısını azaltmak için varsayılan olarak sınırsız onay talep eder. Risk şudur: Onaylanan sözleşme ele geçirilirse, saldırgan herhangi bir ek onay gerekmeksizin cüzdandaki o tokena ait tüm bakiyeyi boşaltabilir. Sınırsız onaylar, kullanıcı bunları manuel olarak iptal edene kadar aktif kalmaya devam eder.
Alpha’ya abone olun, piyasa alfası doğrudan e-posta kutunuza gelsin
Yapay zeka tarafından çevrildi. Hatalar içerebilir. Lütfen her zaman bilgileri doğrulayın.
Çeviriyi değerlendir
Bu makalenin yazarı:
MetaMask
MetaMask, eski adıyla Consensys Software Inc, dünyada yaklaşık 190 ülkede kullanıcılara ulaşarak insanlara hem kripto hem de geleneksel varlıklar genelinde paralarını tutma, harcama, biriktirme ve büyütme imkânı sunan, dünyanın en büyük self-custodial finansal platformudur. Şirket, ödemeleri, tasarrufları, yatırımları ve dijital varlıkları tek ve kesintisiz bir deneyimde bir araya getiren tüketici platformunu inşa etmektedir. Dünyanın en yaygın kullanılan self-custodial cüzdanından büyüyen MetaMask, kullanıcılara para ve varlıkları üzerinde doğrudan kontrol imkânı tanımaktadır. MetaMask, 2016'dan bu yana Ethereum'un büyümesinde temel bir rol üstlenmiştir. Bugün MetaMask, blokzincir ekonomisinin merkezinde yer alarak Açık Para için işletim sistemini inşa etmekte ve insanları finansal yaşamları üzerinde tam anlamıyla söz sahibi kılmaktadır.