Gibt es ein Adressformat für P2WPKH oder P2WSH?

Gibt es ein Adressformat für P2WPKH oder P2WSH? Wenn P2WPKH das gleiche Adressformat wie P2PKH verwendet, woher weiß eine Brieftasche, welches sie verwenden soll?

Antworten (2)

Gibt es ein Adressformat für P2WPKH oder P2WSH?

Nein. BIP142 hätte ein Adressformat für diese Ausgabeskripte bereitgestellt, aber es befindet sich im Status „verzögert“ und wird voraussichtlich so bleiben. Wallet-Entwickler werden ermutigt , ein neues Adressformat auf der bitcoin-dev-Mailingliste zu diskutieren, und meines Wissens wird bald ein Vorschlag kommen.

In der Zwischenzeit unterstützt BIP70 das Bezahlen an beliebige Ausgänge, sodass es für die nativen Segwit-Ausgänge verwendet werden kann, ebenso wie jede andere Software, die über ihr eigenes Protokoll kommuniziert (z. B. Zahlungskanalsoftware, wie sie für verschiedene Lightning Network-Implementierungen verwendet wird).

Wenn P2WPKH das gleiche Adressformat wie P2PKH verwendet, woher weiß eine Brieftasche, welches sie verwenden soll?

Obwohl der neue Adressvorschlag wahrscheinlich nicht base58check wie die aktuellen Adressformate für P2PKH und P2SH verwenden wird, erklärt der jetzt zurückgestellte Vorschlag in BIP142, wie dies einfach durch Ändern des ersten Bytes der Adresse (das eine Versionsnummer ist) erreicht werden könnte:

„Für die P2WPKH-Adresse ist die Adressversion 6 (0x06) für eine Hauptnetzwerkadresse oder 3 (0x03) für eine Testnetzadresse.

"Für die P2WSH-Adresse ist die Adressversion 10 (0x0A) für eine Hauptnetzwerkadresse oder 40 (0x28) für eine Testnetzadresse."

Ja. Das zum Codieren von nativen Version 0 von SegWit scriptPubKeys ( P2WPKHund P2WSH) verwendete Format ist bech32, definiert durch bip-0173.

Leider wurde zum Zeitpunkt des Schreibens eine Schwachstelle bezüglich der Verwendung dieser Codierung für die vorgeschlagene Version 1 von SegWits scriptPubKey( Taproot ) entdeckt.
Es gibt laufende Diskussionen darüber, wie diese Codierung für SegWit-Adressen der Version 1 und höher geändert werden kann.


Wenn P2WPKH das gleiche Adressformat wie P2PKH verwendet, woher weiß eine Brieftasche, welches sie verwenden soll?

SegWit scriptPubKeys, wie von definiert bip-0141, sind anders aufgebaut als Legacy - P2PKH scriptPubKeys.

Basierend auf dem Skript weiß ein Wallet, welche Kodierung zu verwenden ist.
Um explizit zu sein:

  • Wenn das scriptPubKeyvon der Form istDUP HASH160 <pk hash> EQUALVERIFY CHECKSIG
    • Verwenden Sie die base58-Check-Codierung
  • Sonst, wenn das scriptPubKeyvon der Form ist<1-byte push> <2-to-40-bytes push>
    • Bech32-Codierung verwenden

Es ist wahrscheinlich, dass der obigen Logik basierend auf der neuen Codierung, die für die Version >= 1SegWit scriptPubKeys ausgewählt wird, schließlich ein neuer Zweig hinzugefügt wird.