Ich durchlaufe rohe Transaktionsdaten und möchte in der Lage sein, Adressen zu sammeln (wo möglich).
Bisher habe ich dieses Diagramm erstellt, um zu verstehen, wann es möglich ist, Adressen aus den scriptPubKey
einzelnen Ausgaben herauszufinden :
Wie Sie jedoch sehen können, bin ich mir nicht sicher, wie ich eine Adresse aus einem P2WSH herausarbeiten kann .
Ist es möglich, Adressen von scriptPubKey
allein zu bekommen, oder kann ich sie nur bekommen, wenn der Zeuge enthüllt wird, wenn die Ausgabe ausgegeben wurde? (wie hier gezeigt):
witness: 0 <signature1> <1 <pubkey1> <pubkey2> 2 CHECKMULTISIG>
scriptSig: (empty)
scriptPubKey: 0 <32-byte-hash>
(0x0020{32-byte-hash})
BEARBEITEN: Bitte lassen Sie mich auch wissen, wenn Sie feststellen, dass eines meiner Musterabgleiche in diesem Diagramm falsch ist (oder wenn mir Muster fehlen, mit denen ich mehr Adressen herausfinden kann).
Derzeit gibt es kein natives Adressformat für Witness-Ausgaben, daher lautet die Antwort für P2WPKH und P2WSH einfach: Sie können und sollten nicht. Wenn Sie den 20-Byte-Hash in einer P2WPKH-Ausgabe in 1xxxxxx umwandeln und das Ergebnis anzeigen, denken die Leute möglicherweise, dass dies eine Adresse ist, an die mehr Geld gesendet werden kann. Dies würde jedoch zu einer P2PKH-Ausgabe führen, die eine reine Segwit-Wallet möglicherweise nicht versteht.
Die meisten Segwit-Ausgaben verwenden jedoch zunächst den P2SH-Wrapper (was zu P2SH-P2WPKH- oder P2SH-P2WSH-Programmen führt), die einfach wie P2SH-Adressen aussehen (und sich so verhalten).
Ein neues natives Segwit-Adressformat wird in https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki vorgeschlagen . Dies kann jedoch nur verwendet werden, wenn sowohl die Empfänger- als auch die Sendersoftware dies unterstützen.
Nick Odell
inersha
base58('00' + hash160 + checksum)