¿Cómo se puede verificar el historial de transacciones cuando se generan nuevas direcciones?

Cuando se ejecuta una nueva transacción a través de un cliente Bitcoin, el remitente tendrá una dirección diferente a las utilizadas en transacciones anteriores. También sé que todos los nodos completos en la red de Bitcoin mantienen un libro de contabilidad, que es básicamente un historial de todas las transacciones de Bitoin que se hayan realizado para que los nodos puedan verificar la integridad del sistema y la cantidad actual de bitcoins que las personas tienen disponibles en sus billeteras. ¿Cómo es posible verificar todas las transacciones cuando constantemente se generan nuevas direcciones? Ni siquiera puede vincular una transacción actual a la anterior. ¿Se me escapa algo?

Respuestas (2)

Una cosa que te puedes estar perdiendo es "no hay saldos". La red no sabe de billeteras ni de saldos, solo sabe de salidas. Estos productos se gastan o no se gastan. Una vez que tienes este concepto es más fácil de entender.

Si su billetera dice que tiene un saldo de 1,2345 BTC, eso significa que "piensa" que hay una cantidad X de salidas no gastadas que usted "controla" y que suman 1,2345. Se basa en las claves que conoce y en las transacciones que ha visto hasta ahora. Puede haber 1 salida con un valor de 1,2345 o 100 salidas con una suma de 1,2345, o cualquier combinación.

Vea cualquier transacción en blockchain.info y verá las entradas en el lado izquierdo. Estas entradas son salidas previamente no gastadas.

https://blockchain.info/tx/ad646bbac1e44e4db199420e12fec2966903a0e078da99fab97b3156455f252a

En el lado derecho están las nuevas salidas no gastadas. Una vez que se usa una salida, ahora se gasta y no tiene saldo. Dado que los resultados que está utilizando probablemente no se suman exactamente a lo que desea, existe un concepto de cambio.

https://en.bitcoin.it/wiki/Cambiar

Entonces, ¿qué pasa con las nuevas direcciones? La red no necesita saber nada acerca de las nuevas direcciones. Cuando un nodo ve una nueva transacción, solo tiene que verificar que las salidas que se están gastando no se hayan gastado ya, es decir, que no hayan sido utilizadas por ninguna otra transacción (junto con otras verificaciones como firma, montos, etc.)

Entonces, todas las transacciones están vinculadas a las anteriores de esa manera.

Muy clara la explicación, entendido, muchas gracias :D

Cuando se ejecuta una nueva transacción a través de un cliente Bitcoin, el remitente tendrá una dirección diferente a las utilizadas en transacciones anteriores.

Eso es incorrecto. Solo puedes enviar dinero desde la dirección donde lo recibiste.

Ejemplo:
Alice envía 1 BTC a Bob's address A. Ahora, cuando Bob envíe dinero a Carol, su software de cliente firmará la transacción con la clave privada correspondiente a address A. El resultado de la transacción no gastada address Ase utilizará y habrá un nuevo saldo disponible en la dirección de Carol.