Hemen paniklemeyi bırakmalısın. Anladığım kadarıyla private key veya seed phrase ele geçirilmiş. Bu, cüzdanının artık güvenli olmadığı anlamına gelir. Hacker'ın cüzdanı sürekli izlemesi ve kalan parayı senden önce çekmesi olasılığı çok yüksek. Buna 'sweeper bot' denir.
Sweeper botlar, cüzdanına giren her yeni transferi (örneğin senin kurtarma transferi için gönderdiğin gas ücreti) anında tespit eder ve bu transfer henüz mempool'da beklerken, hacker'ın cüzdanına transfer eden yeni bir işlemi daha yüksek gas ücretiyle yayınlayarak senin transferini geçersiz kılar. Senin transferin başarısız olurken (ve muhtemelen gas ücretini kaybederken), hacker tüm parayı alır.
Bu durumda standart bir transfer işlemi işe yaramayacaktır. Kalan varlıkları kurtarmak için özel bir stratejiye ihtiyacın var.
1. Adım: Yeni Cüzdan Oluşturma
İlk yapman gereken, yeni ve temiz bir cüzdan oluşturmaktır. Bu yeni cüzdanın seed phrase'ini fiziksel olarak not al ve asla dijital ortamda saklama. Bu, kurtarma operasyonunun hedef cüzdanı olacak.
2. Adım: Sweeper Bot'u Atlatma Stratejisi (Private Transaction)
Sweeper bot'u atlatmanın en etkili yolu, işlemini mempool'a (hacker'ın izlediği halka açık işlem havuzu) göndermeden doğrudan madencilere (veya doğrulayıcılara, validator) iletmektir. Buna 'private transaction' veya 'Flashbots bundle' denir. Bu yöntem, hacker'ın botunun işlemi görmesini engeller.
Flashbots (Ethereum ve EVM Ağları İçin)
Ethereum ağında (ve Binance Smart Chain gibi EVM uyumlu ağlarda) Flashbots hizmeti, işlemi bir "bundle" içinde toplayıp doğrudan madencilerin/doğrulayıcıların özel API'sine gönderir. Bu, işlemi mempool'a düşürmeden gerçekleşmesini sağlar. Kurtarman gereken ETH veya ERC-20 tokenleri varsa, bu en güvenli yoldur.
Bu yöntemi kullanmanın birkaç yolu vardır:
- Front-Running/Arbitrage Bot Kullanımı:
Bu yöntem biraz teknik bilgi gerektirir. Kendin bir "rescue script" yazarak (genellikle Python veya Node.js ile) Flashbots API'sini kullanarak kalan tokenleri kurtarabilirsin. Script, cüzdandaki varlıkları tespit eder ve hemen yeni cüzdana transferi tetiklerken, işlemi private bundle olarak gönderir. - Flashbots Destekleyen Cüzdanlar (Eğer Destekliyorsa):
Bazı cüzdanlar (MetaMask gibi, belirli bir versiyonunda) 'private transaction' seçeneği sunar. Transfer yaparken bu seçeneği aktif etmen gerekir. - Özel Servisler (Risklidir):
Bazı merkezi borsalar veya özel kurtarma hizmetleri (front-running servisleri) bu işlemi ücret karşılığı yapar. Ancak bu hizmetleri kullanmak ek bir risk taşır.
3. Adım: Kurtarma İşlemi (Hızlı ve Tek Seferlik)
Kurtarman gereken varlıklar farklı ağlarda (ETH, BNB) ise, her ağ için ayrı bir kurtarma işlemi yapmalısın.
- Gas Ücreti Hazırlığı:
Kurtarma işlemi için gerekli gas ücretini (native coin, yani ETH veya BNB) *tamamen ayrı, yeni bir cüzdandan* gönder. Bu gas ücreti transferini yaparken, gönderdiğin cüzdanın da tehlikede olmadığına emin olmalısın. - İşlemi Hazırlama:
Kurtarılacak tokenleri (örneğin, ERC-20 tokenleri) yeni cüzdanına transfer etme işlemini hazırlamalısın. Eğer bu bir token ise, öncelikle token'in ERC-20 transferini yapmalısın. Eğer direkt ETH/BNB ise, direkt transferi hazırlarsın. - tavsiye Edilen Yöntem: Flashbots CLI (Command Line Interface):
Eğer teknik bilgin varsa, Flashbots CLI kullanarak kurtarma işlemini kendin yapabilirsin. Bu, en güvenli ve kontrol edilebilir yöntemdir. İşleminizi bir JSON RPC isteği olarak hazırlayıp doğrudan Flashbots'a gönderirsin.
Bu, acil durumlarda kullanılan bir Python script'inden alınmış, Flashbots bundle oluşturan bir bölüm örneğidir:
# Gerekli kütüphaneler: web3.py, flashbots
# Örnek Python scripti
from web3 import Web3
from flashbots import flashbots
# Cüzdan bilgileri
hacked_wallet_address = "0xYourHackedWalletAddress"
hacked_wallet_private_key = "YourCompromisedPrivateKey"
new_safe_wallet_address = "0xYourNewSafeWalletAddress"
# Ağa bağlan (Flashbots destekleyen RPC kullanın)
w3 = Web3(Web3.HTTPProvider("https://rpc.flashbots.net/fast"))
# İşlemi hazırla (Örnek: ETH transferi)
tx = {
'from': hacked_wallet_address,
'to': new_safe_wallet_address,
'value': w3.toWei(0.01, 'ether'), # Kurtarılacak miktar (tüm bakiyeyi göndermek için hesaplamalısın)
'gasPrice': 0, # Flashbots bundle içinde gasPrice 0 olabilir (gas fee bundle içinde ödenir)
'nonce': w3.eth.get_transaction_count(hacked_wallet_address)
}
# İşlemi imzala
signed_tx = w3.eth.account.sign_transaction(tx, hacked_wallet_private_key)
# Flashbots'a gönder
# rescue_bundle = [signed_tx]
# flashbots_response = flashbots.send_bundle(rescue_bundle)
# Not: Gerçek bir kurtarma operasyonunda, gas ücreti ve transferi aynı anda bundle içine koymak gerekir.
# Bu örnek, cüzdanınızdaki bakiyenin (native coin) transferini göstermektedir.
4. Adım: Revoke İşlemi (Hacker'ın İkinci Saldırı Yöntemini Engelleme)
Hackerlar, private key'i ele geçirmelerinin yanı sıra, cüzdanınızdan token çekmek için token approval (onay) yetkisini de kullanmış olabilir. Bu yetki, hacker'ın cüzdanınızdaki tokenleri (USDT, USDC gibi) direkt olarak sizin izniniz olmadan transfer etmesine olanak tanır.
Hacker bu yetkiyi aldıysa, cüzdanında kalan tokenleri Flashbots yöntemiyle kurtarsan bile, hacker yeni gelen tokenleri de çekebilir.
Token Onaylarını İptal Etme:
Kurtarma işleminden hemen sonra veya hatta kurtarma işlemi sırasında, tüm token onaylarını iptal etmelisin. Bu işlemi yapmak için cüzdanın private key'i gerekir (ancak cüzdanı hacklendiği için bu key'i kullanmak risklidir).
- Etherscan/Bscscan Üzerinden:
İlgili ağın Explorer'ına git (Etherscan, Bscscan, vb.). Cüzdan adresini ara. "Token Approvals" sekmesine geç. Burada, hangi akıllı sözleşmelere hangi tokenler için sınırsız onay verdiğini görebilirsin. Riski ortadan kaldırmak için, bu onayları tek tek iptal etmelisin. - Revoke.cash veya Cointool.app Kullanımı:
Bu tür araçlar, cüzdanını bağlayarak (connect wallet) hangi token onaylarına sahip olduğunu gösterir ve tek tıkla iptal etmeni sağlar. Ancak cüzdanın private key'i tehlikede olduğu için, bu işlemi yaparken çok dikkatli olmalısın. İptal işlemi için gas ücreti ödemen gerekir.
Özet ve Tavsiyeler
- Yeni Cüzdan Oluştur:
Hemen yeni bir cüzdan oluştur ve seed phrase'i güvenli bir şekilde sakla. - Kalanı Kurtarma:
Kalan varlıkları kurtarmak için Flashbots gibi özel bir servis veya front-running stratejisi kullan. Normal bir transfer işlemi denemesi, kalan parayı da kaybetmene neden olabilir. - Revoke Approvals:
Eğer cüzdanında token varsa, Etherscan veya benzeri araçlar kullanarak tüm token onaylarını iptal et. - Hack Analizi:
Bu durumun nasıl yaşandığını anlamaya çalış. Phishing saldırısı mı, sahte bir dApp'e bağlandın mı yoksa private key'i dijital bir yerde mi sakladın? Bu, gelecekteki güvenlik stratejin için hayati öneme sahip.