¿Cómo y por qué necesitamos validar una transacción?

Estoy empezando a hacer algunas investigaciones sobre el protocolo Bitcoin y la cadena de bloques. Estoy tratando de entender todas las secciones del libro blanco de Bitcoin. Hasta ahora, no pude entender cuál es la utilidad de agregar la raíz del árbol Merkle de transacciones en el encabezado del bloque. Sí, sé que se hace para ahorrar espacio como decía el periódico. Pero, ¿cuándo alguien lo necesita?

Por ejemplo, cuando los mineros reciben un bloque nuevo, ¿reciben solo el encabezado del bloque o el encabezado del bloque con la transacción? Significa, ¿la cadena de bloques es una cadena de bloques de encabezados?

Si la sección 8- Verificación de Pago Simplificado Satoshi dijo:

Es posible verificar los pagos sin ejecutar un nodo de red completo. Un usuario solo necesita conservar una copia de los encabezados de bloque de la cadena de prueba de trabajo más larga, que puede obtener consultando los nodos de la red hasta que esté convencido de que tiene la cadena más larga y obtener la rama de Merkle que vincula la transacción con el bloque. tiene una marca de tiempo. No puede verificar la transacción por sí mismo, pero al vincularla a un lugar en la cadena, puede ver que un nodo de la red la ha aceptado, y los bloques agregados después confirman que la red la ha aceptado.

¿Cómo puede el usuario obtener la sucursal de Merkle que vincula la transacción con el bloque en el que está marcada la hora?

Respuestas (1)

Hasta ahora, no pude entender cuál es la utilidad de agregar la raíz del árbol Merkle de transacciones en el encabezado del bloque.

Para garantizar que el hash del bloque confirme las transacciones en el bloque.

El hash del bloque no es en realidad el hash de todo el bloque, es el hash del encabezado del bloque. Si no hubiera una raíz Merkle, el encabezado del bloque no contendría nada que garantice que las transacciones que forman parte del bloque son realmente parte del bloque. Al combinar todas las transacciones en la raíz de Merkle y colocarlas en el encabezado del bloque, los bloques recibidos deben contener todas sus transacciones para que el encabezado del bloque sea válido.

Sí tienes razón. Pero, ¿cómo ahorra eso espacio? ¿Se eliminan las transacciones y nos quedamos solo con el hash del árbol Merkle? en caso afirmativo, ¿cómo podemos verificar una transacción solo con el hash del árbol merkle? si no, ¿el bloque siempre se envía con sus transacciones?
La raíz Merkle no se usa para ahorrar espacio en la retransmisión de bloques. Un nodo debe tener el bloque en su totalidad para poder validarlo. Tradicionalmente, esto significa que el bloque se envía completo. La raíz de merkle no permite que las transacciones de bloques no se retransmitan. Tenga en cuenta que los bloques compactos permiten la retransmisión de bloques sin enviar el bloque completo, ya que envía la información necesaria para que un nodo reconstruya completamente el bloque. Esa sección en el documento de Bitcoin simplemente dice que no es necesario almacenar el bloque completo para que pueda usarse para ahorrar espacio en el disco.
Tenga en cuenta que el método descrito en el documento de Bitcoin para ahorrar espacio en el disco no se usa realmente. Los métodos de poda actuales son mucho más eficientes y permiten eliminar el bloque del disco por completo.