Sözlük / Adresler ve anahtarlar
P2WPKH
Diğer adları: Yerel SegWit adresi, Pay-to-Witness-Public-Key-Hash, bc1q adresi.
- P2WPKH nedir?
- P2WPKH, imzayı ve genel anahtarı girdiden çıkarıp her baytın dört yerine bir ağırlık birimi sayıldığı witness alanına taşır.
Tanımlandığı belge: BIP-141.
Yerel SegWit tek anahtarlı çıktılar 42 karakterli bc1q adresleri olarak yazılır. Kilitleme betiği 22 bayttır ve bir girdiyi harcamak, eski (legacy) karşılığındaki yaklaşık 148 vbyte'a karşılık yaklaşık 68 vbyte tutar. Bitcoin Core bu biçimi 0.20.0 sürümünden beri varsayılan olarak sunmaktadır ve diğer cüzdanların çoğu da bunu izlemiştir.
Nasıl çalışır
P2WPKH çıktısı, alışılmış anlamda herhangi bir opcode içermez. Bu çıktı, witness sürümünü 0 olarak işaretleyen 0x00 baytı ile bunu izleyen, sıkıştırılmış genel anahtarınızın 20 baytlık HASH160 değerinin eklenmesinden oluşur: betik olarak yürütülmek yerine düğümler tarafından witness programı olarak tanınan 22 bayt. Bunu harcayan girdi, scriptSig alanını tamamen boş bırakır ve witness alanına iki öğe koyar: imza ve anahtar.
Tasarruf, blokların nasıl ölçüldüğünden gelir. BIP-141 blok ağırlığını, temel boyutun üçle çarpımı artı toplam boyut olarak tanımlar ve bunu 4.000.000 ağırlık birimiyle sınırlar; bu da witness dışı baytların her birinin dört birim, witness baytlarının ise bir birim tutması anlamına gelir. Bir P2WPKH girdisinin 41 witness dışı baytı 164 birim, yaklaşık 108 witness baytı ise 108 birim ağırlığındadır; toplam 272 birim. Dörde bölünce gerçekte ödediğiniz 68 vbyte'ı elde edersiniz.
İki ikincil etki, indirim kadar önemlidir. BIP-143 imza hash algoritmasını değiştirdi; böylece imzalama işi girdi sayısıyla karesel değil doğrusal olarak artar, bir donanım cüzdanının büyük bir SegWit işlemini hızla tamamlamasının nedeni budur. Ve işlem kimliği artık witness'ı kapsamadığından, bir üçüncü taraf txid'yi değiştirmek için aktarımdaki bir imzayı artık değiştiremez.
Nerede görülür
Son birkaç yılda çıkan neredeyse her cüzdanı açın; alma ekranında bir bc1q dizisi görürsünüz. Cüzdanlar bunları BIP-84 dalından, m/84'/0'/0' yolundan türetir ve SLIP-132 bunu zpub genişletilmiş anahtar önekiyle eşleştirir, böylece başka bir yazılıma geri yüklenen bir yedek aynı adreslere ulaşır.
Bu noktada esasen her borsa para çekme formu bc1q kabul eder. Biri reddediyorsa, 2017 öncesinde yazılmış doğrulama kodunu çalıştırıyordur ve pratik yanıt, kabul ettiği bir biçime para çekmek ve bitcoinleri kendiniz ileriye taşımaktır.
bc1q'nun size söylemediği bir şey, çıktının neye ödediğidir. 42 karakterli bir bc1q adresi tek bir anahtardır; 62 karakterli olan ise bir betiktir. İkisi de witness sürüm 0 ve ikisi de bech32 kullanır, dolayısıyla görünen tek fark uzunluktur.
P2WPKH vs iç içe SegWit
P2WPKH ve iç içe SegWit aynı anahtarı harcar ve aynı 20 baytlık hash'e bağlanır. Fark bir sarmalayıcıdır. İç içe SegWit, o 22 baytlık witness programını bir P2SH çıktısının içine koyar; böylece adres 3 ile başlayan bir Base58 dizisi olabilir ve harcayan girdideki 23 ek witness dışı bayt 92 birim ağırlığındadır; bu da tam olarak 91 vbyte ile 68 arasındaki farktır. Güvenlik aynıdır. Çok eski yazılımın kabul edeceği bir adres karşılığında mevcut ücret tasarrufunun yaklaşık üçte birinden vazgeçersiniz.