İçeriğe geçin
buybitcoinsmart

Sözlük / Adresler ve anahtarlar

NUMS noktası

NUMS noktası nedir?
NUMS noktası, özel anahtarını kimsenin elinde tutmadığı bir genel anahtardır ve işbirliğine dayalı harcama yolunun imkansız olması istendiğinde taproot iç anahtarı olarak kullanılır.

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

Nothing Up My Sleeve bu özelliğin adıdır: nokta herkese açık ve tekrarlanabilir bir tariften gelir, böylece kimse onun için bir gizli anahtar iddia edemez. BIP-341 böyle bir nokta yayımlar: x koordinatı 0x50929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0 olan bu nokta, secp256k1 taban noktası G'nin standart sıkıştırılmamış kodlamasının hash'lenmesiyle üretilir. Bir cüzdan için bu, bir taproot çıktısının nasıl yalnızca script ile harcanabilir hale geldiğini gösterir: koşullarından oluşan ağacı üzerinden harcanabilir, başka hiçbir yolla değil.

Nasıl çalışır

Bir NUMS noktası hayata bir hash olarak başlar, bir anahtar olarak değil.

Sıradan bir genel anahtar, G üreticisinin gizli bir sayıyla çarpımıdır ve o sayıyı seçen kişi imza atabilir. Bir NUMS noktası tersinden kurulur: sabit bir genel metin alınır, hash'lenir ve ortaya çıkan 32 baytlık özet bir x koordinatı olarak okunur. BIP-341 içindeki örnek, G'nin kendi standart sıkıştırılmamış kodlamasını hash'ler, bu da yazara girdiyi değiştirme özgürlüğü bırakmaz. Bu değerin bir eğri noktasına yükseltilmesi, bir istisna dışında her bakımdan geçerli bir genel anahtar verir: onun için imza atmak bir ayrık logaritmayı çözmek anlamına gelir ve BIP-341, tasarımın güvenlik sınırını 2 üzeri 128'de 1 olarak belirtir.

Gerisini Taproot sağlar. Bir taproot çıktı anahtarı, iç anahtar P'nin, script ağacının merkle kökünü bağlayan bir tweak ile eğri boyunca kaydırılmasıyla elde edilir: BIP-341 t = hash_TapTweak(p || merkle_root) olarak tanımlar, ardından Q = P + int(t)G gelir. Anahtar yolunda Q için imza atmak P'nin arkasındaki özel anahtarı gerektirir, dolayısıyla P bir NUMS noktası olduğunda bu yol kapanır ve tek giriş yolu script yolu olur. Böyle bir harcama bir yaprağı ve 33 + 32m baytlık bir kontrol bloğunu açığa çıkarır; burada m kardeş hash sayısıdır ve BIP-341 bunu 128 ile sınırlar.

Bilinmeye değer bir sızıntı var. İyi bilinen bir NUMS noktası ilk bakışta tanınır, bu yüzden onu bir kontrol bloğunda çıplak yayımlamak anahtar yolunun baştan ölü olduğunu duyurur. BIP-341 bunu önermez: 0 ile n eksi 1 aralığından tekdüze rastgele yeni bir r tamsayısı seçilmesini ve onun yerine H + rG kullanılmasını önerir; bu, sıradan bir iç anahtardan ayırt edilemez. r'yi saklarsanız, noktanın NUMS olduğunu bir ortak imzacıya yeniden hesaplaması için vererek yine de kanıtlayabilirsiniz.

Nerede görülür

Bir NUMS noktası hiçbir zaman bir adreste görünmez, yalnızca script yolu harcamasının tanığında görünür.

Zincir üstünde çıktı 34 bayttır: OP_1 ve ardından 32 baytlık bir itme; diğer taproot çıktılarından hiçbir farkı yoktur. İç anahtar, kontrol bloğunun ilk baytını izleyen 32 bayttır, yani biri ağaç üzerinden ilk kez harcama yaptığında ortaya çıkar. Para yatırılan ama hiçbir zaman script ile harcanmayan bir çıktı onu hiç açığa çıkarmaz.

Tanımlayıcılar (descriptor) seçimi açık hale getirir. BIP-386, tr() altındaki her anahtar ifadesinin x-only olmasını şart koşar ve iç anahtarı tr(KEY, TREE) içinde ilk sıraya koyar, dolayısıyla oradaki bir NUMS noktası, bir tanımlayıcının anahtar yolu olmadığını belirtme biçimidir. Ters durum, ağacı olmayan tr(KEY) durumudur; burada BIP-386, script yolu olmayan bir çıktının yine de harcanamaz bir yola bağlanması gerektiğine dair BIP-341 tavsiyesini aktarır.

Bir NUMS iç anahtarı, kurtarmayı yalnızca kurtarma ifadelerine değil tanımlayıcı dizesine bağlı hale getirir: ifadeler yaprak anahtarları yeniden üretir ve içlerinde ağacı ya da onun üstündeki noktayı kaydeden hiçbir şey yoktur. Sparrow çoklu imza akışı, tanımlayıcıyı saklamanızı söyler ve bu talimat burada düz bir anahtar yolu cüzdanına göre daha fazla ağırlık taşır.

NUMS noktası vs Null veri işlemi

Bir NUMS noktası tek bir harcama yolunu kapatır, Null veri işlemi ise bir çıktıyı doğrudan harcanamaz hale getirir. Bir OP_RETURN çıktısı tasarımı gereği kanıtlanabilir biçimde ölüdür: düğümler onu UTXO kümesinden çıkarır ve ona atanan her değer yakılır. Bir NUMS iç anahtarının arkasındaki bitcoinler yakılmaz: script ağacındaki her koşul normal biçimde harcanır. İkisinin paylaştığı sözcük harcanamazdır; bir durumda tüm bir çıktıyı, diğerinde tek bir dalı kapsar.

Karıştırılmaması gerekenler

Sık sorulan sorular

NUMS iç anahtarına sahip taproot çıktısına gönderilen Bitcoin hâlâ harcanabilir mi?

Evet, script yolu üzerinden. NUMS iç anahtarı yalnızca anahtar yolu harcamasını devre dışı bırakır, dolayısıyla ağaçta bağlanan her script normal biçimde harcanır ve hiçbir şey yakılmaz.

BIP-341 neden NUMS noktasına rastgele bir değer eklenmesini önerir?

Anahtar yolunun kullanılamaz olduğu gerçeğini gizlemek için. BIP-341 rastgele yeni bir r tamsayısı seçilmesini ve iç anahtar olarak H artı r çarpı G kullanılmasını önerir; böylece bir kontrol bloğunda açığa çıkan değer herhangi bir anahtar gibi görünür ve noktanın bilinen bir özel anahtarı olmadığını kanıtlamak için r daha sonra açıklanabilir.

Sıradan bir Bitcoin alıcısı olarak NUMS noktalarını önemsemem gerekir mi?

Hayır, taproot sözleşmeleri kurmuyorsanız ya da bir cüzdanı tanımlayıcıdan geri yüklemiyorsanız gerekmez. Tek imzalı bir cüzdan gerçekten kontrol ettiğiniz bir iç anahtar kullanır ve NUMS yöntemi yalnızca kasa ve paylaşımlı saklama düzenekleri gibi yalnızca script ile çalışan yapılarda görünür.

Sıradaki okuma

İlgili terimler

Daha fazlası: Adresler ve anahtarlar

Bu sayfayı İngilizce okuyun