Sözlük / Adresler ve anahtarlar
Çıktı tanımlayıcısı
Diğer adları: Tanımlayıcı, Tanımlayıcı cüzdan, Output descriptor.
- Çıktı tanımlayıcısı nedir?
- Çıktı tanımlayıcısı, bir cüzdanın hangi script türünü, hangi anahtarları ve hangi türetme dalını kullanacağını belirten ve sonunda bir sağlama toplamı taşıyan tek satırlık bir metindir.
Tanımlandığı belge: BIP-380.
Tanımlayıcılar, tek başına bir genişletilmiş anahtarın belirsiz olması nedeniyle vardır. Aynı xpub eski (legacy), iç içe SegWit, yerel SegWit veya Taproot adresleri üretebilir ve bu soruyu yalnızca onu saran fonksiyon netleştirir. Bitcoin Core, Nisan 2022'de yayımlanan 23.0 sürümünden beri varsayılan olarak tanımlayıcı cüzdanları oluşturur ve tanımlayıcısı olmayan bir çoklu imza yedeği çoğu zaman kurtarılamaz.
Nasıl çalışır
Bir tanımlayıcı, bir anahtar ifadesine uygulanan, ardından bir kare işareti ve sekiz sağlama toplamı karakteri gelen bir fonksiyondur. Fonksiyon script türünü adlandırır: eski tür için pkh, iç içe SegWit için sh(wpkh(...)), yerel SegWit için wpkh, Taproot için tr ve 3'te 2 kasa için wsh(sortedmulti(2,...)).
Geri kalanı anahtar ifadesi taşır. Köşeli parantezler kökeni, yani ana anahtarın parmak izini ve o anahtara ulaşmak için kullanılan yolu tutar, örneğin [1a2b3c4d/84h/0h/0h] gibi. Ardından genişletilmiş anahtar gelir, sonra /0/* gibi bir sonek; buradaki yıldız, her adres dizinini sırayla temsil eden bir joker karakterdir. Joker karakter içeren tanımlayıcıya aralıklı denir ve ondan 0 ile 999 arasındaki adresleri istemek, bin içe aktarma yerine tek bir RPC çağrısıdır.
Alma ve para üstü iki ayrı tanımlayıcıdır, tek değil; bu yüzden cüzdanlar bunları /0/* ve /1/* ile biten çiftler halinde içe aktarır. BIP-389 bunu çoklu yol gösterimiyle düzene soktu ve çifti tek bir dizede /<0;1>/* şeklinde yazar.
Sağlama toplamı küçüktür ama kritik bir işlev görür. BIP-380, tanımlayıcı metni üzerinde sekiz karakterlik bir kod tanımlar; bu kod, uzun bir dizede gerçekten olan hasar türlerini yakalamak için tasarlanmıştır: yer değiştirmiş bir karakter, kesilerek yapıştırılmış bir metin, bir e-posta istemcisinin eklediği satır sonu. Bitcoin Core, sağlama toplamı eşleşmeyen hiçbir tanımlayıcıyı kabul etmez ve getdescriptorinfo, kendi yazdığınız bir dize için doğru olanı hesaplar.
Nerede karşınıza çıkar
Tanımlayıcılar, tek bir kurtarma ifadesinden daha karmaşık her şeyin yedekleme biçimidir. Sparrow, Nunchuk ve Specter, oluşturdukları her cüzdan için bir tanımlayıcı dışa aktarır ve bir Coldcard, çoklu imza kurulumu sırasında tanımlayıcıyı microSD karta yazar, böylece düzen orijinal koordinatör yazılımı olmadan yeniden kurulabilir.
Bitcoin Core, bunların standart hale geldiği yerdir. Ekim 2018'de yayımlanan 0.17.0 sürümü bunları tarama ve adres üretimi için tanıttı; importdescriptors ve listdescriptors onları cüzdanın yerel diline dönüştürdü; ve tanımlayıcı cüzdan artık yazılımın oluşturduğu tek tür. Bir Core cüzdanını bir tanımlayıcı ve yeniden tarama ile geri yüklemek desteklenen bir yoldur ve bu yol, yazılım sıfırdan yeniden kurulsa bile geçerliliğini korur.
Sade tek imzalı bir cüzdanda genellikle hiç görmeden idare edebilirsiniz, çünkü kurtarma ifadeniz ve standart yol yeterlidir. Çoklu imzada ise tanımlayıcı, yedeğin eksik yarısıdır: script türünün, anahtar sırasının veya her ortak imzacının kökeninin kaydı olmayan üç kurtarma ifadesi, bitcoinlerinizin durduğu adresleri yeniden oluşturamamanıza yol açabilir.
Çıktı tanımlayıcısı vs genişletilmiş anahtar
Genişletilmiş anahtar bir malzemedir ve tanımlayıcı tariftir. xpub yazılıma hangi anahtarların var olduğunu söyler; tanımlayıcı ise bunlardan ne kurulacağını ve saymaya nereden başlanacağını söyler. Bu yüzden bir xpub'ı iki farklı uygulamaya aktarmak iki farklı adres listesi üretebilirken aynı tanımlayıcıyı aktarmak üretemez. İkisi de gizlilik açısından aynı şeyi açığa çıkarır: ikisinden birini elinde tutan herkes dalınızı numaralandırabilir, bu yüzden bir tanımlayıcı, içindeki anahtar kadar özen ister.