Cuando necesitas validar una transacción está en un bloque

Entonces, después de llegar aquí , olvidé por qué incluso desea validar una transacción en un bloque y cómo funciona exactamente. Me pregunto si uno podría explicar

  1. En qué situación desea validar una transacción está en un bloque.
  2. Cómo encuentra el bloque en el que podría estar la transacción.

Ese enlace dice aquí:

Considere, por ejemplo, un nodo SPV que está interesado en pagos entrantes a una dirección contenida en su billetera. El nodo SPV establecerá un filtro bloom (ver [bloom_filters]) 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á ese 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 al 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, prueba que la transacción se registra en la cadena de bloques. En total, el nodo SPV habrá recibido menos de un kilobyte de datos para el encabezado del bloque y la ruta merkle, una cantidad de datos que es más de mil veces menor que un bloque completo (alrededor de 1 megabyte actualmente).

Todavía no entiendo por qué necesita verificar que la transacción esté en el bloque, algunas preguntas que surgen son:

  1. La relevancia que ese bloque específico tiene para ti. Incluso si verificas que es parte de algún bloque, no veo por qué te importa que sea de ese bloque.
  2. Entonces prueba que está registrado en la cadena de bloques. No veo cómo esto significa que es válido.

Respuestas (1)

Toda esta información es relevante para el funcionamiento de una billetera ligera, que no valida completamente la cadena de bloques, sino que valida la cadena más larga de encabezados de bloque y cualquier transacción que sea relevante para esa billetera ligera.

En qué situación desea validar una transacción está en un bloque.

Simplemente: para asegurarse de que un pago que ha enviado, recibido o en el que está interesado se haya incluido en el registro de Blockchain. Si alguien le paga una gran suma de Bitcoin, ¡probablemente querrá estar seguro de que el pago fue realmente legítimo!

Cómo encuentra el bloque en el que podría estar la transacción.

El texto que citó de Mastering Bitcoin tiene la respuesta: un compañero de nodo completo usará su filtro de floración para proporcionarle información de transacción relevante para su billetera.

La relevancia que ese bloque específico tiene para ti. Incluso si verificas que es parte de algún bloque, no veo por qué te importa que sea de ese bloque.

Para verificar que la transacción esté incluida, deberá saber en qué bloque se encuentra. Esto permitirá que su billetera calcule las pruebas criptográficas (usando la raíz de Merkle que se encuentra en el encabezado) que le permiten verificar que se ha producido una transacción en la red de una manera de confianza minimizada.

No hay forma de saber de manera similar que una transacción está incluida en el registro de blockchain, sin conocer el bloque específico con el que necesita verificar las pruebas criptográficas.

Entonces prueba que está registrado en la cadena de bloques. No veo cómo esto significa que es válido.

Solo las transacciones válidas se pueden registrar en el historial de la cadena de bloques, aunque como una billetera ligera, confía en que la red de nodos completos está validando todos los bloques y transacciones, para garantizar que no se incluyan datos no válidos en la cadena. Mientras los nodos completos estén haciendo su trabajo, las transacciones no válidas no se pueden incluir en la cadena. Cualquier minero que intente incluir una transacción no válida en un bloque, verá que los nodos de la red descartan ese bloque por no ser válido.