Zum Inhalt springen
buybitcoinsmart

Glossar / Adressen und Schlüssel

P2WPKH

Auch bekannt als Native SegWit-Adresse, Pay-to-Witness-Public-Key-Hash, bc1q-Adresse.

Was ist P2WPKH?
P2WPKH verschiebt die Signatur und den öffentlichen Schlüssel aus dem Input in den Witness, wo jedes Byte eine Gewichtseinheit statt vier zählt.

Spezifiziert im BIP-141.

Native SegWit-Ausgaben mit einem einzigen Schlüssel werden als bc1q-Adressen mit 42 Zeichen geschrieben. Das Sperrskript ist 22 Bytes groß, und das Ausgeben eines Inputs kostet etwa 68 vBytes gegenüber etwa 148 beim Legacy-Äquivalent. Bitcoin Core gibt dieses Format seit Version 0.20.0 standardmäßig aus, und die meisten anderen Wallets folgten.

Wie es funktioniert

Eine P2WPKH-Ausgabe trägt im üblichen Sinn keine Opcodes. Sie ist das Byte 0x00, das Witness-Version 0 markiert, gefolgt von einem Push des 20-Byte-HASH160 Ihres komprimierten öffentlichen Schlüssels: 22 Bytes, die Nodes als Witness-Programm erkennen statt als Skript auszuführen. Der Input, der sie ausgibt, lässt sein scriptSig vollständig leer und legt zwei Elemente in das Witness-Feld, die Signatur und den Schlüssel.

Die Ersparnis kommt daher, wie Blöcke gemessen werden. BIP-141 definiert das Blockgewicht als Basisgröße mal drei plus Gesamtgröße, begrenzt auf 4.000.000 Gewichtseinheiten, was bedeutet, dass Nicht-Witness-Bytes vier Einheiten kosten und Witness-Bytes eine. Ein P2WPKH-Input hat 41 Nicht-Witness-Bytes mit 164 Einheiten und etwa 108 Witness-Bytes mit 108, insgesamt 272 Einheiten. Geteilt durch vier ergibt das die 68 vBytes, die Sie tatsächlich zahlen.

Zwei Nebeneffekte sind so wichtig wie der Rabatt. BIP-143 ersetzte den Signatur-Hashing-Algorithmus, sodass die Arbeit des Signierens linear mit der Anzahl der Inputs wächst statt quadratisch, weshalb eine Hardware-Wallet eine große SegWit-Transaktion schnell bewältigt. Und weil die Transaktionskennung den Witness nicht mehr abdeckt, kann ein Dritter eine Signatur unterwegs nicht mehr ändern, um die txid zu verändern.

Wo Sie es sehen

Öffnen Sie fast jede in den letzten Jahren veröffentlichte Wallet, und der Empfangsbildschirm zeigt eine bc1q-Zeichenkette. Wallets leiten diese aus dem BIP-84-Zweig ab, Pfad m/84'/0'/0', den SLIP-132 mit dem zpub-Präfix für erweiterte Schlüssel kombiniert, sodass ein in andere Software wiederhergestelltes Backup auf denselben Adressen landet.

Inzwischen akzeptiert praktisch jedes Auszahlungsformular einer Börse bc1q. Wenn eines ablehnt, läuft dort Validierungscode, der vor 2017 geschrieben wurde, und die praktische Antwort ist, auf ein Format auszuzahlen, das es akzeptiert, und die Bitcoin selbst weiterzubewegen.

Eines sagt Ihnen bc1q nicht: worauf die Ausgabe zahlt. Eine bc1q-Adresse mit 42 Zeichen ist ein einzelner Schlüssel; eine mit 62 Zeichen ist ein Skript. Beide sind Witness-Version 0 und beide nutzen bech32, die Länge ist also der einzige sichtbare Unterschied.

P2WPKH vs. verschachteltes SegWit

P2WPKH und verschachteltes SegWit geben denselben Schlüssel aus und verpflichten sich auf denselben 20-Byte-Hash. Der Unterschied ist eine Hülle. Verschachteltes SegWit legt dieses 22-Byte-Witness-Programm in eine P2SH-Ausgabe, damit die Adresse eine Base58-Zeichenkette sein kann, die mit 3 beginnt, und die 23 zusätzlichen Nicht-Witness-Bytes im ausgebenden Input wiegen 92 Einheiten, was genau der Abstand zwischen 91 vBytes und 68 ist. Die Sicherheit ist identisch. Sie verzichten auf etwa ein Drittel der verfügbaren Gebührenersparnis zugunsten einer Adresse, die sehr alte Software akzeptiert.

Nicht zu verwechseln mit

Häufig gestellte Fragen

Ist bc1q dasselbe wie natives SegWit?

Ja bei Wallets mit einem einzigen Schlüssel. Eine bc1q-Adresse mit 42 Zeichen ist eine P2WPKH-Ausgabe, das native SegWit-Format für einen Schlüssel. Eine bc1q-Adresse mit 62 Zeichen ist ebenfalls natives SegWit, zahlt aber an ein Skript statt an einen Schlüssel.

Wie viel spart natives SegWit tatsächlich?

Etwa die Hälfte der Kosten des Ausgebens. Ein P2WPKH-Input wiegt 272 Gewichtseinheiten, das sind 68 vBytes, gegenüber etwa 148 vBytes bei einem Legacy-Input. Die Ersparnis entsteht beim Ausgeben, nicht beim Empfangen.

Weiterlesen

Verwandte Begriffe

Mehr zum Thema Adressen und Schlüssel

Diese Seite auf Englisch lesen