¿Cómo se firma la salida de una transacción?

En una transacción Tx, el puntero hash de la transacción anterior (por ejemplo TxE) que sirve como entrada Txdebe estar firmado por el remitente Sde Tx. Esto es para mostrar que Sfue el destinatario de TxE. Queda por demostrar que Sestá de acuerdo con la salida de Tx. ¿En qué etapa Sfirma la salida de Tx? Supongo que lo hace. De lo contrario, ¿qué evitaría que un atacante mire Txjusto después de Stransmitirlo y modifique la salida (para que él sea el destinatario) antes de retransmitirlo?

En otras palabras: el scriptSig prueba que el remitente posee la entrada de Tx. ¿Qué prueba que el remitente aprueba la salida del Tx?

rgds

PD: la transacción que estoy considerando atm es:

ingrese la descripción de la imagen aquí

Respuestas (1)

La firma también firma la secuencia de comandos y la cantidad de Pubkey (que en conjunto representarían lo que usted hace referencia como "salida de Tx").

Citando la sección Transacción de la Guía del desarrollador :

La firma secp256k1 de Bob no solo prueba que Bob controla su clave privada; también hace que las partes de su transacción que no son de firma sean a prueba de manipulaciones para que Bob pueda transmitirlas de manera segura a través de la red de igual a igual.

ingrese la descripción de la imagen aquí
Fuente de la imagen: Guía del desarrollador: Transacciones

Como se ilustra en la figura anterior, los datos que firma Bob incluyen el txid y el índice de salida de la transacción anterior, la secuencia de comandos de clave de publicación de la salida anterior, la secuencia de comandos de clave de publicación que crea Bob que permitirá que el próximo destinatario gaste la salida de esta transacción y la cantidad de satoshis para gastar al siguiente destinatario. En esencia, toda la transacción está firmada, excepto los scripts de firma, que contienen las claves públicas completas y las firmas secp256k1.

Notaría que esto es cierto para SIGHASH_ALL, pero no para los demás.
Muchísimas gracias; pero no estoy seguro de entender completamente. De hecho, vi esta imagen antes, pero no estoy seguro de cuál es su mensaje. ¿Alguien sería tan amable de explicarlo una vez más por favor?
@Murch Teniendo en cuenta la imagen que publiqué originalmente, ¿quiere decir que cada uno de los scriptSig en Tx no solo certifica la propiedad de las salidas de TxE, sino que también confirma la salida de Tx?
Sí, por lo general, cada entrada contiene firmas que cubren tanto las salidas de la transacción anterior que se está gastando, como las salidas a las que las envía la transacción que contiene las firmas.
En otras palabras: no es solo firmar para probar la propiedad, sino que prueba el acuerdo con la transacción.
@Pieter Wuille. Gracias por esta explicación. Disculpas por ser quisquilloso, pero: ¿qué firma cubre qué? ¿O es que una misma firma cubre salidas y entradas?
Cada firma cubre tanto las entradas como las salidas. El diagrama y la Guía del desarrollador vinculada lo explican con mucho más detalle de lo que puedo poner en un comentario.
La figura no tiene sentido porque sugiere que los datos firmados cubren todo de izquierda a derecha, incluida la clave privada. Además, el enlace debe actualizarse.