İçeriğe geçin
buybitcoinsmart

Sözlük / Adresler ve anahtarlar

Base58Check

Diğer adları: Base58.

Base58Check nedir?
Base58Check, Bitcoin'in özgün metin kodlamasıdır; ikili verilerden, karakterleri kolayca yazıya geçirilebilen 58 karakterlik bir alfabenin karakterlerinden bir dize oluşturur ve yazım hatalarını yakalamak için sonuna dört baytlık bir sağlama toplamı ekler.

Alfabede insanların elle kopyalarken karıştırdığı dört karakter yer almaz: sıfır, büyük O, büyük I ve küçük l. Yükün çift SHA-256 özetinden alınan dört baytlık sağlama toplamı, yanlış yazılmış bir adresin hiçliğe gönderilmek yerine cüzdan tarafından reddedilmesi anlamına gelir; yalnızca yaklaşık 4,29 milyarda bir ihtimalle gözden kaçar. 1 veya 3 ile başlayan her adres Base58Check ile kodlanmıştır.

Nasıl çalışır

Her Base58Check dizesine üç parça girer. Baştaki sürüm baytı bunun ne tür veri olduğunu söyler, ortadaki yük gerçek baytları taşır ve sondaki dört sağlama baytı, sürüm ile yükün birlikte iki kez SHA-256 ile özetlenmesiyle elde edilen ilk dört bayttır. Sonuç daha sonra 16 tabanı yerine 58 tabanında yazılır; bu, dizeyi belirgin biçimde kısaltır ve karıştırılabilen karakterleri ortadan kaldırır.

Baştaki bilinen karakterleri üreten şey sürüm baytıdır. 0x00 sürümü bir pay-to-public-key-hash adresini işaretler ve başta 1 olarak ortaya çıkar; 0x05 sürümü bir pay-to-script-hash adresini işaretler ve başta 3 olarak ortaya çıkar; 0x80 sürümü Wallet Import Format içindeki bir özel anahtarı işaretler; bu anahtar 5, K veya L ile başlar. Genişletilmiş anahtarlar bunun yerine dört baytlık bir sürüm kullanır, 0x0488B21E; her xpub'un bu dört harfle başlamasının nedeni budur.

Baştaki sıfır baytları özel olarak ele alınır, çünkü aksi hâlde taban dönüşümü bunları atardı. Yükün başındaki her 0x00 baytı fazladan bir "1" karakteri olarak yazılır; aynı miktarda veri taşımalarına karşın bazı eski adreslerin komşularından daha kısa veya daha uzun olmasının nedeni budur.

Nerede görülür

Base58Check, Bitcoin'in ilk on yılında her yerdedir ve en yeni biçimlerinde hiç yoktur. Eski adresler, pay-to-script-hash adresler, WIF özel anahtarları ve cüzdandan dışa aktardığınız xprv ile xpub genişletilmiş anahtarları bunu kullanır. bc1 ile başlayan hiçbir şey kullanmaz.

İki özellik hem yaygınlığı hem de terk edilişi açıklar. Amaç yazıya geçirme güvenliğiydi: alfabe, yüksek sesle okunan, ekrandan kopyalanan veya metal bir plakaya kazınan bir adresin insan elinden geçerken bozulmadan kalması için tasarlandı ve sağlama toplamı kalan hataları kayıp yerine redde dönüştürür. Ancak kodlama büyük ve küçük harfe duyarlıdır; bu da bir QR kodunu daha kompakt olan alfanümerik mod yerine bayt moduna zorlar ve kodlama size yalnızca bir şeyin yanlış olduğunu söyleyebilir, asla neyin yanlış olduğunu veya nerede olduğunu değil.

Base58Check vs Bech32

Base58Check hataları algılar, bech32 ise düzeltir. BIP-173 ile tanımlanan ve 2017 yılında yerel SegWit adresleri için benimsenen bech32, hiç büyük harf içermeyen 32 karakterlik bir alfabe kullanır; böylece tüm dize QR alfanümerik moda sığar ve daha küçük bir görüntüden taranır. BCH sağlama toplamı en fazla dört yanlış karakterin algılanmasını garanti eder ve basitçe başarısız olmak yerine hangi konumların şüpheli olduğunu gösterebilir.

Ardıl sürümün kendi yamasına ihtiyacı oldu. Özgün bech32 sağlama toplamındaki bir uzunluk uzatma zayıflığı, bazı adreslerin son karakterini algılanmadan kazanabilmesi veya kaybedebilmesi anlamına geliyordu; bu nedenle BIP-350 bir sabiti değiştiren bech32m'i tanımladı ve bc1p ile başlayan Taproot adresleri bunu kullanır. Base58Check geçerliliğini korur ve süresiz olarak çalışmaya devam edecektir, ancak yeni adres türleri artık bununla tanımlanmıyor.

Karıştırılmaması gerekenler

Sık sorulan sorular

Bitcoin adreslerinde neden hiç sıfır veya büyük O bulunmaz?

Çünkü Base58 alfabesi, insanların bir dizeyi elle kopyalarken yanlış okuduğu 0, O, I ve l karakterlerini bilerek çıkarır. İçinde bunlardan birini gördüğünüz hiçbir şey geçerli bir eski Bitcoin adresi değildir.

bech32 var olduğuna göre Base58Check adresi hâlâ çalışacak mı?

Evet. Eski ve pay-to-script-hash adresler tamamen geçerli kalır ve her cüzdan bunları destekler. Yeni adres türleri bunun yerine bech32 veya bech32m ile tanımlanır ve bunlardan harcama yapmak daha ucuzdur, ancak eski adreslerin kullanımdan kaldırılmasını zorlayan hiçbir şey yoktur.

İlgili terimler

Daha fazlası: Adresler ve anahtarlar

Bu sayfayı İngilizce okuyun