¿Calcular cuántos bitcoins tengo lleva más tiempo a medida que pasa el tiempo?

He leído que la cadena de bloques es una serie de transacciones que registran que una persona entrega bitcoins a otra. Corríjame si esta suposición es incorrecta, ya que es la base de mi pregunta. Entonces, con el tiempo, ¿no lleva cada vez más tiempo averiguar si puede aceptar Bitcoin de alguien porque tendrá que pasar por cada transacción en el historial de la cadena de bloques para validar que la persona que le da Bitcoin realmente tiene? ese Bitcoin en primer lugar?

Quiere decir más adelante cuando hay mil millones de bloques en la cadena, ¿llevará mucho tiempo verificar las cantidades?
Claro, o incluso cuál es la diferencia incremental de un año al siguiente.

Respuestas (2)

Con una implementación ingenua sí, pero en la práctica no, no es un problema.

Esto se debe a que cualquier desarrollador que sepa lo que está haciendo es lo suficientemente inteligente como para crear una base de datos que, como mínimo, registre cada transacción (o su posición en el disco) y su estado de verificación. Entonces, cuando recibe una nueva transacción, en lugar de tener que retroceder a través del historial, solo necesita mirar hacia atrás a la transacción anterior a la que se hace referencia. Como parte de la validación de una transacción, verifica si la transacción anterior fue válida. Entonces, si una transacción está marcada como válida en su base de datos, puede estar seguro de que las transacciones que la precedieron también son válidas. Por lo tanto, no hay necesidad de revisar el historial y volver a validar esas transacciones.

Dado que en última instancia se reduce a una simple búsqueda en la base de datos, no se vuelve más difícil validar nuevas transacciones.

El tiempo de cálculo degenerará muy lentamente a medida que transcurra el tiempo, ya que los mecanismos utilizados son muy eficientes. Considere un nodo de verificación de pago simplificado (SPV) que está interesado en los pagos entrantes a una dirección en su billetera. El nodo SPV establecerá un filtro de floración en sus conexiones con los pares para limitar las transacciones recibidas solo a aquellas que contengan direcciones de interés. Cuando un compañero ve una transacción que coincide con el filtro de floración, enviará el bloque mediante un mensaje merkleblock. El mensaje de merkleblock contiene el encabezado del bloque, así como una ruta de merkle que vincula la transacción de interés con la raíz de merkle en el bloque. El nodo SPV puede usar esta ruta merkle para conectar la transacción en el bloque y verificar que la transacción esté incluida en el bloque. El nodo SPV también usa el encabezado del bloque para vincular el bloque con el resto de la cadena de bloques. La combinación de estos dos vínculos, entre la transacción y el bloque y entre el bloque y la cadena de bloques, demuestra que la transacción se registra en la cadena de bloques. En general, el nodo SPV habrá recibido menos de un kilobyte de datos para el encabezado del bloque y la ruta Merkle, lo cual es muy eficiente y el tiempo de cálculo degenerará muy lentamente a medida que se agreguen más bloques.

Si te estoy leyendo bien, estás diciendo que solo puedes ver ciertas transacciones para averiguar cuánto Bitcoin hay en una billetera. Pero no veo cómo esto puede ser cierto. Por cada transacción que entregue a la billetera, por ejemplo, ¿no tiene que verificar que esas personas tengan los fondos necesarios en su billetera, lo que provocaría un escaneo de todas esas billeteras, etc.? Entonces, ¿no está esencialmente escaneando todas las transacciones en la cadena de bloques cada vez?
El bloque de construcción fundamental de una transacción de bitcoin es una salida de transacción. Los resultados de las transacciones son fragmentos indivisibles de moneda bitcoin, registrados en la cadena de bloques y reconocidos como válidos por toda la red. Los nodos completos de Bitcoin rastrean todas las salidas disponibles y gastables conocidas como transacciones no gastadas o UTXO. Cuando la billetera de un usuario recibe bitcoin, significa que la billetera ha detectado UTXO que se puede gastar con una de las claves controladas por la billetera.
El saldo de bitcoin de un usuario es la suma de todos los UTXO que puede gastar la billetera de un usuario, que puede estar disperso entre cientos de transacciones y bloques. La salida de la transacción consiste en la cantidad en Satoshis y un rompecabezas criptográfico que determina las condiciones requeridas para gastar la salida. Este rompecabezas también se conoce como secuencia de comandos de bloqueo. Esto significa que todas las condiciones requeridas para demostrar la propiedad están contenidas en el script de transacción y la billetera no tiene que escanear la cadena de bloques para verificar si la persona que envió el bitcoin realmente tiene los fondos.