¿Cómo se reenvían los UTXO a otras direcciones?

Esta es una pregunta bastante general y conceptual. Siento que todavía no entiendo completamente la dinámica de transacciones de blockchain.

Digamos que tenemos transacciones A, B y C en Blockchain:

  • A transfirió previamente 10 BTC a B. Entonces B tiene una salida de transacción no gastada (que puede gastar) a la que hace referencia la dirección de A.
  • Ahora, B quiere pagar 5 BTC a C y lo hace usando el UTXO que tiene de la transacción anterior de A y enrutándolo a C.
  • Entonces, B reenvía el UTXO con la dirección de A a C y también se da cambio de 5 BTC.

Entonces, ahora, ¿no se ve así la lista de transacciones?

Entradas:

  • dirección_A 10BTC

Salidas:

  • dirección_C 5BTC
  • dirección_B 5BTC

Ahora, para mí, esto parece correcto desde el punto de vista de B, pero en realidad parece que A ha transferido dinero a C y B, en lugar de que B transfiera dinero a C. Supongo que mi comprensión es incorrecta, porque no puede funcionar así. Entonces, ¿dónde está mi error?

Desde la vista de C, ¿no debería verse así?

Entradas:

  • dirección_B 10BTC

Salidas:

  • dirección_C 5BTC
  • dirección_B 5BTC

De lo contrario, también C tendría nuevamente la salida no gastada de A y esta salida de A se reenviaría una y otra vez.

No me juzgues por mi mala comprensión, por favor: D, si hay alguna buena lectura que puedas recomendar, sería genial.

¡Gracias!

Mejor, JC

Respuestas (3)

Lo primero que se debe corregir es que los UTXO no están referenciados por dirección, sino por el txid que los creó. Las direcciones son puramente una abstracción humana sobre las condiciones de bloqueo para ayudar a pensar en la propiedad.

Entonces, en su ejemplo, lo que sucede es que en la transacción inicial tx0 creada por A, a B se le acreditaron 10 BTC. Suponga que la transacción solo tuvo una salida. Eso significa que ahora el estado de la UTXO es:

  • tx0:0 (10 BTC, gastable por B)

Cuando B ahora quiere pagar a C, crea una transacción tx1 con entrada (tx0:0, (firma de B)) que consume el UTXO mencionado anteriormente y tiene salidas (tx1:0, 5 BTC, (prescindible por C)) y ((tx1:1, 5 BTC, (prescindible por B)). Tenga en cuenta que tx1:0 y tx1:1 no se almacenan realmente en la transacción aquí; están implícitos como la salida 0 y 1 de tx1.

El estado del conjunto UTXO es ahora:

  • tx1:0 (5 BTC, gastable por C)
  • tx1:1 (5 BTC, gastable por B)

Los UTXO se identifican únicamente por su punto de salida . Un punto de salida consiste en la identificación de la transacción que creó la salida y la posición en la lista de salida. Dado que los identificadores de transacción son el hash del cuerpo completo de la transacción, son resistentes a colisiones y, dado que cada posición en la lista de salida solo puede ocurrir una vez, se puede esperar que los puntos de salida sean únicos.

Por ejemplo, la segunda salida de esta transacción aleatoria que encontré en un explorador de bloques sería c0352a…21bf50:1. (La primera salida es c0352a…21bf50:0.)

Ahora, cuando quiera gastar un UTXO, haría referencia a cuál exactamente en una entrada por su punto de salida. El UTXO no se reenvía, sino que una transacción ordena a la red de Bitcoin que destruya/invalide/consuma todos los UTXO enumerados en las entradas y cree nuevas salidas de transacciones como se especifica en la lista de salida.

EDITAR: Escribí esto hace horas, pero aparentemente olvidé presionar el botón de publicación. Ahora hay un par de excelentes respuestas, pero aún así publicaré esto de todos modos.

A transfirió previamente 10 BTC a B. Entonces B tiene una salida de transacción no gastada (que puede gastar) a la que hace referencia la dirección de A.

Los UTXO no se 'reenvían a una dirección', existen hasta que se usan por completo como entradas en una nueva transacción, y esa transacción puede crear nuevos UTXO como salidas. Cada transacción destruye por completo sus entradas y crea nuevas salidas (nuevos UTXO). Tenga en cuenta que incluso dentro de una transacción, puede no estar claro qué entradas se relacionan con qué salidas.

Entonces, cuando A gasta un UTXO para enviar monedas a B, creará un UTXO completamente nuevo (que B posee) para hacerlo. Etc.