¿Cómo comprueban los mineros que tengo suficientes Bitcoins? No puedo creer que caminarán a través de la enorme y siempre creciente cadena de bloques establecida desde 2009 para verificar cada transacción que hice para calcular mi saldo.
Bitcoin usa una cosa llamada Conjunto de salida de transacciones no gastadas (conjunto UTXO), no cuentas o saldos. Una transacción consumirá UTXO como entradas y creará UTXO como salidas. Cuando un nodo recibe un bloque (ya sea durante la sincronización inicial o la retransmisión normal), actualizará su propia base de datos interna que contiene el conjunto UTXO. En esta actualización, elimina los UTXO que se han gastado y agrega los UTXO que se crearon. Debido a que hace esto para cada bloque, si un nodo está completamente sincronizado, debe saber cuáles son todos los UTXO y tenerlos almacenados en la base de datos.
Cuando un nodo recibe su transacción, buscará los UTXO que gasta su transacción en su base de datos. Si no existen, entonces descarta su transacción como inválida. No necesita atravesar la cadena de bloques; los datos que necesita se extrajeron y se colocaron en otro lugar donde se pueden buscar fácilmente.
Una vez que comprende cómo funcionan las bases de datos, es más fácil de creer. Además, solo se necesitan los UTXO (es decir, las salidas de transacciones no gastadas) para calcular su saldo.
Los clientes de Bitcoin cargan los datos de la cadena de bloques en una base de datos indexada para permitir verificaciones muy rápidas de los datos.
Más detalles aquí: https://en.bitcoin.it/wiki/Bitcoin_Core_0.11_(ch_2):_Data_Storage
rny