Endlich habe ich erfolgreich eine Rohtransaktion mit Python durchgeführt, und das ist das Letzte, was mir völlig missfällt.
In meinem Fall ist hier die Eingabetransaktion und ihr Sperrskript lautet:
OP_DUP OP_HASH160 dab3cccc50d7ff2d1d2926ec85ca186e61aef105 OP_EQUALVERIFY OP_CHECKSIG
Warum muss das Entsperrskript vor dem Signieren für das Sperrskript der Eingabe eingerichtet werden ? Nach meinem Verständnis sollte das ganze Zeug auch mit leerem Sperrskript gut funktionieren, da wir tatsächlich nur andere Parameter signieren. Unlocking script
und unlocking script lenght
wird sowieso geändert, also was ist der Grund?
Hier gibt es keine endgültige Antwort, und Sie müssen den Ersteller des Systems fragen, um sicherzugehen.
Ich vermute, dass dies auf die Interaktion mit einer Funktion zurückzuführen ist, die wir jetzt „Delegation“ nennen: die Möglichkeit für jemanden, eine Transaktion vorab zu signieren und ein neues Entsperrskript hinzuzufügen – wodurch das Recht zum Signieren unter bestimmten Umständen effektiv an jemand anderen delegiert wird .
Zu den Elementen der Skriptsprache, die in diese Richtung weisen, gehören die Existenz von OP_CODESEPARATOR und das ursprüngliche Ausführungsmodell, bei dem scriptSig + scriptPubKey in einem Durchgang ausgeführt werden, anstatt wie bisher separat ausgeführt zu werden.
Sergej Potechin
Pieter Wuille