¿Qué sucede cuando dos transacciones se envían a la misma dirección?

Me gustaría saber las consecuencias de enviar bitcoin varias veces a la misma dirección. Digamos que envío 1 BTC desde la Dirección 1 a la Dirección 3 y luego envío 2 BTC desde la Dirección 2 a la Dirección 3 nuevamente. La cadena de bloques tendrá registradas transacciones de 1 BTC y 2 BTC. Entonces, ¿qué sucede cuando quiero enviar 2.5 NTC desde Address3 a una nueva dirección?

Respuestas (1)

Funciona bien.

Las transacciones de Bitcoin pueden tener múltiples entradas y salidas; cada entrada es un "puntero" a una salida de una transacción anterior (específicamente, consiste en una identificación de transacción y un índice de salida). Entonces crearía una nueva transacción con dos entradas:

  • la transacción A1->A3 (o más correctamente, la salida particular de esta transacción que acreditó A3)

  • la transacción A2->A3 (nuevamente, la salida particular).

No es necesario incluir cantidades en los insumos, ya que la regla es que cada insumo debe consumirse por completo. Así que ahora tenemos entradas por valor de 3 BTC en nuestra transacción.

Una salida consiste en una cantidad y una dirección de destino. (También se puede tener un script que dirija el pago de formas más elaboradas, que requiera varias firmas, etc., pero ignoremos eso por ahora). Querría tener dos salidas:

  • Una salida pagando 2.5 BTC a la dirección de destino deseada, llámela A4

  • Una salida pagando el "cambio", 0.5 BTC, a alguna dirección tuya. Podría usar A3 nuevamente, pero generalmente es mejor usar una dirección recién generada; llámalo A5.

(En realidad, en la vida real, la segunda salida probablemente sería algo así como 0,4995 BTC. Los 0,0005 BTC sobrantes no aparecerían en ninguna salida; sería una tarifa de transacción, cobrada por cualquier minero que incluya esta transacción en un bloque).

Para un usuario final, todo esto se hace bajo el capó de su software de billetera. El usuario simplemente especifica que quiere pagar 2,5 BTS a A4, y el software se encarga de identificar las transacciones apropiadas para usar como entradas y crear la salida de cambio necesaria. A veces esto confunde a las personas cuando ven que después de la transacción, el saldo en A3 ha bajado de 3 a 0, si no saben que los 0,5 BTC restantes se han ido a una nueva dirección A5 que sigue siendo suya.

Gracias de verdad Steven. Es una respuesta muy elaborada. Sin embargo sigo teniendo dudas a nivel de protocolo. Me explico, la primera transacción (A1->A3) se guarda en el bloque 444 444 de la cadena de bloques, y la segunda transacción (A2->A3) se guarda en el bloque 444 555 (111 bloques después). Cuando trato de mover el saldo, hay dos bloques diferentes con dos saldos diferentes para la misma dirección (A3). ¿Significa entonces que el protocolo suma todos los saldos no gastados para una dirección dada? (revisando entonces toda la cadena de bloques).
Por el contrario, los bloques no contienen información de saldo en absoluto, por lo que no hay inconsistencia. Hay una transacción con un monto de 2 BTC y otra transacción con un monto de 1 BTC. En ninguna parte de la cadena de bloques se agregan estos números para hacer 3 BTC; de hecho, la cadena de bloques no forma ninguna conexión entre múltiples transacciones con la misma dirección. Depende de su software de cliente realizar un seguimiento de todas las salidas no gastadas en la cadena que corresponden a sus direcciones y sumarlas para mostrar su saldo total.
Al sistema no le importa que la misma clave pueda reclamar ambas salidas no gastadas. En lo que respecta, son solo dos salidas no gastadas en un grupo de muchas, muchas salidas no gastadas.