Guides ·

Fon Göndermeden Önce Kripto Adresi Nasıl Doğrulanır


Kripto para işlemleri geri alınamaz. Bozuk bir adrese, yanlış ağdaki bir adrese veya tek bir karakteri yer değiştirmiş bir adrese fon gönderirseniz, arayacak bir banka veya başvuracak bir iade mekanizması yoktur. Coinler gitti. Adres doğrulama, fonlarınız ile kalıcı kayıp arasındaki son savunma hattıdır, ancak çoğu kişi bunu tamamen atlar.

Bu rehber, adres doğrulamanın teknik düzeyde nasıl çalıştığını --- format kontrolleri, sağlama toplamı doğrulaması ve zincirler arası karışıklık tespiti --- açıklar ve doğrulamayı iş akışınıza nasıl entegre edeceğinizi gösterir.

Doğrulama Kriptolarınızı Neden Kurtarır

İnsanların kripto para kaybetmesinin en yaygın yolu sofistike bir saldırı değildir. Basit insan hatasıdır: bir adresi yanlış kopyalamak, yanlış zincirden bir adresi yapıştırmak veya panonuzdaki adresi sessizce saldırganın kontrol ettiği bir adresle değiştiren pano kötü amaçlı yazılımına düşmek.

Düşünün. bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4 gibi bir Bitcoin adresi 42 karakter uzunluğundadır. Bir Ethereum adresi 0x öneki dahil 42 karakterdir. Bir Solana adresi 44 karaktere kadar çıkabilir. Bunlar insan dostu dizeler değildir. Elle kopyalamak adeta hata davet etmektir ve kötü amaçlı yazılım varsa kopyala-yapıştır bile yanlış gidebilir.

Doğrulama, bu sorunları felaket olmadan önce yakalar. Doğru bir doğrulama kontrolü şunları söyler:

  • Format doğru mu? Dize, hedef blokzincir için beklenen kalıpla eşleşiyor mu?
  • Sağlama toplamı geçiyor mu? Adres oluşturulduğundan beri herhangi bir karakter değiştirilmiş mi?
  • Doğru ağ mı? Bitcoin'i Bitcoin Cash adresine mi yoksa ETH'yi aynı görünen bir BNB Chain adresine mi göndereceksiniz?

Bu kontrollerin her biri farklı bir katmanda çalışır. Birlikte, adresle ilgili hataların büyük çoğunluğunu yakalayan derinlemesine bir savunma stratejisi oluştururlar.

Format Doğrulama: Düzenli İfadeler

Doğrulamanın ilk katmanı yapısaldır. Her blokzincir, adresleri için belirli bir format tanımlar ve basit bir kalıp kontrolü uymayan dizeleri anında reddedebilir.

Bitcoin Adres Formatları

Bitcoin'in üç aktif adres formatı vardır, her biri farklı bir önekle:

  • Legacy (P2PKH): 1 ile başlar, 25--34 karakter. Örnek: 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2. Base58Check kodlaması kullanır.
  • Script (P2SH): 3 ile başlar, 25--34 karakter. Örnek: 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy. Ayrıca Base58Check.
  • Native SegWit (Bech32): bc1q (v0) veya bc1p (v1/Taproot) ile başlar, 42--62 karakter. Örnek: bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4. Bech32 veya Bech32m kodlaması kullanır.

Her üç formatı eşleştiren bir düzenli ifade şöyle görünür:

^(1[1-9A-HJ-NP-Za-km-z]{25,34})|(3[1-9A-HJ-NP-Za-km-z]{25,34})|(bc1[a-zA-HJ-NP-Z0-9]{25,90})$

Bu, açıkça Bitcoin olmayan dizeleri anında yakalar, ancak sağlama toplamlarını doğrulamaz. Bir dize kalıpla mükemmel eşleşip yine de yazım hatası içerebilir. Sonraki katman burada devreye girer.

Ethereum ve EVM Adresleri

Ethereum adresleri format olarak daha basittir: 0x ardından 40 onaltılık karakter. Aynı format tüm EVM uyumlu zincirlere uygulanır --- Polygon, Arbitrum, Optimism, Base ve BNB Chain.

^0x[0-9a-fA-F]{40}$

Bu basitlik hem güçlü hem de zayıf bir noktadır. Formatı doğrulamak kolaydır, ancak yalnızca adresten hangi EVM zincirine ait olduğunu söylemek imkansızdır. Bu soruna aşağıdaki zincirler arası bölümde döneceğiz.

Solana Adresleri

Solana adresleri Base58 kodlu ed25519 açık anahtarlarıdır, genellikle 32--44 karakter uzunluğunda, sabit bir önek olmadan. Base58 alfabesi görsel olarak belirsiz karakterleri (0, O, I, l) hariç tutar, bu da kopyalama hatalarını azaltır:

^[1-9A-HJ-NP-Za-km-z]{32,44}$

XRP Adresleri

XRP kendi Base58 varyantını kullanır. Adresler r ile başlar ve 25--35 karakter uzunluğundadır.

TRON Adresleri

TRON adresleri T ile başlar ve 34 karakter uzunluğundadır; Bitcoin'in eski formatına benzer Base58Check kodlaması kullanır.

Format kontrolleri hızlı ve ucuzdur --- bir form alanındaki her tuş vuruşunda çalıştırılabilir. Ancak en zayıf doğrulama katmanıdır. Formatı geçerli bir adres yine de bozuk olabilir. Bunu yakalamak için sağlama toplamlarına ihtiyacınız var.

Sağlama Toplamı Doğrulama: Yazım Hatalarını Tespit Etme

Sağlama toplamı, adresin içine gömülü küçük bir fazlalık verisidir ve bütünlüğünü doğrulamanıza olanak tanır. Herhangi bir karakter değiştirilirse, sağlama toplamı eşleşmez ve adres reddedilmelidir.

Base58Check (Bitcoin Legacy, TRON, XRP)

Base58Check kodlaması, çift SHA-256 hash'inden türetilen 4 baytlık bir sağlama toplamı ekler. Doğrulama süreci:

  1. Base58 dizesini baytlara dönüştürün.
  2. Yükü son 4 bayttan (sağlama toplamı) ayırın.
  3. SHA-256(SHA-256(yük)) hesaplayın.
  4. Hash'in ilk 4 baytını sağlama toplamıyla karşılaştırın.

Eşleşiyorsa adres sağlamdır. Eşleşmiyorsa en az bir karakter değiştirilmiştir. Rastgele bir hatanın bu kontrolü geçme olasılığı yaklaşık 4,3 milyarda 1'dir (2^32).

Bech32 ve Bech32m (Bitcoin SegWit)

Bech32 BCH kodlarına dayanan farklı bir hata tespit şeması kullanır. Herhangi bir tek karakter hatasını ve yaygın çok karakter hatalarının çoğunu tespit edebilir. Bech32m (bc1p ile başlayan Taproot adresleri için kullanılır), orijinal Bech32 kodlamasındaki belirli uç durum mutasyonları için bilinen bir zayıflığı düzelten hafif bir revizyondur.

EIP-55 Büyük/Küçük Harf Karışık Sağlama Toplamı (Ethereum)

Ethereum adresleri onaltılıktır, bu nedenle kodlama içinde geleneksel bir sağlama toplamına yer yoktur. EIP-55 bunu akıllıca çözer: hex harflerinin büyük/küçük harf yazımını sağlama toplamı olarak kullanır. Her karakter, küçük harfli adresin Keccak-256 hash'inin karşılık gelen nibble'ına göre büyük veya küçük harfe dönüştürülür.

Örneğin, 0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed belirli büyük ve küçük harflere sahiptir. Herhangi bir karakterin büyük/küçük harf durumunu değiştirirseniz, sağlama toplamı başarısız olur. Tamamen küçük harfli adresler (0x5aaeb6...) sağlama toplamı olmayan olarak kabul edilir ve teknik olarak geçerlidir ancak hata koruması sunmaz.

Bu yüzden Ethereum Adres Doğrulayıcısı gibi araçlar hem formatı hem de EIP-55 büyük/küçük harf kullanımını kontrol eder. Her iki kontrolü de geçen bir adres neredeyse kesinlikle doğru kopyalanmıştır.

Solana: Yerleşik Sağlama Toplamı Yok

Solana adresleri gömülü sağlama toplamı olmayan ham Base58 kodlu açık anahtarlardır. Bu, bir yazım hatasının kimseye ait olmayan --- veya daha kötüsü, başka birine ait --- geçerli görünen bir adres üretebileceği anlamına gelir. Solana adresleri için doğrulama yalnızca formatı ve Base58 geçerliliğini onaylayabilir, bütünlüğü değil. Bu, dikkatli kopyala-yapıştır ve QR kodlarının kullanımını Solana işlemleri için özellikle önemli kılar. Formatı Solana Adres Doğrulayıcısı ile doğrulayabilirsiniz.

Zincirler Arası Karışıklık: Yaygın Hatalar

Format ve sağlama toplamı doğrulama sizi yazım hatalarından korur. Zincirler arası doğrulama, fonları doğru adrese ama yanlış ağda göndermekten korur.

EVM Zincir Çakışması

En tehlikeli zincirler arası karışıklık, EVM uyumlu ağlarda yaşanır. Bir Ethereum adresi aynı zamanda geçerli bir Polygon, Arbitrum, Optimism, Base ve BNB Chain adresidir. Polygon'daki bir adrese ETH gönderirseniz, ETH Polygon'a ulaşmaz --- Ethereum ana ağındaki o adrese gider (veya cüzdanınızda yanlış ağı seçtiyseniz kaybolur).

EVM adreslerini yalnızca formattan ayırt etmenin bir yolu yoktur. Tek savunma, cüzdan yazılımınızda ağ seçimini doğrulamak ve onaylamadan önce chain ID'yi iki kez kontrol etmektir. EVM adres güvenliğine daha derin bir bakış için EVM Adres Güvenliği yazısına bakın.

Bitcoin vs. Bitcoin Cash

Eski Bitcoin adresleri (1 veya 3 ile başlayan) Bitcoin Cash adresleriyle sözdizimsel olarak aynıdır. Bitcoin Cash, karışıklığı azaltmak için CashAddr formatını (bitcoincash:q... ile başlayan) tanıttı, ancak birçok hizmet hala eski formatı göstermektedir. BTC'yi BCH adresine göndermek (veya tersi) her zaman kayıpla sonuçlanmaz --- fonlar özel anahtarla kurtarılabilir --- ama stresli, kaçınılabilir bir hatadır.

TRON vs. Bitcoin Legacy

TRON adresleri T ile başlar ve Base58Check kullanır, yüzeysel olarak bazı Bitcoin adres kalıplarına benzer. Her ikisine bir göz atan biri, farklı ağlara ait olduklarını hemen fark etmeyebilir. Otomatik doğrulama araçları, Base58Check yükü içindeki sürüm baytını kontrol ederek bunu anında yakalar.

Solana vs. Diğerleri

Solana'nın Base58 adresleri ayırt edici bir önekten yoksundur, bu da yüzeysel olarak diğer Base58 kodlu adreslere benzeyebileceği anlamına gelir. En iyi koruma, göndermeden önce her zaman adresi zincire özel bir araçla doğrulamaktır.

SafeSeed Adres Doğrulayıcıları

SafeSeed, birden fazla blokzincir için ücretsiz, istemci tarafı adres doğrulayıcıları sunar. Her doğrulayıcı format kontrollerini ve uygulanabilir olduğunda sağlama toplamı doğrulamasını tamamen tarayıcınızda gerçekleştirir --- hiçbir sunucuya veri gönderilmez.

Doğrulayıcılar yalnızca bir adresin geçerli olup olmadığını değil, hangi formatı kullandığını da söyler. Bu özellikle Bitcoin için yararlıdır; Legacy, SegWit ve Taproot adreslerini ayırt etmek ücret tahmini ve uyumluluk için önemlidir.

Bu araçlar tamamen tarayıcıda Web Crypto API kullanarak çalıştığı için, maksimum güvenlik için hava boşluklu bir makinede kullanabilirsiniz. Çevrimdışı ortamda adres oluşturma rehberi için Bitcoin Tohum İfadesini Çevrimdışı Oluşturma ve Ethereum Cüzdanını Çevrimdışı Oluşturma yazılarına bakın.

Doğrulamayı İş Akışınıza Entegre Etme

Doğrulamanın nasıl çalıştığını bilmek savaşın sadece yarısıdır. Diğer yarısı onu alışkanlık haline getirmektir.

Her İşlemden Önce

  1. Adresi güvenilir bir kaynaktan kopyalayın. Doğrudan cüzdan uygulamasını kullanın, mesajı, e-postayı veya web sitesini değil. Pano kötü amaçlı yazılımı gerçek ve yaygındır.
  2. Doğrulayıcıya yapıştırın. Adresi, formatı ve sağlama toplamını onaylamak için zincire özel bir doğrulayıcıdan geçirin. Bu iki saniye sürer ve binlerce dolar kurtarabilir.
  3. İlk ve son birkaç karakteri görsel olarak karşılaştırın. Doğrulamadan sonra bile, yapıştırılan adresin ilk 6 ve son 6 karakterini orijinalle karşılaştırın. Bu, adresin ortasını değiştiren pano değiştirme saldırılarını yakalar.
  4. Önce küçük bir test işlemi gönderin. Büyük transferler için önce küçük bir miktar gönderin ve alındığını onaylayın. İşlem ücreti sigorta niteliğindedir.

Geliştiriciler İçin

Cüzdan, borsa veya dApp geliştiriyorsanız, adres doğrulama giriş katmanında zorunlu olmalıdır. Kullanıcıların adresleri kendilerinin doğrulamasına güvenmeyin. Tuş vuruşunda format kontrolleri uygulayın, odak kaybında sağlama toplamı doğrulaması çalıştırın ve doğrulama başarısız olduğunda açık, belirsiz olmayan hata mesajları gösterin.

Bitcoin için Legacy, P2SH, Bech32 ve Bech32m'yi destekleyen bir kütüphane kullanın. Ethereum için EIP-55 sağlama toplamı doğrulaması uygulayın ve tamamen küçük harfli adreslerde uyarı verin. Solana için Base58 karakter setini ve uzunluğu doğrulayın.

Normal Kullanıcılar İçin

Doğrulama araçlarını yer imlerine ekleyin ve her seferinde kullanın. Doğrulama kontrolünü hak etmeyecek kadar küçük veya rutin bir işlem yoktur. Harcadığınız birkaç saniye, tek bir yanlış yönlendirilmiş işlemin bile geri dönüşü olmayan kaybıyla kıyaslandığında hiçbir şeydir.

Adres doğrulama gösterişli değildir. Manşetlere çıkan veya benimsemeyi artıran türden bir özellik değildir. Ama kripto paranızı korumak için yapabileceğiniz en pratik şeydir. Her adres, her seferinde --- istisnasız.