İçeriğe geçin
buybitcoinsmart

Sözlük / Adresler ve anahtarlar

BIP-49 türetmesi

BIP-49 türetmesi nedir?
BIP-49 türetmesi, iç içe SegWit hesaplarını m/49'/0'/0' yolunda kendi dalına yerleştirir; böylece bu hesapları okuyamayan bir cüzdan yanlış bir bakiye yerine hiçbir şey göstermez.

Tanımlandığı belge: BIP-49.

BIP-49, anahtar ağacının ilk sertleştirilmiş düzeyini, yani 49', adresleri P2SH içine sarılmış P2WPKH olan hesaplara ayırır. 19 Mayıs 2016 tarihinde atandı ve sonradan kendi genişletilmiş anahtar sürüm baytlarını kazandı: ypub için 0x049d7cb2, yprv için 0x049d7878. Cüzdanınız ypub ile başlayan bir hesap anahtarı dışa aktarıyorsa, bir geri yüklemenin araması gereken dal odur.

Nasıl çalışır

BIP-49 iki soruyu netleştirir: bir BIP-32 ağacının hangi dalı sarılmış SegWit anahtarlarını tutar ve bir adres o daldaki bir anahtardan nasıl kurulur.

Dal, BIP-44 tarafından zaten kullanılan beş düzeyli şablonu, m / purpose' / coin_type' / account' / change / address_index, ödünç alır ve tam olarak tek bir sayıyı değiştirir. Amaç, 44' yerine 49' olur. Para türü, hesap, zincir ve dizin, BIP-44 tarafından verilen anlamlarını korur.

Adresle ilgili kısım mekaniktir: sıkıştırılmış genel anahtarın hash'i alınır, 20 baytlık sonuç 22 baytlık bir redeem script içine sarılır ve ardından çıktının taahhüt ettiği şeyi elde etmek için bu script'in hash'i alınır. Şartname iki parçayı scriptSig: 0x160014{20-byte-key-hash} ve scriptPubKey: 0xA914{20-byte-script-hash}87 olarak yazar.

İlginç olan, yazarın reddettiği seçenektir. Weigl iki yaklaşımı sıralar: elinizdeki hesabı koruyup sarılmış SegWit adreslerini aynı genel anahtarlara bağlamak veya yeni bir amaç altında ayrı hesaplar oluşturmak. İlki, bir sorun çıkana kadar daha kullanıcı dostudur ve sonra, şartnamenin sözleriyle, hesap "might show up but also it might miss some UTXOs". BIP-49 ayrı hesapları tam da bu seçenek "fails in a more visible way" olduğu için seçti. Boş bir ekran, makul görünen yanlış bir sayıdan daha iyi bir hata mesajıdır.

Serileştirme de sonunda aynı muameleyi gördü: bu daldaki genişletilmiş genel anahtarlar 0x049d7cb2 sürüm baytlarını kullanır ve base58 kodlamasıyla ypub önekine ulaşır; yprv için 0x049d7878, testnet'te ise upub ve uprv kullanılır.

Nerede görülür

BIP-49, xpub yerine ypub ile başlayan bir genişletilmiş anahtar olarak ve bir cüzdanın yerel hesabın yanında listelediği sarılmış SegWit hesabı olarak görünür. Bu sitenin 3,7 puan verdiği Mycelium, yerel ve sarılmış SegWit hesaplarını tek bir uygulamada taşır; bu iki düzen SLIP-0132 tarafından zpub ve ypub altında kayıtlıdır.

ypub öneki sonradan eklenmiş bir düzenlemeydi ve bu geçmiş hâlâ kendini gösterir. Amaç düzeyini 2014 yılında icat eden BIP-43, uygulayıcılara her amaç için 0x0488B21E ve xpub önekini korumalarını söyledi. BIP-49 başta bu şekilde yayımlandı ve sürüm baytlarını düzgün biçimde kaydetmek için 8 Şubat 2018 tarihinde oluşturulan SLIP-0132, sonucu açıkça anlatır: değişmeyen önek "unsustainable user confusion" (sürdürülemez kullanıcı karışıklığı) durumuna yol açtı, çünkü ya kullanıcı bir xpub'un hangi daldan geldiğini hatırlamak zorundaydı ya da alıcı araç her iki adres alanını taramak zorundaydı. Önek bir ipucudur, bir garanti değil. Bir genişletilmiş anahtarı bir blok gezginine yapıştırdığınızda araç 1 ile başlayan adresler türetirken cüzdanınız 3 ile başlayan adresler gösteriyorsa, elinizde eski öneki taşıyan bir BIP-49 anahtarı var demektir ve araca yol elle bildirilmelidir.

Şartname, bir aracı karşı kontrol etmeye değer bir testnet vektörü içerir: on bir kez tekrarlanan abandon ifadesinin ardından about, hesap kökü m/49'/1'/0', ilk alım adresi 2Mww8dCYPUpKHofjgcXcBCEGmniw9CoaiD2.

BIP-49 türetmesi vs iç içe SegWit

BIP-49 türetmesi anahtarlarla ilgili bir kuraldır, iç içe SegWit ise zincirin gördüğü bir desendir; ikisi genellikle birlikte gider ama hiçbiri diğerini gerektirmez. Bir çıktı, taahhüt ettiği script nedeniyle iç içe SegWit'tir ve içinde anahtarı hangi yolun ürettiğine dair hiçbir kayıt yoktur. Bir cüzdan bunu içe aktarılmış bir özel anahtardan veya BIP-49'un reddettiği, hâlihazırda bir BIP-44 hesabında duran genel anahtarlardan ikinci bir P2SH adresi türeten yaklaşımdan kurabilir. Bu nedenle bitcoinlerinizin 3 ile başlayan adreslerde olduğunu bilmek, nereden geri yükleme yapacağınızı söylemez; hesap yolunun kurtarma ifadesi yedeğinin yanında notlarınızda yer almasının nedeni budur.

Karıştırılmaması gerekenler

Sık sorulan sorular

Genişletilmiş genel anahtarım neden xpub yerine ypub ile başlıyor?

Çünkü BIP-49 ile bu dala atanan sürüm baytlarıyla, yani 0x049d7cb2 ile serileştirildi ve bu baytlar base58 kodlamasında ypub olur. Önek, türetme düzeninin bir etiketidir, farklı türde bir anahtar değildir ve SLIP-0132 bunu xpub ve zpub ile birlikte kaydeder.

BIP-49 kullanımdan kaldırıldı mı?

Hayır. BIP'nin kendi başlığı hâlâ Deployed yazıyor ve 49' dalında hesap oluşturan cüzdanlar bunları normal biçimde türetmeye devam ediyor. Şartnamede bu dalı geri çeken hiçbir ifade yok ve onun altında duran bitcoinler için kurtarma gerekmez.

Bir adresin BIP-49'dan gelip gelmediğini anlayabilir miyim?

Hayır. Bir P2SH çıktısı yalnızca taahhüt ettiği script hash'ini kaydeder, bu yüzden 3 ile başlayan bir adres arkasındaki yol hakkında hiçbir şey ele vermez. Hesap yolunu sonradan çıkarsamaya çalışmak yerine yedeğinizle birlikte yazın.

Sıradaki okuma

İlgili terimler

Daha fazlası: Adresler ve anahtarlar

Bu sayfayı İngilizce okuyun