Kripto Adres Formatları: Bech32, Base58 ve 0x
İçindekiler
Bir kripto adresi kopyalayıp Bitcoin adreslerinin bc1 ile, Ethereum adreslerinin 0x ile başladığını ve Solana adreslerinin tamamen farklı bir dil gibi göründüğünü fark ettiyseniz, yalnız değilsiniz. Bu farklılıklar kozmetik değildir. Her adres formatı, blokzincir hakkında, desteklediği işlem türü hakkında ve fonlarınızı koruyan hata tespit mekanizmaları hakkında spesifik bilgileri kodlar.
Adres formatlarını anlamak pratik bilgidir. Kripto adresinde tek bir yanlış karakter fonları kalıcı olarak boşluğa gönderebilir. Bu rehber başlıca kodlama şemalarını açıklar, her blokzincirin neden kendi formatını seçtiğini anlatır ve sağlama toplamlarının maliyetli hataları nasıl önlediğini gösterir.
Adresler Neden Farklı Görünür¶
Kripto para adresi, bir açık anahtarın veya ondan türetilmiş bir hash'in insan tarafından okunabilir temsilidir. Ham kriptografik çıktı ikili veridir ve insanların okuması, kopyalaması veya doğrulaması için pratik değildir. Farklı blokzincirler bu ikili veriyi metin dizelerine dönüştürmek için farklı kodlama şemaları seçmiştir.
Bu kodlama tercihleri aşağıdakiler arasındaki dengeleri yansıtır:
- Karakter seti güvenliği -- benzer görünen karakterlerden kaçınma (0/O, l/1/I)
- Hata tespiti -- fonlar kaybolmadan yazım hatalarını yakalayan yerleşik sağlama toplamları
- Alan verimliliği -- daha kısa adresler işlenmesi daha kolay
- Büyük/küçük harf duyarlılığı -- yalnızca küçük harf formatları pano karışıklığını önler
Kripto para dünyasındaki üç baskın kodlama ailesi Base58Check, Bech32 ve 0x önekli onaltılıktır. Her biri blokzincir tarihinin belirli anlarında belirli tasarım hedeflerinden doğmuştur.
Base58Check: Bitcoin Mirası¶
Base58Check, Satoshi Nakamoto tarafından Bitcoin ile tanıtılan ilk adres kodlama şemalarından biriydi. Görsel karışıklığa neden olan karakterleri kasıtlı olarak hariç tutarak 58 alfanümerik karakter kullanır:
- Sıfır yok (
0) -- O harfine çok benziyor - Büyük O yok (
O) -- sıfıra çok benziyor - Küçük L yok (
l) -- büyük I'ya ve 1 rakamına çok benziyor - Büyük I yok (
I) -- küçük l'ye ve 1 rakamına çok benziyor
Base58Check Bitcoin adresi şöyle görünür: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
Format, başta bir sürüm baytı ve sonda 4 baytlık sağlama toplamı içerir. Sürüm baytı adres türünü belirtir: standart P2PKH adresleri için 1, P2SH adresleri için 3. Sağlama toplamı, yük üzerinde SHA-256'yı iki kez çalıştırarak ve sonucun ilk 4 baytını ekleyerek hesaplanır.
Bu sağlama toplamı, yanlışlıkla tek bir karakter yanlış yazarsanız adresin neredeyse kesinlikle doğrulama başarısız olacağı anlamına gelir --- fonları yanlış ama geçerli bir adrese göndermek yerine. Rastgele bir yazım hatasının geçerli bir sağlama toplamı üretme olasılığı yaklaşık 4,3 milyarda 1'dir.
Base58Check kanıtlanmış ve tanıdık olduğu için birkaç başka blokzincir de benimsemiştir:
Herhangi bir işlem göndermeden önce Base58Check adresinin geçerli sağlama toplamına sahip olup olmadığını kontrol etmek için SafeSeed'in Bitcoin Adres Doğrulayıcısını kullanabilirsiniz.
Bech32: SegWit bc1 Adresleri¶
2017'de Bitcoin, yeni bir adres formatı gerektiren Segregated Witness (SegWit) teknolojisini tanıttı. Base58Check'i genişletmek yerine geliştiriciler BIP173'te tanımlanan Bech32'yi oluşturdular. Bech32 adresleri Bitcoin ana ağı için bc1 ile başladıkları için hemen tanınabilir.
Bech32 adresi şöyle görünür: bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4
Bech32, Base58Check üzerinde birkaç kasıtlı iyileştirme yaptı:
Yalnızca küçük harf¶
Bech32 yalnızca küçük harfler ve rakamlar kullanır. Bu, adresler sözlü olarak iletildiğinde, karışık büyük/küçük harf fontlarında basıldığında veya QR kodlarında kodlandığında (tek büyük/küçük harf verisiyle daha kompakt olan) büyük/küçük harf duyarlılığı sorunlarını ortadan kaldırır.
Üstün hata tespiti¶
Base58Check hataları tespit eder ancak hatanın nerede olduğunu söyleyemez. Bech32, herhangi bir tek karakter hatasını ve çoğu çoklu karakter değiştirme hatasını tespit edebilen BCH kodu (Bose-Chaudhuri-Hocquenghem) kullanır. İki hataya kadar konumu belirleyebilir ve bazı cüzdan arayüzlerinde potansiyel düzeltme sağlar.
Daha küçük QR kodları¶
Bech32 kısıtlı bir karakter seti (32 karakter) kullandığı için, bu adresleri temsil eden QR kodları ölçülebilir şekilde daha küçük ve taranması daha kolaydır.
Bech32m¶
Bech32m (BIP350) adlı güncellenmiş bir sürüm, orijinal Bech32 formatında son karakterle ilgili küçük bir zayıflığı düzeltti. Modern SegWit v1 adresleri (Taproot, bc1p ile başlayan) Bech32m kullanır. SafeSeed'in Bitcoin Adres Oluşturucusu ile Bitcoin adresi oluşturursanız varsayılan çıktı modern Bech32/Bech32m formatını kullanır.
Litecoin da SegWit adresleri için ltc1 önekiyle Bech32'yi benimsemiştir.
0x: EVM Zincir Adresleri¶
Ethereum tamamen farklı bir yaklaşım izledi. Ethereum adresleri 0x önekiyle 40 onaltılık karakter olarak görüntülenen 20 baytlık değerlerdir:
0x742d35Cc6634C0532925a3b844Bc9e7595f2bD08
Onaltılık format basittir: her bayt iki onaltılık karaktere (0-9, a-f) eşlenir. Bu, adresi herhangi bir özel kodlama olmadan temel verinin doğrudan temsili yapar.
EIP-55 karışık büyük/küçük harf sağlama toplamı¶
Orijinal Ethereum adres formatının yerleşik sağlama toplamı yoktu. Bir karakter yanlış yazarsanız adres teknik olarak hala geçerliydi ve fonlarınız kaybolurdu. EIP-55, onaltılık harflerin büyük/küçük harf yazımını sağlama toplamı olarak kullanarak bunu çözdü. Adres Keccak-256 ile hashlenir ve hash'teki karşılık gelen nibble 8'i aşarsa her harf büyük yazılır.
Bu yüzden Ethereum adreslerinde rastgele görünen büyük/küçük harf yazımı görürsünüz. Büyük ve küçük harflerin karışımı rastgele değildir; bir sağlama toplamıdır. Tek bir karakter değiştirirseniz büyük harf deseni eşleşmez ve düzgün uygulayan bir cüzdan bunu reddeder.
EVM zincirleri arasında paylaşılan¶
0x formatının en önemli yönlerinden biri, tüm EVM uyumlu zincirler arasında aynı olmasıdır:
- Ethereum --
0x... - BNB Chain --
0x... - Polygon --
0x... - Arbitrum --
0x... - Optimism --
0x... - Base --
0x... - Avalanche C-Chain --
0x...
Aynı özel anahtar tüm bu zincirlerde aynı adresi üretir. Bu hem kolaylık hem de karışıklık kaynağıdır: tokenleri doğru adrese ama yanlış zincire göndermek yaygın bir hatadır. EVM adres güvenliğine daha derin bir bakış için EVM Adres Güvenliği rehberimize bakın.
SafeSeed'in Ethereum Adres Doğrulayıcısı ile EIP-55 sağlama toplamı dahil herhangi bir EVM adresini doğrulayabilirsiniz.
Solana, XRP ve TRON'da Base58¶
Birkaç modern blokzincir, Check soneki olmadan Base58 kodlaması kullanır; yani kendi sağlama veya doğrulama mekanizmalarını uygularlar.
Solana¶
Solana adresleri, genellikle 32 ila 44 karakter uzunluğunda Base58 kodlu Ed25519 açık anahtarlardır:
7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV
Solana, Bitcoin ile aynı Base58 alfabesini kullanır (görsel olarak kafa karıştırıcı karakterler hariç) ancak sürüm baytı veya SHA-256 sağlama toplamı eklemez. Bunun yerine adres basitçe Base58 kodlamalı ham açık anahtardır. Doğrulama, anahtarın Ed25519 eğrisi üzerinde geçerli bir nokta olmasına bağlıdır. SafeSeed'in Solana Adres Doğrulayıcısı bu doğrulamayı gerçekleştirir.
XRP¶
XRP kendi sürüm önekiyle Base58Check kodlaması kullanır ve r ile başlayan adresler üretir:
rN7n3473SaZBCG4dFL83w7p1W9cgZw6p1N
TRON¶
TRON adresleri 0x41 sürüm baytıyla Base58Check kullanır ve T ile başlayan adresler üretir:
TJCnKsPa7y5okkXvQAidZBzqx3QyQ6sxMW
İlginç bir şekilde TRON, Ethereum ve Bitcoin ile aynı secp256k1 eliptik eğrisini kullanır. TRON adresi, Ethereum adresiyle aynı anahtar malzemesinden türetilir ancak farklı kodlanır.
Sağlama Toplamları: Güvenlik Ağınız¶
Sağlama toplamı, adres yükünden türetilen ve yazılımın hataları tespit etmesini sağlayan küçük bir veri parçasıdır. Bunu matematiksel bir parmak izi olarak düşünün: tek bir karakter bile değişse parmak izi eşleşmez.
Başlıca formatlar arasında sağlama mekanizmaları şöyle karşılaştırılır:
| Format | Sağlama Yöntemi | Tespit Yeteneği |
|---|---|---|
| Base58Check | Çift SHA-256 (4 bayt) | Neredeyse tüm hataları tespit eder |
| Bech32 | BCH kodu (6 karakter) | Tüm tek karakter hatalarını tespit eder; 2 hataya kadar konumunu belirler |
| EIP-55 (0x) | Keccak-256 büyük/küçük harf | Tek karakter değişiklikleri için ~%99,98 hata tespiti |
| Solana Base58 | Ed25519 eğri doğrulaması | Geçersiz eğri noktalarını reddeder |
Sağlama toplamı her tür hatadan korumaz. Zararlı yazılım tüm panonuzu farklı ama geçerli bir adresle değiştirirse (pano kaçırma saldırısı), saldırganın adresi geçerli olduğu için sağlama toplamı yine geçer. Sağlama toplamları kazara yazım hatalarını ve iletim hatalarını korur, kasıtlı dolandırıcılığı değil.
Yazım hatalarının ötesindeki tehditlere daha geniş bir bakış için Tohum İfadesiyle İlgili Yaygın Kripto Dolandırıcılıkları yazısına bakın.
Göndermeden Önce Adresleri Doğrulama¶
Her kripto para işlemi adres doğrulamayla başlamalıdır. Bu, ilk birkaç karaktere göz atmaktan fazlasını gerektirir. Doğru doğrulama şunları içerir:
1. Format doğrulaması¶
Adresin kullandığınız blokzincir için beklenen formatla eşleştiğini onaylayın. bc1 adresi yalnızca Bitcoin'de kullanılmalıdır. 0x adresi birden fazla EVM zincirinde geçerli olabilir, bu yüzden hangi ağı kullanmayı planladığınızı iki kez kontrol edin.
2. Sağlama toplamı doğrulaması¶
Adresi yerleşik sağlama toplamını kontrol eden bir doğrulayıcıdan geçirin. SafeSeed en yaygın zincirler için ücretsiz doğrulayıcılar sunar:
Tüm doğrulama tamamen tarayıcınızda istemci tarafı kodla çalışır. Hiçbir adres verisi herhangi bir sunucuya iletilmez.
3. Görsel onay¶
Otomatik doğrulamadan sonra bile adresin ilk ve son birkaç karakterini görsel olarak onaylayın. Pano kaçırma zararlı yazılımları bazen adresleri aynı ilk birkaç karakteri paylaşan saldırgan kontrollü adreslerle değiştirir.
4. Küçük test işlemi¶
Büyük transferler için önce küçük bir miktar gönderin ve tam bakiyeyi göndermeden önce alındığını onaylayın. Küçük işlem ücreti kesinlik için ödenmesi gereken küçük bir bedeldir.
5. Adres defteri özelliklerini kullanma¶
Çoğu cüzdan doğrulanmış adresleri kaydetmenize izin verir. Bir adresi onayladıktan sonra yeniden girmekten (ve yeni hata fırsatları oluşturmaktan) kaçınmak için kaydedin.
Doğrulama sürecinin ayrıntılı bir rehberi için Kripto Adresi Nasıl Doğrulanır yazısına bakın.
Doğru Formatı Seçme¶
Yeni adresler üretiyorsanız modern formatlar neredeyse her zaman tercih edilir:
- Bitcoin: Daha düşük ücretler ve daha iyi hata tespiti için Bech32 (
bc1) adresleri kullanın. Eski Base58Check adresleri hala çalışır ancak daha büyük işlem boyutları nedeniyle daha yüksek işlem ücretleri gerektirir. - Ethereum ve EVM zincirleri: Her zaman EIP-55 sağlama toplamlı adresler kullanın. Çoğu modern araç bunları varsayılan olarak üretir.
- Solana: Base58 tek seçenektir ve iyi çalışır.
SafeSeed ile adres oluştururken araçlar her blokzincir için en güncel ve güvenli formata varsayılan olarak ayarlanır. İster Bitcoin Tohum İfadesi Oluşturucusu ister Ethereum Adres Oluşturucusu kullanın, türetilen adresler o zincir için önerilen kodlamayı kullanacaktır.
Bu formatları anlamak kripto para adreslerindeki gizemi ortadan kaldırır. Bunlar rastgele dizeler değildir --- kriptografik anahtarların dikkatle tasarlanmış temsilleridir ve fonlarınızı basit insan hatasından korumak için yerleşik güvenlik mekanizmalarına sahiptirler.