Finalmente, realicé con éxito una transacción sin procesar con Python y esto es lo último, que es totalmente místico para mí.
En mi caso, aquí está la transacción de entrada y su secuencia de comandos de bloqueo es:
OP_DUP OP_HASH160 dab3cccc50d7ff2d1d2926ec85ca186e61aef105 OP_EQUALVERIFY OP_CHECKSIG
¿Por qué es necesario configurar el script de desbloqueo en el script de bloqueo de la entrada antes de firmar? Según tengo entendido, todo debería funcionar bien incluso con un script de bloqueo en blanco, porque de hecho estamos firmando solo otros parámetros. Unlocking script
y unlocking script lenght
se cambiará de todos modos, entonces, ¿cuál es la razón?
No hay una respuesta definitiva aquí, y deberá preguntarle al creador del sistema para estar seguro.
Supongo que se debió a la interacción con una función que ahora llamamos 'delegación': la capacidad de que alguien firme previamente una transacción y agregue un nuevo script de desbloqueo, delegando efectivamente el derecho de firmar a otra persona bajo ciertas circunstancias. .
Los elementos del lenguaje de secuencias de comandos que apuntan en esta dirección incluyen la existencia de OP_CODESEPARATOR y el modelo de ejecución original de ejecutar scriptSig + scriptPubKey de una sola vez, en lugar de por separado, como se hace ahora.
sergey potekhin
pieter wuille