La tecnología blockchain es una red intrincada de varias innovaciones tecnológicas que trabajan juntas. Entre las piezas más importantes del rompecabezas de la blockchain está el hashing.
La tecnología blockchain es una red intrincada de varias innovaciones tecnológicas que trabajan juntas. Entre las piezas más importantes del rompecabezas de la blockchain está el hashing.
El hashing es una función criptográfica que convierte una cadena de caracteres de cualquier longitud en una salida única, o hash, de longitud fija. Esto significa que sin importar qué combinación de símbolos se utilice como entrada, siempre producirá una cadena única de dígitos y caracteres.
Un hash de Bitcoin se ve así:
00000000000000000025e2ba026a8ad462b9a693d80fd0887def167f5f888a11
(hash del bloque 540807)
Aspectos esenciales del hashing
- El hashing es un método para codificar datos criptográficamente.
- Produce una salida de longitud fija a partir de cualquier entrada.
- La misma entrada siempre produce el mismo hash.
- La entrada no puede reconstruirse a partir del hash.
- Las funciones hash modernas hacen virtualmente imposible producir la misma salida a partir de dos entradas diferentes.
Hashing en criptomonedas
El hashing es una parte integral de todas las transacciones basadas en blockchain, incluyendo el intercambio de criptomonedas. Las funciones hash son necesarias en todo, desde la minería de bloques hasta la firma de transacciones y la generación de claves privadas.
Bitcoin
Bitcoin Cash
Ethereum
Litecoin
Ripple
SHA-256
SHA-256
keccak256
scrypt
SHA-512
Una función hash es un algoritmo matemático utilizado para calcular el hash. Diferentes criptomonedas utilizan diferentes funciones hash, pero todas ellas siguen los mismos principios básicos del hashing.
Principales propiedades del hashing
El hashing produce salidas de longitud fija
El hashing siempre producirá una salida única de longitud fija a partir de cualquier entrada. Veamos lo que esto significa con un par de ejemplos.
Entrada
Salida
hola
2CF24DBA5FB0A30E26E83B2AC5B9E29E1B161E5C1FA7425E73043362938B9824
Es un buen día para HODL.
6B89D5D4AD6A3364410DD9BAB95FD250EF4A663D9D3C47CBD7388535A5912E03
La novela completa Casa Desolada de Charles Dickens
4F144CC612CA27E2DD6DFD6663F68BABC3B758D602B5102BF14E717E823EB741
En la tabla anterior, se utiliza la función hash SHA-256 para generar los hashes de tres entradas diferentes. En los tres casos, el hash es completamente único, pero su longitud sigue siendo la misma. SHA-256 genera hashes de 256 bits de longitud, generalmente representados como 64 símbolos compuestos por números del 0 al 9 y letras de la A a la F. No importa cuán corta o larga sea la entrada – ya sea una sola palabra (hola) o incluso una novela completa (Casa Desolada de Charles Dickens) – el hash se fija en 64 caracteres.
El hashing es determinista
La misma entrada siempre producirá la misma salida. Si utilizas SHA-256 para generar un hash a partir de "diversión", siempre obtendrás la salida que se ve en la tabla a continuación. Incluso cambiar una sola letra, sin embargo, producirá un hash completamente diferente.
Entrada
Salida
diversión
00C4285274FCC5D6FBA2EE58DAF0D8C2B9B825B68D35D65D0E90A9BB333A51B5
sol
27756F050E14A1CB1C1EE867F0EACE9EA4D9FCB81B8BEE089469F1EBD5FD7B17
El hashing es una función unidireccional
Es inviable determinar cuál fue la entrada a partir de una salida dada. Es decir, es virtualmente imposible revertir la función hash con la tecnología contemporánea. La única forma de determinar cuál fue la entrada es probar cadenas aleatorias hasta encontrar la correcta. Este método se conoce como fuerza bruta.
Usar la fuerza bruta para revertir el hash a la cadena original es más fácil decirlo que hacerlo. Ningún ordenador existente es lo suficientemente potente como para encontrar la solución en un tiempo razonable, ni es probable que alguna vez construyamos uno que lo haga. Incluso IBM Summit, actualmente el ordenador más rápido del mundo, capaz de realizar varios billones de cálculos por segundo, necesitaría muchos años y una cantidad asombrosa de electricidad para encontrar la respuesta para un solo hash.
El hashing es resistente a colisiones
Una colisión ocurre cuando un mecanismo de hashing produce la misma salida para dos entradas diferentes. Esto es posible en teoría para el hashing, ya que el número de hashes únicos es limitado pero el número de entradas no lo es. Sin embargo, la probabilidad de colisiones es extremadamente pequeña. Por lo tanto, se dice que el hashing es resistente, pero no inmune, a las colisiones.
SHA-256, el algoritmo utilizado por Bitcoin, produce hashes de 256 bits de longitud (una cadena de 256 dígitos de 1s y 0s). Esto significa que hay un total de 2256 hashes únicos que puede producir. Tan pronto como el número de entradas sea mayor que el número de todas las salidas posibles, digamos 2256+1, al menos dos de las entradas tendrán la misma salida – eso es una colisión.
¿Significa esto que el hashing es explotable? No, en absoluto. 2256 es un número enorme. De hecho, enorme ni siquiera comienza a hacerle justicia. Piénsalo de esta manera: 2256 es aproximadamente igual al número de átomos en todo el universo observable. El tamaño puro de este número significa que la probabilidad de que ocurra una colisión es absolutamente minúscula.
El hashing es fundamental para la blockchain
La tecnología blockchain combina una serie de soluciones importantes de varios campos de la ciencia. La función hash criptográfica sirve como base para construir una blockchain y aprovechar esas soluciones. Es difícil imaginar una red descentralizada que prescinda completamente del hashing.