Cómo crear una transacción válida sin firmar

¿Cómo puedo crear una transacción sin firmar válida que pueda transmitirse y extraerse utilizando estas direcciones?

¿Podría alguien crear la transacción sin procesar y mostrármela?

dirección del remitente: 1NsRUK6vmPbtQa8sSjeXVxeYQiGCGNi6W3

dirección del destinatario: 37KSBUjixDYxmgmTdepb79aso69vPZrLu2

Nota: Estas son mis direcciones y sus saldos son 0.

Respuestas (1)

Así no es como funciona Bitcoin.

Bitcoin no utiliza un sistema de cuentas ni utiliza direcciones a nivel de protocolo. Gastar Bitcoin significa que está gastando de una salida de transacción. Si no hay una salida de transacción disponible para gastar, entonces no puede crear una transacción. Entonces, con direcciones con saldo 0, no se puede crear tal transacción válida.

A continuación, la "dirección de envío" que especificó requiere una firma digital para gastar las salidas asociadas a ella. Esto se debe a que ese tipo de dirección le dice a las billeteras que se debe crear una salida que tenga la forma OP_DUP OP_HASH160 <hash> OP_EQUALVERIFY OP_CHECKSIGen que la dirección codifica el <hash>y el tipo de dirección especifica los otros códigos de operación. Por lo tanto, no puede gastar salidas asociadas con esta dirección sin poder proporcionar una firma digital válida que corresponda a la clave pública a la que se aplica el hash <hash>.

Lo que podría hacer es tener una salida de transacción cuyo script sea algo así como OP_DUP OP_HASH160 <hash> OP_EQUAL. Esto no requiere una firma, pero dicha secuencia de comandos, aunque se puede construir con la dirección proporcionada, no corresponde a esa dirección porque no tiene la construcción que especifica el tipo de dirección.

Por lo tanto, es imposible crear una transacción no firmada tan válida porque 1) no hay salida para gastar y 2) la dirección requiere una firma para gastar de las salidas asociadas con ella.


Una escritura sin firma como la que describí no corresponde a ninguna dirección; no hay ningún tipo de dirección que lo especifique.

El script de salida se vería así:

76a914ef0ffa5f1cc59bed17cf4e35ae9cbf396cddf17088

Un gasto de transacción de ese script se vería así:

0200000001deadbeef000000000000000000000000deadbeef00000000000000000000000000000000222103061e97605659c9dc77ed437cbc345ec41633888ae3b2c75fdd532db789cc476fffffffff01000000000000000016a914ef0ffa5f1cc59bed17cf4e35ae9cbf396cddf1708700000000
Entonces, ¿podría proporcionar un ejemplo del script de salida de la transacción y el tipo de dirección, así como una transacción como esa en hexadecimal, por favor?
¿Cómo qué? ¿El script de ejemplo que proporcioné que no requiere firma?
sí, así como un ejemplo de cómo se vería la transacción en hexadecimal y un ejemplo del tipo de dirección,
Actualicé la respuesta con un ejemplo. Tenga en cuenta que el ejemplo en realidad no gasta de ninguna salida existente.
Pero si creó una transacción p2sh con scriptsig como OP_TRUE usando un script de salida como ese, ¿no sería posible?
Sí, sería posible, pero también completamente ajeno a las direcciones que proporcionó.
Entonces, ¿qué sucedería si cambia los códigos de operación de un utxo para que se gaste sin una firma?
No puede cambiar los códigos de operación de un UTXO existente. Cambiar un UTXO requiere cambiar la transacción que contiene el UTXO y volver a minar el bloque que contiene esa transacción Y todos los bloques que le siguen. Es imposible que alguien haga eso si no tiene las claves privadas involucradas en la transacción que creó la UTXO también.