Açılın ben doktorum

Bitcoin ve Ethereum tarafındaki tecrübelerimi ve bu konunun bana kazandırdıklarını paylaşayım
Ben bu işe ilk başladığımda sadece hazır Python scriptleri düzenliyordum, basit liste karşılaştırmaları falan yapıyordum. Zamanla merak sardım ve işi biraz daha ileri götürdüm. Elbette Bitcoin, Ethereum veya benzeri adreslerin birebir yeniden üretilme ihtimali yok, varsa bile aşırı düşük. Benim ilgilendiğim nokta direkt adres bulmaktan çok üretilen adreslerin birbirine olan yakınlığıydı. Bu yüzden kendimce filtreleme ve karşılaştırma sistemleri geliştirdim.
Kendi kullandığım Ethereum adresini referans alıp üretilen adreslerle benzerlik araması yapıyordum. Özellikle 0x sonrasındaki 40 karakterin kaç tanesinin sıralı şekilde tuttuğunu ölçüyordum.
Örnek adres:
80808080951bdcc58d7fc9f0f9e40be7576953ba
Normal şartlarda 13-14-15 karakter sıralı yakalamak mümkün olabiliyor ama 40 karakterin tamamını üretmek pratikte imkânsız gibi bir şey. Geçen sene nisan ayında 40 karakterin 34 tanesini sıralı şekilde üretince doğal olarak heyecanlandım. Ondan önce genelde 21-22-23 karakter civarı görüyordum, 24 bile çok nadir çıkıyordu. Tabii tek başına 34 karakterin de pratikte çok büyük bir anlamı yok ama insan görünce ister istemez şaşırıyor. Eğer yanında birkaç tane daha 32-33 karakter eşleşmesi çıksaydı daha dikkat çekici olabilirdi. Genel ortalama çoğunlukla 13-22 karakter arasında değişiyor, çok nadir şekilde 25-26 seviyelerini görmek mümkün oluyor.
Adres benzerliği dışında ayrıca filtreleme sistemi de geliştirdim. Şu an saniyede yaklaşık 32 milyon üretim yapabilen ve sistem performansı açısından beni çok zorlamayan bir yapı kurdum. Büyük üretimlerde karakter dağılımlarını ölçüyordum. Karakterlerin neredeyse tamamı birbirine yakın oranlarda çıkıyor ama özellikle başlangıç karakteri 0 olan (0x0...) adreslerin yakalanma frekansının çok daha az olduğunu gözlemledim. Matematiksel olarak her bir karakterin ihtimali 1/16 olsa da, ardışık her bir sıfır hedefi zorluğu 16 kat daha artırdığı için arama uzayı ciddi anlamda daralıyor. Aynı zamanda jenerik adreslerin yeniden üretilme ihtimali üzerine de testler yaptım. Aynı kütüphaneler kullanılsa bile aynı adresin tekrar düşme ihtimali aşırı düşük seviyede fakat bazı Python kütüphanelerinde tekrar eden üretimler görülebiliyor ve bu durum kullanılan yöntem açısından problem oluşturabiliyor
Bitcoin Puzzle tarafıyla da uğraştım. Kendi kodumu yazıp farklı farklı denemeler yaptım. Özellikle yeni başlayan biri için öğretici bir alan çünkü adres yapısını ve üretim mantığını anlamaya yardımcı oluyor ama zamanla forumlarda ve Reddit üzerinde çok fazla olumsuz yorum görünce devam etme isteğim azaldı. İlk başladığım dönemlerde kısa süre Minikey sistemlerini de denedim. Teorik olarak ilginç bir alan ama deneme aralığı oldukça dar olduğu için uzun vadede devam etmedim. Brainwallet tarafında ise hem kendime yazdırdığım kodları hem de GitHub üzerindeki hazır projeleri test ettim. Teknik açıdan bazı şeyler öğretti ama pratik anlamda beni ileri taşıyan bir alan olmadı.
Açıkçası bu süreçlerin çoğunu doğrudan sonuç almak için değil, sistemi anlamak ve test etmek için yaptım. Bir şey bulacağımdan değil, merak ettiğim için hâlâ çalıştırıyorum. Elimdeki donanımla daha önce yapamadığım testleri yapmak hoşuma gidiyor.
Şu anda sistemi arka planda sürekli çalıştırıyorum. Bazen aynı anda 5 adet Mac Mini M4 ile test yaptığım oluyor ve toplamda saniyede yaklaşık 150-175 milyon üretim seviyelerine ulaşabiliyorum. Zaten cihazlar sürekli aktif olduğu için ekstra bir yük oluşturduklarını da hissetmiyorum. İşlemleri CPU yerine her cihazda 3 çekirdek olacak şekilde, toplamda 15 GPU çekirdeğine dağıttım. Metal framework sayesinde GPU’nun paralel hesaplama gücünü kullandığım için saniyede 150-175 milyon adres üretim seviyelerine ulaşabiliyorum.
Saniyelik hız görüntü :

Önemsiz ama denk getirdiğim bazı adresler de oldu:
0x00000000.......00000000
0x0000000000000900
Pratikte hiçbir önemi yok, hatta hiçbirini kullanmıyorum bile. Olay tamamen “denk getirebilmek” ve sistemin nasıl davrandığını görmek. 😄
Adres benzerliği çalışmalarımın yanı sıra, rastgelelik (randomness) kavramının insan eliyle nasıl bozulabileceği üzerine de bazı teknik denemeler yaptım. BIP-39 standart listesindeki kelimelerin tamamen rastgele seçilmesi gerekirken, insanların manuel olarak oluşturduğu "akılda kalıcı" veya "anlamlı" seed gruplarını hedefleyen bir dizi test gerçekleştirdim.
her kelime dizisi geçerli bir seed oluşturmuyor; dizinin son kelimesinde yer alan Checksum (doğrulama kodu) kontrolünden geçmesi gerekiyor. Bu yüzden, oluşturduğum anlamsal kelime gruplarını önce bu matematiksel filtreden geçirip, sadece geçerli (valid) olanları arka planda tarattım. Kullandığım bazı spesifik veri kümeleri şunlardı:
Sözlüksel ve Yapısal Kombinasyonlar: Manuel oluşturulmuş cüzdanlardaki kalıpları çözmek adına; ilk 12/son 12 ve ilk 24/son 24 kelime gruplarını varyasyonlarla kombine ettim.
Popüler Kültür ve Semantik Kümeler: Dönemin popüler şarkı sözleri içerisinde geçen ve BIP-39 listesiyle uyumlu olan kelimelerden özel veri kümeleri oluşturdum.
Anlamsal Dizilimler: İngilizce dilbilgisi kurallarına uygun, mantıklı cümle yapılarından oluşan seed dizilimlerini test ettim.
Teknik ve Kodlanmış Veri: Bitcoin Whitepaper terminolojisinden türetilen kümelerin yanı sıra; Mors alfabesi, Binary (ikili sistem) dizilimleri ve tablolarından anlamlı cümleler türeterek bunları Brainwallet üzerinde denedim.
Bundan sonraki kısım konu ile birebir alakalı değil, sadece merak edenler için yazdım. Konu dışı olduğu için bundan sonrasını okumanız gerekmez.Dürüst olmak gerekirse bu işin bana asıl katkısı adres üretmek olmadı, yazılım tarafındaki gelişim oldu. Hazır Python script düzenlemelerinden çıkıp Go, Rust, Swift, Zig ve Node.js tabanlı yapılarla uğraşmaya başladım. AI yardımıyla OpenSea, Blur, Magic Eden ve Tensor gibi marketlerde uygun fiyatlı NFT’leri takip eden sniper botlar geliştirdim. Zamanla sadece bot yazmak değil; websocket yönetimi, çoklu işlem yapısı, düşük gecikmeli veri akışı, memory optimizasyonu ve otomatik alım sistemleri üzerine de yoğunlaşmaya başladım. Bu arada 'Herkesin elinin altında AI var, herkes bot yazar' mantığından sıyrılın. Evet, artık herkes yazabiliyor ama bu işin %90'ı kod olsa bile geri kalan kısmı ciddi teknik bilgi istiyor. Bir tx atmanız gerektiğinde; rakibiniz 50ms gecikmeyle işlem yaparken siz 3-5ms ile o işlemi bitirdiğiniz zaman, 500 dolarlık bir NFT markete yanlışlıkla 5 dolardan koyulduğunda onu çekme şansınız oluyor. bu sadece en basit örnek.
Bunun yanında Birdeye, Pump.fun, DexScreener gibi platformlar üzerinden yeni projeleri takip eden sistemler geliştirdim. Özellikle Birdeye tarafına ayrı bir parantez açmak lazım; işin asıl membaası aslında orası. Eğer bütçe ayırıp ücretli API alırsanız oyunun şekli tamamen değişiyor ve kendinizi bir anda harikalar diyarında buluyorsunuz. Sistemim, belirlediğim kriterlere uyan projelere otomatik olarak 5-10-20-50-100 dolar arası kademeli girişler yaparken; Freeze Authority, Mint Authority, Bundle veya Rug riski taşıyan projeleri filtreleyerek daha temiz görünenleri ayıklıyor. Bir süre sonra bu süreç sadece al-sat mantığından çıkıp kapsamlı bir veri madenciliğine dönüştü; şu an yaklaşık 637 bin adreslik devasa bir SQLite veritabanım var. localhost çalışan bu sistem sayesinde; hangi cüzdanın ne kadar kazandığını, ortak hareket eden adres kümelerini, kullanım sürelerini ve PNL hesaplamalarını tek tıkla analiz edebiliyorum. Bu mimariyi kurarken de Claude, Antigravity, Cursor ve Windsurf gibi araçları oldukça yoğun kullandım.
Botları geliştirirken Claude için 3 defa 200 dolarlık abonelik satın aldım. Bunun yanında Antigravity, Cursor ve Windsurf gibi araçları da ücretli/free şekilde yoğun olarak kullanmaya başladım.
konu dışına çıktım ama bu işin bana kazandırdıkları büyük ölçüde bunlar oldu. Olay sadece "şans eseri bir şey bulma" hayali değil; veri analizi, otomasyon ve yüksek performanslı sistem mimarisi kurma becerisi kazanmaktı. Yazılıma meraklı olanlara tavsiyem, bu tarz "uç" görünen projeleri sadece bir sonuç olarak değil, kendilerini geliştirecekleri harika birer öğretici süreç olarak görmeleri.
Bu arada Bitcointalk için de güzel çalışmalarım oldu. Onları da bir ara genele açmayı düşünüyorum
Metni ben yazdım ama daha okunabilir olması için AI yardımıyla düzenleme yaptırdım.