Blockchain/Nivel II · Mecánica/2.3 Los bloques y la cadena/Lección 3
Una cadena de hashes
El vínculo indestructible y el costo de reescribir la historia
MaterialesUn explorador de bloques con información detallada del encabezadoUna calculadora o script para verificar hashes SHA-256Un cuaderno para registrar valores de hash
Curiosidad
- ¿Cómo es que una secuencia de registros digitales resiste las manipulaciones con más eficacia que un libro mayor físico?
- ¿Por qué agregar un solo bloque nuevo hace que sea más difícil modificar todas las transacciones anteriores?
- ¿Cuál es el costo computacional para un atacante que intenta cambiar una entrada pasada?
Explorar
- En 1991, Stuart Haber y W. Scott Stornetta publicaron “How to Time-Stamp a Digital Document”. Propusieron vincular los documentos en una cadena donde cada nuevo registro contenía el hash criptográfico del anterior. Esta estructura creaba un historial inmutable: alterar cualquier documento pasado cambiaría su hash, rompiendo el vínculo con todos los registros posteriores. Satoshi Nakamoto citó este artículo de 1991 en el whitepaper de Bitcoin como una inspiración fundamental para la integridad estructural de la cadena de bloques.
- Cada encabezado de bloque de Bitcoin incluye un campo de 32 bytes llamado ‘hash del bloque anterior’. Este valor es el hash doble SHA-256 de todo el encabezado del bloque precedente. El minero coloca este hash en el nuevo encabezado antes de comenzar a minar, ya que forma parte de los datos que se van a hashear. El resultado es una cadena en la que cada bloque se compromete criptográficamente con su bloque padre. Sin este vínculo específico, los bloques serían islas independientes; con él, forman una secuencia continua anclada en el bloque de génesis del 3 de enero de 2009.
- La raíz Merkle del encabezado vincula todas las transacciones dentro de ese bloque al hash correspondiente. Si un atacante modifica aunque sea una sola transacción en un bloque histórico, la raíz Merkle cambia. En consecuencia, el hash del propio bloque también cambia. Dado que el siguiente bloque almacena el hash antiguo de este bloque modificado como su “hash del bloque anterior”, el vínculo se rompe. La cadena deja de ser válida a partir de ese punto. Para repararla, el atacante debe volver a minar la prueba de trabajo correspondiente a ese bloque específico.
- Volver a minar un bloque no es suficiente, ya que todos los bloques siguientes también contienen hashes que ya no coinciden. El atacante debe volver a realizar la prueba de trabajo para cada bloque posterior al modificado a fin de crear una cadena válida. Esto requiere una enorme capacidad computacional. Mientras la red honesta sigue añadiendo nuevos bloques, el atacante compite contra ellos. Si el hashrate del atacante supera el del resto de la red combinado, puede adelantarse a la cadena y reemplazar su historial.
- Los nodos no siguen la cadena más larga en cuanto al número de bloques; siguen la cadena con la mayor cantidad acumulada de prueba de trabajo, conocida como “chainwork”. Esta métrica tiene en cuenta los ajustes de dificultad que hacen que los bloques posteriores sean más difíciles de minar. Una rama con más bloques pero menos trabajo total no es seguida, aunque sus bloques puedan ser válidos. Cuanto más profundo esté enterrada una transacción en la cadena, más trabajo tendrá que realizar un atacante para moverla. Cada confirmación añade capas de esfuerzo computacional necesario para revertir el historial.
- Abra cualquier explorador de bloques y seleccione un bloque reciente. Anote su campo de “hash anterior”. Haga clic en ese hash para navegar al bloque padre. Verifique que el hash del encabezado del bloque padre coincida con el valor almacenado en el bloque hijo. Repita este proceso tres veces, rastreando la cadena a través de los enlaces. Esta verificación manual confirma que cada bloque se compromete criptográficamente con su predecesor, formando una secuencia ininterrumpida de registros validados mediante trabajo que se extiende hasta el origen.
Datos clave
- El esquema de marcaje temporal vinculado de Stuart Haber y W. Scott Stornetta, de 1991, se cita en el whitepaper de Bitcoin.
- Cada encabezado de bloque contiene un hash de 32 bytes del encabezado del bloque anterior, lo que los conecta secuencialmente.
- Modificar una transacción pasada cambia la raíz Merkle y el hash de su bloque, rompiendo todos los enlaces posteriores.
- Los nodos siguen la cadena con la mayor prueba de trabajo acumulada (‘chainwork’), y no solo con el mayor número de bloques.
- Un atacante debe volver a realizar la prueba de trabajo para cada bloque posterior al modificado para superar a la red honesta.
- El bloque de génesis, extraído el 3 de enero de 2009, sirve como ancla inmutable de la cadena.
Ejercicio nueve, seis, tres, uno
9ReunirEnumera 9 tipos diferentes de libros digitales o sistemas de registro. Observa cómo cada sistema evita la manipulación de las entradas históricas.
6AgruparAgrupa los 9 en 6 categorías según su mecanismo de inmutabilidad: enlace criptográfico, votación por consenso, auditoría por autoridad central, redundancia física, contrato legal u otro.
3DestilarReduce los 6 grupos a 3 razones fundamentales por las cuales la mayoría de los sistemas no logran proporcionar un historial evidente de manipulaciones sin una tercera parte de confianza.
1CristalizarEscribe una oración que explique cómo la prueba de trabajo transforma una lista enlazada de hashes en una cadena de propiedad económicamente segura.
Verificación de hechos
Fechas, cifras y afirmaciones verificadas con las fuentes publicadas que se enumeran a continuación.