Qué son los Hash en la blockchain
Qué son los Hash en la cadena de bloques y por qué deben importante
A ver, a ver ¿y exactamente cómo se previene la manipulación en la blockchain? ¿Qué son los hash en la blockchain de los que intuyo que me vas a hablar?
Para grandes problemas hay grandes soluciones. Ha llegado la hora de hablar de los Hash y su super poder para evitar la manipulación y mantener la inviolabilidad de la red.
Los Hash no son un concepto nuevo. De hecho aparecieron en los años cincuenta del siglo XX ligados a la computación, y son el mecanismo de seguridad de las blockchains.
Son como pegatinas que se pegan en cada bloque para impedir que sean manipulados o reemplazados por bloques falsos.
Básicamente son una cadena de caracteres, llamado «hash» que se genera como «resumen» de un conjunto de datos mayor (bloque completo), y para mantener la invulnerabilidad de la cadena, cada bloque incluye el hash del bloque anterior. De este modo se sabe cuál fue el bloque anterior y su contenido, haciendo que la cadena no tenga ningún eslabón débil.
Discrepancias en los hashs
Si surgiera alguna discrepancia entre un «hash» y el anterior, entonces se sabe exactamente dónde y no será validado por los nodos.
Los hashs siempre, serán idénticos si los datos que generan son los mismos. Si hubiera la menor variación, por insignificante que sea en los datos que lo generen, entonces el hash generado será totalmente diferente. Esto lo voy a explicar con un ejemplo genial en el párrafo siguiente seguramente, aún estoy pensando en cuál usar.
Dado que a la más insignificante diferencia, el resultado final es una inmensa diferencia, resulta súper sencillo verificar un hash con otro si se conocen los datos originales que lo han generado, pero es casi imposible adivinar los datos originales a partir del hash.
Por ejemplo (efectivamente, se me ocurrió un buen ejemplo), imagina que, utilizando el algoritmo de hash queremos ejecutar la frase «Yo amo Gastcoin». El software nos devuelve, a cambio, «ef8d8844». El algoritmo «ha resumido» todos los datos contenidos en esa frase de este modo. Ahora bien, si variamos levemente el contenido, por ejemplo, haciendo algo que detesto con todas mis fuerzas, añadiendo un doble espacio «yo amo Gastcoin» (por si no lo ves, hay doble espacio entre «amo» y «Gastcoin» … A mí eso se me ilumina con luces de neón), al ejecutar el mismo algoritmo el hash generado será «7t6d55x00» … Nada que ver el uno con el otro pese a que la diferencia es mínima.
Y por cierto, los hashs están encriptados, por eso «parecen» ser información resumida… Vaya, vaya… A estas alturas me imagino que queda claro que de aquí es de donde proviene el prefijo «cripto» en la palabra criptomoneda. ¡Tachán! Ahora entiendes por qué te explicamos qué son los Hash en la blockchain ¿eh?
El algoritmo generador de hashs
Gracias al algoritmo tú puedes averiguar el hash obtenido de la frase «Yo amo Gastcoin», pero te resultará casi imposible averiguar cuál es la frase que genera el hash «7t6d55x00». Y esto es seguridad a niveles nunca vistos por la humanidad. Esto no es como ver a Ethan Hunt descolgarse desde el techo atravesando sensores láser, esto es seguridad de verdad.
Y ya hemos dicho que cada bloque de la cadena contiene el hash del bloque anterior. Es algo así como que tú das de comer al algoritmo los datos de las transacciones que contienen el bloque anterior y el algoritmo escupe el hash, ya sabes, ese código alfanumérico imposible reúne toda la información anterior a modo de resumen y que sirve para indicar el eslabón de la cadena y su posición en ella.
Ahora bien, ¿Qué pasa si alguien logra cambiar una transacción dentro de un bloque que contiene mil transacciones? Por ejemplo, una recibido 50 Gastcoins, añadir un 0 y que sean 500. Solo se estaría añadiendo un «cero» a una transacción que incluye otras 999 transacciones que no han sido alteradas, pero eso va a modificar el hash radicalmente. Recuerda, un mínimo cambio tiene consecuencias gigantescas (así que si viajas al cretácico no mates ninguna mariposa o cuando regreses al siglo XXI podríamos ser reptilianos).
El bloque siguiente va a ser un chivato y va a advertir que el hash anterior es diferente, que ha cambiado, y por lo tanto ese clonado, alterado, será excluido, y solo será tomado en cuenta el correcto.
Cómo se validan los hash: Algoritmo de consenso
Oh, esto es magnífico. ¿Y cómo comprueban los nodos que los hash coinciden y son válidos? ¿Con magia? ¿Con ciencia?
Uy casi. Arthur C. Clarke, en sus «tres leyes de Clarke» escribió que «cualquier tecnología lo suficientemente avanzada es indistinguible de la magia«, y casi, casi… Pero no, con «algoritmo de consenso».
Este proceso para decidir cuál es el mejor método para validar los hash dependientes de cada blockchain. Por ejemplo, la blockchain de Bitcoin, la 1.0, decide cuál es la cadena válida basándonos en la que haya supuesto más pruebas de trabajo, es decir, la que tenga más bloques, porque cada bloque requiere trabajo (en el caso del Bitcoin, llamado minado), y la cadena más larga será considerada la válida (el tamaño sí importa).
Imagina que tu moralidad no es tan rigurosa como parece y que, tras gastar 5 Bitcoins intentas alterar el registro para volver a contar con ellos, es decir, engañar a la blockchain para que crea que siguen estando en tu poder.
Pasos a seguir
El primer paso es recalcular el hash del bloque que contiene la transacción que quiere alterar. Una vez hecho eso, tendrás que alterar el hash del bloque siguiente, ya que hará referencia a un hash que ya no coincide. Luego tendrás que manipular el siguiente bloque, ya que también hará alusión a un bloque cuyo hash ha cambiado… Y así hasta que logres llegar al último bloque. ¿Parece factible? Piensa que lo estarás haciendo con una computadora, o con diez, o con cien… Mientras que a la vez habrá millones de nodos añadiendo operaciones legítimas nuevas a nuevos bloques legítimos.
Por eso esto resulta tan fabuloso, porque los registros pueden ser públicos y a la vez ser ultra seguros. Los ataques a la integridad de las blockchain ocurren, pero sería necesaria tanta potencia informática que es casi imposible sin que los demás se den cuenta. Los atacantes tendrían que superar en potencia a los legítimos y eso es casi imposible. Por eso, cuanto mayor es una red, mayor es el algoritmo de consenso y más difícil es vulnerarlo.
Ahora ya sabes qué son los Hash en la blockchain y por qué deben importarte.