¿Por qué necesita repetir cada bloque después de un bloque cambiado al cambiar los datos en una cadena de bloques?

Tal vez mi pregunta sea estúpida, pero ¿por qué necesita repetir cada bloque después de un bloque modificado al cambiar los datos en una cadena de bloques?

Cada bloque contiene un hash de sus datos y un hash del bloque anterior. Si cambio los datos en el bloque № 9000, entonces el bloque № 9001 se referirá a un bloque inexistente. La Cadena se romperá. Cada artículo que leo dice algo como:

Para que esto funcione, deberá reconstruir y repetir cada bloque que sigue al bloque manipulado, reemplazando el contenido de los punteros de hash de bloque anterior.

Pero, si el bloque contiene solo el hash del bloque anterior, ¿por qué no puedo simplemente cambiar el valor hash del bloque anterior en el bloque № 9001 si cambio los datos en el bloque № 9000? ¿Eso no restauraría la cadena?

Respuestas (3)

El blockhash es un hash que incluye el anteriorblockhash como entrada.

Suponga que está tratando de cambiar los datos en el bloque 9000. Lo modifica de la manera que desee y luego extrae con éxito el bloque modificado (encuentre un hash que cumpla con el umbral de dificultad en esa altura). Ahora tiene un bloque 9000 con un hash nuevo, por lo que el bloque 9001 tiene un valor incorrecto en el hash de bloque anterior.

Su teoría es que simplemente puede actualizar el hash de bloque anterior en el bloque 9001, pero dado que ese campo es parte de la entrada al hash del bloque 9001, modificarlo cambia el hash de bloque. Ahora necesita extraer con éxito el bloque 9001 con la modificación y una vez que lo haga, el bloque 9002 deberá modificarse para tener un nuevo blockhash anterior que se refiera al nuevo blockhash para el bloque 9001 y luego deberá extraerse también, y así- y así sucesivamente.

Oh, gracias por esta sencilla explicación. Entonces, si extraigo el bloque 9001, ¿cambiará el hash de este bloque?

Cada bloque se identifica por el hash de su cabecera. El encabezado del bloque se compone de seis partes, una de las cuales es el hash del bloque anterior. Cuando se cambia incluso un bit de la entrada de una función hash criptográfica, el resultado de la función hash cambia de manera completamente impredecible.

Por lo tanto, como dijiste, cuando "cambias los datos en el bloque № 9000, entonces el bloque № 9001 se referirá a un bloque que no existe". Pero cuando cambia la referencia en el № 9001 para que apunte a su № 9000 modificado, ¡el № 9001 modificado ya no coincidirá con la referencia en el № 9002! Por lo tanto, deberá modificar cada bloque desde el № 9000 en adelante para modificar el № 9000.

¡Además, el nuevo encabezado de bloque resultante de sus modificaciones ya no cumplirá con el requisito de dificultad! Eso significa que no solo necesitaría modificar todos los bloques desde el № 9000 en adelante, sino que para cada bloque generar una nueva prueba de trabajo para encontrar candidatos de bloque que cumplan con la dificultad.

En conclusión, para modificar el № 9000, debe rehacer todo el trabajo de la red desde ese bloque y ser capaz de hacerlo lo suficientemente rápido como para superar la cadena establecida de la red para que la red acepte su modificación.

Las otras respuestas son correctas. Pero las imágenes pueden ser más fáciles de seguir.

Este es el mejor video que he visto que muestra cómo se usa el hash y la prueba de trabajo para proteger la cadena de bloques.

https://anders.com/blockchain/?ref=producthunt