Fiyatlar yükleniyor…

Token Onayları Nasıl İptal Edilir ve Neden Etmeli

Süresiz token onayları Ethereum ve diğer EVM zincirlerinde sessiz bir saldırı yüzeyi oluşturur. Onları nasıl bulacağınızı, güvenle nasıl iptal edeceğinizi ve süreli onaylarla nasıl değiştireceğinizi burada açıklıyoruz.

Token Onayları Nasıl İptal Edilir ve Neden Etmeli

Bir token onayı gerçekte nedir

Uniswap'ta token takas ettiğinizde, Aave üzerinde ETH ödünç verdiğinizde ya da USDC'yi zincirler arasında köprülediğinizde token'larınızı aslında protokole teslim etmezsiniz. Şu küçük zincir üstü mesajı imzalarsınız: "X akıllı kontratına, cüzdanımdan Y token'ından en fazla N kadar çekme izni verildi." Bu imzalı izin ERC-20 onayı olarak adlandırılır ve siz ya da kontratın kendisi iptal etmedikçe zincir üzerinde sonsuza dek kalır.

Onayların var olma nedeni teknik bir gerekliliktir. ERC-20 token'ları işlevsiz, hamiline yazılı varlıklar gibidir: "Alice'in Bob'a 100 USDC ödünç vermesi" gibi bir kavramı tanımazlar. Yalnızca bakiyeleri ve izinleri anlarlar. Bir DEX yönlendiricisi ya da ödünç havuzu gibi üçüncü taraf bir kontratın sizin token'larınızı sizin yerinize taşıyabilmesi için o kontrata bir izin verilmesi gerekir ve bu iki fonksiyonla ayarlanır: approve ve increaseAllowance.

Pek çok protokol mümkün olan en büyük değeri, yani 256 bitlik en büyük işaretsiz tam sayıyı (2^256 eksi 1) ister; çünkü bu sayede her etkileşimde yeniden onay imzalamanız gerekmez. Kullanıcı deneyimi açısından sonsuz onaylar pratiktir. Güvenlik açısından ise var olduğunu unutabileceğiniz bir izin yaratırlar.

Sonsuz onaylar neden tehlikelidir

Tek başına bir sonsuz onay "sonsuz risk" anlamına gelmez. Yalnızca izni elinde bulunduran kontrat kadar tehlikelidir. Onayladığınız protokol iyi denetlenmiş, uzun süredir test edilmiş ve hâlâ aynı ekip tarafından işletiliyorsa, onay kabaca protokolün kendisi kadar güvenlidir. Tehlike üç belirli durumda ortaya çıkar ve bunlar ciddiye alınmayı hak edecek kadar yaygındır.

Birincisi, protokoller hacklenir. Bir akıllı kontrat, bir mantık hatası, bir fiyat oracle manipülasyonu ya da bir yönetişim saldırısı yoluyla istismar edilebilir. Saldırgan, onaylı kullanıcı listesine karşı transferFrom çağırabilirse, sonsuz bir onay bir protokol hatasını token'larınızın doğrudan boşaltılmasına dönüştürür. Bu varsayımsal değil: son birkaç yılda yaşanan pek çok bilinen DeFi olayında, mevcut izinleri kullanan token boşaltma yolları yer aldı.

İkincisi, projeler terk edilir ve ardından aynı adla ya da aynı adreste başka biri tarafından yeniden devreye alınır. Bir ekip bir kontrattan çekildikten sonra, o adreste duran bytecode sadece koddur. Yeni bir sahip ya da yükseltme mekanizması bir saldırganın yönetici olmasına izin verirse, eski onayınız artık düşmanca bir varlığı işaret eder.

Üçüncüsü ve kullanıcıların en çok hafife aldığı durum: cüzdan boşaltma kitleri kalan onayları olan cüzdanları aktif olarak filtreler. Bir kimlik avı sitesinde kötü niyetli bir imza imzaladığınızda, kit yalnızca sayfadaki tek bir token'ı çalmakla kalmaz; cüzdanınızın daha önce verdiği her etkin izin üzerinde döner ve her birini çeker. Tek bir kimlik avı tıklamasının verdiği zarar, ne kadar eski yüzey alanınızın açık olduğuna göre ölçeklenir. Açık onaylarınız ne kadar azsa, patlama yarıçapı da o kadar küçük olur.

Hangi onayları gerçekten tutmak güvenli

Her onay saatli bir bomba değildir ve sıfır onay peşinde koşmak hem pratik değildir hem de anlamsızdır. Amaç, saldırı yüzeyinizi küçültmektir; cüzdanınızın işlevselliğini yok etmek değil. Makul bir kural olarak üç katmanlı bir yaklaşım izlenebilir.

Şunlara verilen onayları tutun: aktif olarak kullandığınız, saygın ekipler tarafından işletilen, denetlenmiş ve yakın zamanda istismara uğramamış sözleşmeler. Aave veya Uniswap'ı hâlâ haftalık olarak kullanıyorsanız, bu ön yüzlerin yönettiği onay sistemin işleyişinin bir parçasıdır. Onu iptal etmeniz, bir dahaki işleminizde yeniden imza atmanız anlamına gelir; bu da gaz maliyeti ve küçük bir dikkat gerektirir.

Nadiren kullandığınız sözleşmelerdeki sonsuz onayları azaltın. Rabby, Frame ve güncellenen MetaMask akışı gibi modern cüzdanlar, işlem tutarına dayalı sonlu bir ödeneği varsayılan olarak sunar. İki yıl önce bir kez dokunduğunuz bir sözleşmede hâlâ sonsuz bir onay varsa, bunu sıfıra ya da küçük bir sonlu miktara düşürün.

Tanımadığınız, daha önce hiç duymadığınız bir ada sahip olan ve özellikle sözleşmesi Etherscan'da doğrulanmamış her şeye verdiğiniz onayları iptal edin. Etkin ödenekleri bulunan doğrulanmamış sözleşmeler, drainer kitlerinin istismar ettiği en yaygın kalıptır.

Cüzdanınızın verdiği tüm onayları nasıl bulursunuz

Bu iş için güvenilebilecek iki araç var ve aktif kullanımdaki neredeyse tüm EVM zincirlerini kapsıyorlar. İlki, özellikle ödenek yönetimi için geliştirilmiş açık kaynaklı bir dApp olan Revoke.cash'tir. Cüzdanınızı bağlarsınız, zinciri tarar ve tokenlere göre gruplanmış şekilde, tokenlarınız üzerinde hâlâ sıfır olmayan ödeneğe sahip tüm sözleşmeleri listeler. Her satırda harcayan taraf, mevcut ödenek ve zincir üstü iptal işlemine doğrudan bir bağlantı gösterilir.

İkincisi, Etherscan'da Ethereum için ve BNB Chain, Polygon, Arbitrum, Optimism ve Base gibi zincirlerdeki eşdeğer blok gezginlerinde bulunan Etherscan token onay kontrolcüsü'dür. Cüzdan adresinizi yapıştırır, onay sekmesine tıklar ve aynı verileri biraz daha teknik bir arayüzle görürsünüz. Etherscan, Revoke.cash'in yeni ya da daha az yaygın tokenlerdeki ödenekleri ara sıra kaçırması nedeniyle çapraz doğrulama aracı olarak faydalıdır.

Hangi aracı kullanırsanız kullanın, iş akışı aynıdır. Her bir harcayan tarafı okuyun. Tanımıyorsanız, iptal için işaretleyin. Tanıyorsanız, ona hâlâ ihtiyacınız olup olmadığına ve ödeneği sonsuz bırakmak isteyip istemediğinize karar verin. İptal işleminin bir yazma işlemi olduğunu unutmayın: gaz maliyeti vardır; bu yüzden doruk saatlerde tek tek yapmak yerine, düşük ücretli bir zamanda toplu hâlde yapın.

Token onayları adım adım nasıl iptal edilir

Deneyimli DeFi kullanıcılarının gerçekten izlediği pratik iş akışı şöyledir. Rabby, MetaMask, Frame veya Ledger Live gibi bir öz denetimli cüzdan kullandığınızı ve temizlediğiniz zincirde gazı karşılamaya yetecek küçük miktarda ETH'niz olduğunu varsayar.

Tarayıcınızda Revoke.cash'i açın. Denetlemek istediğiniz cüzdanı bağlayın. Site varsayılan olarak Ethereum ana ağına geçecektir; onaylarınız Arbitrum, Polygon veya BNB Chain gibi başka bir EVM zincirindeyse, sayfanın üstündeki ağ seçicisini değiştirin. Site, sahip olduğunuz tüm tokenleri ve tüm etkin ödenekleri tek seferde çekecektir.

Listeyi gözden geçirin. Tanımadığınız ya da kalıcı bir ödeneğe artık güvenmek istemediğiniz her harcayan taraf için yanındaki iptal düğmesine tıklayın. Cüzdanınız ödeneği sıfıra ayarlayan bir işlem isteği açacaktır. Onaylayın ve gaz ücretini ödeyin.

Tutmak istediğiniz ancak küçültmek istediğiniz onaylar için Revoke.cash sıfır yerine özel bir değer belirlemenize olanak tanır. Yaygın bir kalıp, ödeneği bir sonraki işlem için gereken tam miktara ayarlamaktır; modern cüzdanlar bunu sizin yerinize otomatik olarak doldurabilir. İptal işlemleriniz onaylandıktan sonra sayfayı yenileyin ve ödeneğin artık sıfır ya da yeni sonlu değeri gösterdiğinden emin olun.

Anlamlı DeFi etkinliği yaptığınız diğer zincirler için de tekrarlayın. Birçok kullanıcı, bir airdrop için bir kez kullanıp unuttuğu zincirlerdeki onayları görünce şaşırır. Her zincirin kendi geçişi gerekir; çünkü ödenekler varsayılan olarak zincirler arası değildir.

İleride sonlu onaylar nasıl ayarlanır

Cüzdanınızı temizledikten sonra edinebileceğiniz en iyi alışkanlık, en başından itibaren sonsuz onayları imzalamayı bırakmaktır. Savunma, çoğu modern cüzdan arayüzüne zaten yerleşiktir; ancak sizin bunu fark etmeniz gerekir.

Bir dApp ödenek istediğinde değere bakın. Varsayılan değer maksimum 256 bit sayısıysa, cüzdanınız eski sonsuz yolu sunuyor demektir. Varsayılan değer takasın veya yatırmanın tam tutarıysa, cüzdanınız sonlu bir onay sunuyordur. Hem Rabby hem de Frame, bilinen sözleşmeler için varsayılan olarak sonluyu seçer. MetaMask, yeni sürümlerinde sonlu varsayılanlara doğru kaymıştır; ancak eski akışlar hâlâ eski seçeneği sunar.

Bir sözleşme sonsuz onay talep ediyor ve sonlu seçenek sunmuyorsa, bunu sarı bayrak olarak değerlendirin. Bazı sözleşmeler gerçekten kalıcı bir ödeneğe ihtiyaç duyar; örneğin birden fazla havuz üzerinden yönlendirme yapan DEX toplayıcıları; ancak çoğu için bu gerekli değildir. Şüphe duyduğunuzda, yapmak üzere olduğunuz işlem için tam tutarı onaylayın ve işlem tamamlanır tamamlanmaz ödeneği iptal edin ya da küçültün.

Başka bir pratik alışkanlık, airdrop çiftçiliği, testnet etkileşimleri ve tanımadığınız dApp'leri imzalama gibi yüksek riskli etkinlikler için ayrı bir "sıcak" cüzdan, uzun vadeli varlıklar ve büyük DeFi pozisyonları için ayrı bir "soğuk" cüzdan kullanmaktır. Sıcak cüzdan kimlik avı tıklamalarını üstlenir; soğuk cüzdan yalnızca denetlenmiş, iyi bilinen protokollerle etkileşime girer. Bir drainer kiti sıcak cüzdanınızı boşaltsa bile, ana birikiminiz çok daha küçük bir onak ayak izine sahip bir cüzdanda kalır.

Bir şeyler ters gittiğinde bu nasıl görünür

Bir "drain" işleminin pratikte nasıl göründüğünü somut olarak ele almakta fayda var, çünkü "onaylarım kötüye kullanılacak" korkusu bazen soyut bir kavram gibi ele alınıyor. On sekiz ay önce küçük bir DEX yönlendiricisine USDT için sonsuz bir onay imzaladığınızı hayal edin. DEX kapandı, ekip yoluna devam etti ve sözleşme adresi daha sonra farklı bir deployer tarafından devralındı.

Bundan altı ay sonra tanıdık görünen bir siteyi ziyaret ediyorsunuz, rutin bir onay sandığınız bir yere tıklıyorsunuz ve aslında kötü niyetli bir permit ya da zincir dışı bir yetkilendirme imzalıyorsunuz. Drainer kiti cüzdanınızın hâlâ o yönlendiriciye sonsuz bir kullanım hakkı olduğunu görüyor. Tek bir işlemde transferFrom çağrısı yaparak tüm USDT bakiyenizi çekiyor. İşlem geçerli, onay gerçekti ve geri alınabilecek bir şey yok.

Şimdi aynı cüzdanı düşünün, ancak altı ay önce o yönlendiriciye verdiğiniz USDT onayını iptal edip yerine sıfır koydunuz. Drainer kiti cüzdanınızı tarıyor, o token için çekilecek bir şey bulamıyor ve yoluna devam ediyor. Orijinal iptal işleminin maliyeti birkaç sent gazdı; iptal etmemenin maliyeti tüm USDT bakiyeniz oldu. Matematik hiç de ince değil.

Onay riskini akıllıca nasıl takip edersiniz

Onay hijyeni, kullanıcının gerçekten doğrudan kontrolüne sahip olduğu az sayıdaki kripto güvenliği alanından biridir, ancak cüzdanınız "çalışmaya" başladıktan sonra bunu unutmak kolaydır. Zippfeed, token onaylarıyla ilgili haberleri — protokol istismarları, drainer kit kampanyaları ve cüzdan güvenliği güncellemeleri dahil — sentiment puanlaması (bullish, neutral ya da bearish) ve önem derecelendirmesiyle birlikte takip eder; böylece yeni saldırı kalıplarını cüzdanınıza ulaştıktan sonra değil, gelen kutunuza ulaşmadan önce fark edebilirsiniz.

Sıkça sorulan sorular

Token onaylarını iptal etmek güvenli mi?
Bir onayı iptal etmek, zincir üzerinde gerçekleştirebileceğiniz en güvenli işlemlerden biridir. Yalnızca ERC-20 sözleşme durumundaki izin değerini değiştirir, hiçbir tokeni hareket ettirmez ve cüzdanınızı boşaltmak için kullanılamaz. Tek maliyet işlem için ödenen gaz ücretidir. Emin değilseniz, önce tanımadığınız sözleşmelere ait onayları iptal edin; ihtiyacınız olduğunda onayları yeniden verebilirsiniz.
Etherscan üzerinde token onaylarını nasıl iptal ederim?
Etherscan.io adresine gidin, arama çubuğuna cüzdan adresinizi yapıştırın ve token onay panelini açın. Tokenlarınız üzerinde sıfır olmayan izne sahip tüm sözleşmeleri göreceksiniz. İptal etmek istediğiniz onayın yanındaki iptal düğmesine tıklayın, cüzdanınızdan işlemi onaylayın ve gaz ücretini ödeyin. Aynı akış BNB Chain, Polygon, Arbitrum, Optimism ve Base için blok gezginlerinde de çalışır.
Tüm onaylarımı birden iptal etmeli miyim?
Tüm onayları iptal etmek güvenlidir ancak genellikle gereksizdir: bir sonraki işleminizde zaten yeniden imzalayacağınız onaylar için gaz ödemiş olursunuz. Daha iyi bir yaklaşım, önce bilinmeyen ve doğrulanmamış sözleşmeleri iptal etmek, nadiren kullandığınız sözleşmelerdeki süresiz onayları sınırlandırmak ve yalnızca gerçekten güvendiğiniz ve kullandığınız protokollerdeki süreli veya etkin onayları bırakmaktır. Bu makale eğitim amaçlıdır ve finansal tavsiye niteliği taşımaz; onay vermeden önce sözleşmeleri kendiniz mutlaka doğrulayın.
Drainer kitleri gerçekten eski onayları istismar ediyor mu?
Evet. Suçlu pazaryerlerinde satılan cüzdan drainer kitleri, kurbanın adresini etkin ERC-20 izinleri için tarayan ve her birine karşı tek bir işlemde transferFrom çağrısı yapan modüller içerir. Ne kadar çok eski veya tanınmayan onayınız varsa, tek bir kimlik avı imzasının yıkım alanı o kadar geniş olur. Onay listenizi kısa ve süreli tutmak, bu yüzey alanını azaltmanın en etkili yollarından biridir.
İlgili tokenler
$ETH $USDT $USDC