Sözlük / Adresler ve anahtarlar
BIP-84 türetmesi
- BIP-84 türetmesi nedir?
- BIP-84 türetmesi, bir BIP-32 yolunun amaç düzeyini 84' olarak belirleyen şemadır; böylece tek bir kurtarma ifadesi, BIP-141'deki P2WPKH kapsüllemesini kullanarak yerel SegWit bc1q adresleri üretir.
Tanımlandığı belge: BIP-84.
BIP-84, BIP-44'ün beş düzeyli düzenini yeniden kullanır ve yalnızca amaç değerini değiştirir. 28 Aralık 2017 tarihinde atanmıştır ve her hesabı, sürüm baytları 0x04b24746 olan bir zpub genişletilmiş anahtarıyla eşleştirir. Sizin için bu, geri yüklenen bir kurtarma ifadesinin bc1q bakiyenizi bulup bulmadığını yoksa boş bir cüzdan mı bildirdiğini belirler.
Nasıl çalışır
BIP-84 iki şey yapar; birincisi, bir yolun içindeki tek bir sayıyı sabitlemektir. Anahtarlar, BIP-44'ün getirdiği ve m / purpose' / coin_type' / account' / change / address_index olarak yazılan iskelete bağlanır ve bu şartnamenin kendisine ait olarak talep ettiği tek düzey, 84' olarak sabitlenen amaç düzeyidir. Para türü, hesap, değişim ve adres dizini, BIP-44 ile BIP-49'un zaten onlara verdiği anlamları korur ve yazar Pavol Rusnak, BIP-49'un gerekçesini yeniden ifade etmek yerine açıkça onu yeniden kullanır.
İkincisi çıktı biçimidir. BIP-84 kapsüllemeyi BIP-141'den ödünç alır: scriptPubKey, 0x0014 ve ardından genel anahtarın 20 baytlık hash değeridir, scriptSig boş bırakılır ve witness önce imzayı sonra anahtarı taşır. Bu çıktıda hiçbir şey hangi amaç değerinin onu ürettiğini kaydetmez.
Daldaki genişletilmiş anahtarlar kendi sürüm baytlarını alır. Genel anahtarlar zpub olarak yazdırılan 0x04b24746 değerini kullanır, özel anahtarlar zprv için 0x04b2430c değerini kullanır ve testnet, vpub ile vprv için 0x045f1cf6 ve 0x045f18bc değerlerini kullanır. Bu değerler Bitcoin'e özgü değildir. Onları toplayan kayıt olan SLIP-0132, Groestlcoin ve Syscoin'i de aynı 0x04b24746 altında listeler, çünkü serileştirme biçiminde para türü için hiçbir alan yoktur; dolayısıyla bir zpub size betik türünü söyler ve ait olduğu zincir hakkında hiçbir şey söylemez.
Şartname kendisini "not backwards compatible by design" olarak adlandırır ve uyumsuz bir cüzdanın "will not discover accounts at all" olduğunu söyler. Bu bilinçlidir. Ayrı bir amaç değeri, SegWit'ten önce yazılmış yazılımı kötü idare edeceği bir hesabın dışında tutar ve sıfır okuyan bir bakiye, sessizce yarım geri yükleyen bir cüzdandan daha iyi bir başarısızlıktır.
Nerede görülür
BIP-84 cüzdanınızın zaten gösterdiği üç yerde karşınıza çıkar: m/84'/0'/0' hesap yolu, zpub ile başlayan bir genişletilmiş anahtar ve bc1q ile başlayan alım adresleri. SLIP-0132, Bitcoin için bu zpub satırını m/84'/0' yoluyla eşleştirir; bir uygulama size bir tane verdiğinde ileri sürdüğü eşleştirme budur. İncelememizde 4,7 puan alan Sparrow, yaygın betik türlerinde tek imzalı ve çok imzalı cüzdanları destekler, böylece açtığınız hesap devraldığınız bir varsayılan değil, seçtiğiniz hesaptır.
Belgenin ödünç almaya değer kısmı, “bu cüzdan BIP-84'ü herkesle aynı şekilde mi uyguluyor” sorusunu bir dakika süren bir kontrole dönüştüren test vektörü bloğudur. BIP, on bir kez tekrarlanan "abandon" ve ardından "about" anımsatıcısı için sonuçlar yayımlar:
- m/84'/0'/0'/0/0 bc1qcr8te4kr609gcawutmrza0j4xv80jy8z306fyu verir
- m/84'/0'/0'/0/1 bc1qnjg0jd8228aq7egyzacy8cys3knf9xvrerkf9g verir
- m/84'/0'/0'/1/0 bc1q8c6fshw2dlwun7ekn9qwf37cu2rn755upcp6el verir
Bu ifadeyi üzerinde Bitcoin bulunmayan bir makinede tanımadığınız bir yazılıma yükleyin, yerel SegWit'i seçin ve ilk alım adresi ile ilk değişim adresini bu dizelerle karşılaştırın. İkisinin de eşleşmesi, uygulamanın değişim dalında da standartla uyuştuğu anlamına gelir; insanların kontrol etmeyi unuttuğu yarı budur. Bu adreslere asla bir şey göndermeyin: BIP eşleşen özel anahtarları ve SLIP-0132 aynı anımsatıcıyı yazdırır, dolayısıyla iki belgeden birini okuyan herkes oraya ulaşanı harcayabilir.
BIP-84 türetmesi vs P2WPKH
BIP-84 türetmesi bir anahtarın nereden geldiğini söyler, P2WPKH ise bitcoinlerin nasıl kilitlendiğini söyler. Yalnızca ikincisi konsensüstür. Bir cüzdan, içinde hiçbir yerde 84' bulunmayan bir yol boyunca bir anahtar türetebilir, çıktıyı aynı 0x0014 deseniyle kilitleyebilir ve ortaya çıkan bc1q adresi zincir üstünde sizinkinden ayırt edilemez olur. Bu yüzden “bir BIP-84 adresi” bir iddia değil kısaltmadır ve hiçbir blok gezgini bunu kesinleştiremez; amaç değeri ise bir yedekleme notuna kaydettiğiniz bir şeydir, çünkü onu daha sonra blok zincirinden geri okuyamazsınız.