Luchando para transmitir con éxito una transacción p2pkh

He estado experimentando con el envío de transacciones de bitcoin con python durante la última semana. Pude enviar con éxito p2wpkh->TODOS los tipos de direcciones, p2sh-p2wpkh->TODOS los tipos de direcciones.

Con lo que estoy luchando es con el envío de una transacción p2pkh heredada. sigo recibiendo:

SIGNATURE MUST BE ZERO FOR FAILED CHECK(MULTI)SIG OPERATION

cuando trato de transmitir la transacción firmada usando https://testnet.smartbit.com.au/txs/pushtx

Me parece que es un error de firma. Pero no puedo entender por qué puedo generar buenas firmas para otros tipos de pago pero luego malas firmas para p2pkh.

Mi rawtx:

01000000 01 4f8fe5092e16ad3da3327c36a6c5209c9aede34fc68615cfdf3049945e91ca61 00000000 00 ffffffff 02 4c4f000000000000 1976a9143f7ff5e4d9b36cbce77199043d5cf51b5fb4e8d188ac 546f4b0000000000 1976a9143f7ff5e4d9b36cbce77199043d5cf51b5fb4e8d188ac 00000000

Mi TX firmado:

01000000014f8fe5092e16ad3da3327c36a6c5209c9aede34fc68615cfdf3049945e91ca61000000006a47304402205881bb01ff20100233d6c1284eb6fe1857fb25a8cee52f5fe48ef8bbf61e42fe02201b00187031f299283b60b214d801c5ca0db8342a8e68c8020caf96e9a064b471012102a7b51771f972f4d2de85129886415af3e13efe943c12f149ab7c43c318f45ae9ffffffff024c4f0000000000001976a9143f7ff5e4d9b36cbce77199043d5cf51b5fb4e8d188ac546f4b00000000001976a9143f7ff5e4d9b36cbce77199043d5cf51b5fb4e8d188ac00000000

Tx firmado analizado con mi analizador de python:

Segwit: False
txn version: 1
Flag: 00

------------------------------------------------------------
Inputs: 1
------------------------------------------------------------

(1)
Previous txn hash: 61ca915e944930dfcf1586c64fe3ed9a9c20c5a6367c32a33dad162e09e58f4f
Index: 0
sigScript: 47304402205881bb01ff20100233d6c1284eb6fe1857fb25a8cee52f5fe48ef8bbf61e42fe02201b00187031f299283b60b214d801c5ca0db8342a8e68c8020caf96e9a064b471012102a7b51771f972f4d2de85129886415af3e13efe943c12f149ab7c43c318f45ae9
Sequence: ffffffff

------------------------------------------------------------
Outputs: 2
------------------------------------------------------------

(1)
Value (satoshis): 20300
pubKeyScript: 76a9143f7ff5e4d9b36cbce77199043d5cf51b5fb4e8d188ac

(2)
Value (satoshis): 4943700
pubKeyScript: 76a9143f7ff5e4d9b36cbce77199043d5cf51b5fb4e8d188ac

--------------------

Locktime: 0

¿Puedo usar claves públicas comprimidas en transacciones p2pkh normales o tiene que ser normal sin comprimir?

En mi secuencia de comandos, construyo la preImagen de la misma manera que mis otras entradas/salidas de segwit, pero obviamente no uso campos de testigos de marca y marcador. También seguí otra publicación aquí intentando firmar solo una entrada y obtuve otros errores diferentes al que se encuentra en la parte superior de esta publicación.

¿En qué se diferencia el proceso de firma de segwit del heredado?

Escribí algo similar en Python que podría ayudarte. Consulte github.com/mcdallas/cryptotools/blob/master/btctools/… líneas 472 - 532 para ver la diferencia en la preimagen entre legado y segwit.
Ya lo he resuelto, pero miré en tu biblioteca y se ve bien.

Respuestas (1)

No importa.

Combiné las dos respuestas de estas publicaciones y logré que algo funcionara:

Se requiere un ejemplo de canje de una transacción sin procesar paso a paso

https://bitcoin.stackexchange.com/a/41226/89247

Sí. Puede usar claves públicas comprimidas con p2pkh. No hay restricciones.