Glossar / Adressen und Schlüssel
Nested SegWit
Auch bekannt als Wrapped SegWit, P2SH-P2WPKH, 3-Adresse, verschachteltes SegWit.
- Was ist Nested SegWit?
- Nested SegWit verpackt einen nativen SegWit-Schlüssel-Hash in eine P2SH-Adresse und erkauft so Kompatibilität mit Software, die bc1-Zeichenketten nicht lesen konnte, gegen etwa 23 zusätzliche vBytes pro Eingang.
Spezifiziert im BIP-49.
Im Jahr 2017 konnte kaum eine Börse eine bech32-Adresse auslesen, deshalb erlaubte BIP-141, dass ein Witness-Programm innerhalb eines gewöhnlichen Pay-to-Script-Hash-Outputs liegt. Das Ergebnis sieht für einen Absender wie jede andere 3-Adresse aus und kostet beim Ausgeben etwa 91 vBytes, gegenüber 148 bei einem Legacy-Eingang und 68 bei einem einfachen bc1q-Eingang. Es war eine Brücke, und der Übergang ist seit Jahren offen.
Wie es funktioniert
Ein Nested-SegWit-Output ist ein unauffälliger P2SH-Output: OP_HASH160, ein 20-Byte-Hash, OP_EQUAL. Was hinter dem Hash liegt, ist ungewöhnlich. Das Redeem-Script ist eigentlich gar kein Script, sondern das 22-Byte-Witness-Programm selbst, das Versionsbyte 0x00 gefolgt von einem Push des 20-Byte-HASH160 Ihres komprimierten öffentlichen Schlüssels.
Das Ausgeben nutzt daher beide Welten. Der scriptSig enthält genau einen Eintrag, dieses 22-Byte-Programm, das die P2SH-Prüfung erfüllt. Signatur und öffentlicher Schlüssel gehen in den Witness, wo sie den Rabatt erhalten. Rechnet man den Push-Opcode hinzu, steuert der scriptSig 23 Nicht-Witness-Bytes bei, die 92 Einheiten wiegen, und 92 geteilt durch vier ergibt die gesamte Strafe von 23 vBytes gegenüber nativem SegWit.
Wallets halten diese Adressen in ihrem eigenen Zweig. BIP-49 weist den Ableitungspfad m/49'/0'/0' zu, und SLIP-132 gab diesem Zweig das erweiterte Schlüsselpräfix ypub, weshalb die Wiederherstellung eines Backups 3-Adressen statt bc1q-Adressen erzeugt. Ein falsches Präfix bei einer Wiederherstellung zeigt eine leere Wallet, obwohl die Seed-Phrase korrekt ist.
Wo sie auftritt
Jeder Bildschirm für Ein- oder Auszahlung, der "SegWit" und "Native SegWit" als getrennte Optionen anbietet, bietet in dieser Reihenfolge Nested und Native an. Die Einrichtungsbildschirme von Ledger- und Trezor-Konten tun dasselbe. Börsen, die SegWit früh übernommen haben, standardisierten auf die Nested-Form, und viele haben nie gewechselt, sodass ein großer Teil der verwahrenden Cold Storage noch hinter 3-Adressen liegt.
Der Wechsel zu nativem SegWit ist eine On-Chain-Transaktion, keine Einstellungsänderung, weil die beiden Formate aus unterschiedlichen Zweigen derselben Seed-Phrase stammen. Tun Sie das, wenn die Gebühren niedrig sind, senden Sie zuerst einen kleinen Testbetrag und prüfen Sie danach, ob Ihre Wallet das Konto m/84'/0'/0' anzeigt. Es gibt keinen Sicherheitsunterschied zwischen den beiden, also ist nichts dringend. Es ist eine reine Abwägung zwischen Gebühren und Kompatibilität, und Kompatibilität ist nicht mehr knapp.
Nested SegWit vs. P2SH-Adresse
Nested SegWit ist eine Art von P2SH-Adresse, und on-chain sind die beiden bis zu einem Ausgeben nicht zu unterscheiden. Eine Zeichenkette, die mit 3 beginnt, kann auf ein 22-Byte-Witness-Programm, auf ein 2-von-3-Multisig-Redeem-Script oder auf eine zeitgebundene Wiederherstellungsklausel verweisen, und der nicht ausgegebene Output verrät nichts. Diese Undurchsichtigkeit galt einst als Datenschutzvorteil. In der Praxis bedeutet sie heute, dass ein Block-Explorer Ihnen nicht sagen kann, was Sie halten, und dass ein Absender Sie nicht davor warnen kann, dass das Leeren der Adresse mehr kostet als bei einer bc1q-Adresse.