¿Cómo se puede leer el valor de una billetera de la cadena de bloques?

Parece que las transacciones de blockchain solo almacenan la cantidad de monedas que se mueven de una billetera a otra, pero no tienen las cantidades totales para cada billetera.

Por lo tanto, parece que si desea obtener el valor de cualquier billetera, tendría que leer cada transacción en el libro mayor desde el principio.

¿Es esto correcto o me estoy perdiendo algo?

Para tu información, mi objetivo es comprender mejor el formato de la cadena de bloques.

Respuestas (3)

Suponiendo que no confíe en nadie, debe leer todo el historial de la cadena de bloques una vez para generar su propio conjunto de transacciones no gastadas (UTXO). Así no necesitarás volver a leer el historial completo cada vez que quieras ver tu saldo. Las transacciones no gastadas son suficientes para hacerlo.

Su saldo es la suma de los valores de las transacciones no gastadas que tiene su billetera. No gastado significa aquí que no "gastó" los montos recibidos anteriormente en transacciones salientes.

Ejemplo:

  • Alice te envía 1 BTC. ahora tiene una transacción no gastada de 1 BTC. Su saldo es la suma de las transacciones no gastadas, es decir, 1 BTC
  • Entonces Bob decide enviarte 2 BTC. Ahora tiene dos transacciones no gastadas asociadas a su billetera, por un saldo total de 3 BTC.
  • Supongamos que ahora desea enviar 1 BTC a Charlie. Después de verificar que tiene al menos 1 BTC sin gastar (que es el caso), su transacción se procesará y la cantidad que gaste se eliminará de su transacción "no gastada". En ese caso, la transacción recibida de Alice ahora se marcaría como gastada y se eliminaría de su lista de transacciones no gastadas.
  • Su saldo sigue siendo la suma de las transacciones no gastadas, es decir, 2 BTC (de Bob)
Para averiguar cuáles son las salidas no gastadas, aún necesita leer el historial completo de la cadena de bloques.

Si es su 'billetera' y tiene las claves privadas, puede importarlas a una aplicación de billetera. La billetera, con algo de trabajo, puede descifrar qué direcciones son suyas, escanear las transacciones en la cadena de bloques y actualizar los saldos.

Quiero preguntar cómo se escribiría un software para hacer esto. Estoy tratando de entender el formato de la cadena de bloques.

Por lo tanto, parece que si desea obtener el valor de cualquier billetera, tendría que leer cada transacción en el libro mayor desde el principio.

Sí, básicamente. Si le enviaron 1 BTC en 2010 y nunca lo gastó, y 1 BTC en 2018 (también sin gastar), tiene 2 BTC, pero sin revisar todo el historial del libro mayor, no podría ver ambos en su billetera sin escanear todo el historial.

Sería bueno poder arrancar un nodo solo con UTXO (monedas no gastadas) en algún momento, pero para hacer esto tendrías que confiar en la persona que genera el arranque, y no podrías rastrear el verdadero historial de ninguna. de las monedas (como lo que hace IOTA cuando toman una instantánea).