Auslesen des BIP:
https://github.com/bitcoin/bips/blob/master/bip-0142.mediawiki
Ich sehe, dass der scriptPubKey in einer Transaktion, die eine Segwit-Einlösung finanziert, derselbe ist wie ein normaler P2PKH, aber nur mit vorangestelltem OP_0
.
Sagt dieser Opcode älteren Clients, dass der Tx „jeder ausgeben kann“, was bedeutet, dass es keine Signaturdaten im Einlösungs-Tx geben wird?
Natürlich werden aktualisierte Knoten wissen, dass sie in den Zeugendaten nach der tatsächlichen scriptSig suchen müssen, um den Tx zu verifizieren. Aber wie bringt dies OP_0
alte Nodes dazu, die scriptSig auf dem Redemption Tx zu ignorieren?
Es wird einem Skript kein OP_0 vorangestellt. Es ist ein Daten-Push, der den Zeugenprogramm-Hash enthält, dem OP_0 vorangestellt ist.
Alte Knoten werten dies als ein Skript aus, das nur zwei Datenelemente auf den Stapel legt (eine 0 und einen Hash). Das kann natürlich jeder ausgeben, da die Anforderung darin besteht, als letztes Element auf dem Stapel einen Gegenstand ungleich Null zu haben.
Stecknadelkopf
Pieter Wuille
Stecknadelkopf
Pieter Wuille
Stecknadelkopf
Pieter Wuille
Simon Bronzini
Pieter Wuille
(flags & SCRIPT_VERIFY_CLEANSTACK) != 0
Bedingung eingeschlossen, die nur zur Überprüfung der Standardität und nicht des Konsenses festgelegt wird. Obwohl alte Clients solche Transaktionen nicht weiterleiten würden, sind sie innerhalb eines Blocks absolut gültig.