Diccionario de Criptomonedas

¿Qué Es Sha-256? Algoritmo De Hash

Qué Es Sha-256

SHA-256 o Secure Hash Algorithm 256 (Algoritmo Hash Seguro) es un algoritmo de hashing usado para convertir texto de cualquier longitud en uno de longitud fija de 256 bits (32 bytes).

Originalmente publicado en 2001, SHA-256 fue desarrollador por la Agencia Nacional de Seguridad de los Estados Unidos (NSA).

Este algoritmo es utilizado comúnmente en los certificados SSL de los sitios web y en el estándar de firma de mensajes DKIM para clientes de correo electrónico.

SHA-256 es una función de hash bastante popular utilizada para la encriptación de Bitcoin. Su paso por las criptomonedas comenzó con la introducción de la primera en 2009, y luego ha sido adoptada por un gran número de proyectos blockchain, incluyendo otras monedas que son forks del código original de Bitcoin.

Entre las 3 criptomonedas que utilizan SHA-256 con mayor capitalización de mercado encontramos al Bitcoin, Bitcoin Cash y Bitcoin Satoshi’s Vision. En total, el algoritmo asegura más de mil billones de dólares.

En este artículo vamos a explorar como es que funciona y porque fue implementado en Bitcoin.

¿Cómo funciona SHA-256?

El algoritmo SHA-256, al igual que otras funciones de hash, toman una entrada y producen una salida (que usualmente conocemos como hash) que tiene una longitud fija.

No importa si la entrada es una sola palabra, una oración completa o un libro, la salida de este tipo de algoritmos es siempre la misma.

En particular, en este caso será de 256 bits, que son 32 bytes y que se muestran como 64 caracteres alfanuméricos. Además, todas las salidas parecen aleatorias y no ofrecen ninguna información de la entrada que les dio vida.

Otras características importantes de SHA-256 es el hecho de que es determinista, que significa que siempre produce la misma salida para la misma entrada, y que es una función de una sola calle. No existe forma de hacer ingeniera inversa para obtener la entrada a partir de la salida.

Por último, SHA-256 es computacionalmente eficiente y cualquier ordenador pude realizar la operación cientos o miles de veces por segundos.

Para las criptomonedas, el algoritmo SHA-256 es importante porque es una parte integral de la minería de Bitcoin, así como para otras criptomonedas que utilizan un mecanismo de Prueba de Trabajo.

Y por tanto, también es importante para el mundo, ya que asegura la primera criptomoneda y la que hoy tiene el mayor valor de mercado en términos de capitalización.

Permitiendo Prueba de Trabajo

SHA-256 fue el primer algoritmo de minería usado para verificar las transacciones en la cadena de bloques a través del mecanismo de consenso llamado Prueba de Trabajo.

Sin embargo, Bitcoin no fue el primer sistema en utilizar Prueba de Trabajo. HashCash, un algoritmo creado en 1997 es considerado ampliamente como el primero en implementarlo.

Es más, Satoshi Nakamoto cita HashCash como una influencia de Bitcoin en su whitepaper:

Para implementar un servidor de marcas de tiempo distribuido entre pares, necesitaremos utilizar un sistema de prueba de trabajo similar a Hashcash de Adam Back

Satoshi Nakamoto

En términos básicos, el hash SHA 256 soporta una red que utiliza Prueba de Trabajo en la que los ordenadores compiten para resolver un complicado problema matemático.

Cuando un ordenador encuentra la solución, la transmite al resto de ordenadores de la red punta a punto.

Esto demuestra su trabajo a las otras máquinas que estaban tratando de resolver el mismo problema, ya que cada ordenador de la red verifica la solución de forma independiente.

Si la solución es correcta, el minero que la encontró recibe una recompensa. A continuación, se presenta un nuevo problema y la competición comienza de nuevo.

Si quieres saber más sobre como funciona todo esto, te aconsejo que leas el artículo sobre la minería de Bitcoin.

¿Quién lo invento?

SHA-256 no es el único algoritmo de la familia de los SHA. En realidad, es solo una variación de una clase de algoritmos hash seguros publicados por el Instituto Nacional de Estándares y Tecnología (NIST) como Norma Federal de Procesamiento de Información (FIPS) de Estados Unidos.

Veamos como han evolucionado con el tiempo

SHA-0 y SHA-1

SHA-0 es una función hash de 160 bits publicada por primera vez en 1993 con el nombre de “SHA”. En la actualidad, se la conoce como SHA-0, ya que posteriormente se desarrollaron más iteraciones.

SHA-0 fue returado poco después de su publicación debido a un “fallo significativo” no revelado.

Desarrollada como reemplazo de SHA-0, SHA-1 es una función hash de 160 bits publicada por primera vez en 1995. Se parece mucho a la función hash MD5, que se publicó por primera vez en 1992.

SHA-1 fue diseñado por la Agencia de Seguridad Nacional (NSA) para formar parte del Algoritmo de Firma Digital.

Desde 2005, SHA-1 ya no se recomienda para usos criptográficos para proteger contra personas que tengan mucho poder computacional.

En su día, SHA-1 se utilizaba de forma generalizada para los certificados SSL, pero ya no es así debido a las deficiencias de seguridad.

Por ejemplo, Microsoft dejó de aceptar certificados SHA-1 a finales de 2016. Realmente no hay debate sobre si usar sha1 vs sha256. Este último es claramente el algoritmo más seguro.

SHA-2

SHA-2 consta de dos funciones hash con diferentes tamaños de bloque.

  • SHA-256 se publicó por primera vez en 2001 y produce resultados de 32 bytes.
  • SHA-512 se publicó por primera vez en 2004 y produce resultados de 64 bytes.
  • SHA-224, SHA-384, SHA-512/224 y SHA-512/256 son versiones truncadas de estos dos estándares.

Al igual que SHA-1, todas las funciones hash de SHA-2 fueron desarrolladas por la NSA. Toda la familia SHA-2 está patentada bajo la patente estadounidense 6829355.

Aunque sabemos quién inventó SHA-256, no sabemos quién inventó Bitcoin. La patente de SHA-2 fue liberada bajo una licencia libre de derechos, poniéndola a disposición de gente como Satoshi Nakamoto.

SHA-3

La familia SHA-3, antes conocida como Keccak, consta de cuatro funciones hash criptográficas: SHA3-224, SHA3-256, SHA3-384 y SHA3-512, y dos funciones de salida extensible (XOF), llamadas SHAKE128 y SHAKE256.

Las funciones de salida extensible son diferentes de las funciones hash, pero es posible utilizarlas de forma similar.

El diseño de SHA-3 se seleccionó de un concurso público mundial de 64 algoritmos de hash y se publicó por primera vez en 2015.

¿Por qué Bitcoin utiliza SHA-256?

Como vimos antriormente, Bitcoin utiliza el algoritmo SHA-256 como algoritmo de Prueba de Trabajo para la minería de criptomonedas.

SHA-256 también se utiliza junto con otra función hash criptográfica llamada RIPEMD-160 como parte del “doble hashing”, que es un paso en el proceso de creación de una dirección Bitcoin a partir de una clave pública.

Satoshi Nakamoto respondió a esta pregunta en un comentario en junio de 2010:

SHA-256 es muy fuerte. No es como el paso gradual de MD5 a SHA1. Si SHA-256 se rompiera por completo, creo que podríamos llegar a un acuerdo sobre cuál era la cadena de bloques honesta antes de que empezaran los problemas, fijarla y continuar a partir de ahí con una nueva función hash.

Satoshi Nakamoto

Bitcoin y SHA-256

Bitcoin lleva utilizando SHA-256 desde que fue lanzada en 2009. Esto ha llevado a que emerjan nuevos y más poderosos rigs de minería con el tiempo.

Estos nuevos equipos de hardwares especializados para la tarea se los conoce como ASIC. Los cuales han generado un gran debate en la comunidad, de sí se debería hacer algo para incrementar la resistencia a estos.

Algunas consideran que limitar el uso de estos permitirán prevenir el surgimiento de monopolios de granjas de minería y la posible centralización de los BTC.

Las soluciones para esto se han discutido entre los desarrolladores, y consisten básicamente en cambiar a una función hash diferente o cambiar el algoritmo de consenso a uno de Prueba de Participación, por ejemplo.

A pesar de esto, no se han realizado grandes cambios y la red sigue utilizando SHA-256.

Esto talvez se deba a que la mayoría de personas priorizan la seguridad de la red a una resistencia a los mineros ASIC. Además, un ataque del 51% nunca ha sido un problema para Bitcoin.

El costo actualmente en electricidad para hacerlo es de un par de millones por hora, un número que no incluye la inversión en los quipos de minería para realizar dicho ataque y que elevaría la cifra todavía más.

Algunas cadenas de bloques que surgieron a partir del código fuente de Bitcoin han intentado mejorar el diseño de SHA-256.

Un ejemplo de esto es Bitcoin Diamond (BCD), que fue lanzada en noviembre de 2017. Los creadores eran dos mineros de Bitcoin que decidieron dejar la red.

Los desarrolladores dejaron de lado SHA-256 para utilizar el algoritmo de hashing X13, por la resistencia, justamente, a la minería ASIC.

Limitaciones de SHA-256

Cuando Bitcoin fue lanzado en 2009, SHA-256 era el algoritmo de hash más seguro disponible. Pero desde entonces, las cosas han cambiado y se han encontrados peligros y limitaciones.

Aquí te dejo algunas de las más importantes.

1. Mineros ASIC

Hay que entender que el algoritmo SHA-256 nunca fue pensado para ser resistente a máquinas con mucho poder computacional. Por tanto, la discusión acerca de la resistencia a los ASIC surgió mucho después de la introducción de Bitcoin.

De acuerdo a un reporte, la evolución del hardware de minería de Bitcoin se puede dividir en 6 generaciones.

Cuando fue lanzada en 2019, solo las CPU eran necesarios para minar Bitcoin. Esto creo un sistema justo para los mineros de la red.

Algo que cambio dinámicamente con le paso del tiempo y a medida que nuevas generaciones de equipos de mineros surgían para el público en general.

Cada nueva generación era capaz de producir cada vez más poder de hash que su antecesor.

Primero fueron las GPU en 2010, luego las FPGA en 2011 y por último los ASIC en 2012-2013. Estos últimos volvieron prácticamente inservibles a las CPU y las GPU para el minado de los BTC con el tiempo.

Los ASIC dominan la escena de la minería actualmente, y continuamente ofrecen nuevas versiones que acentúan más todo esto. Podemos observar como ha crecido exponencialmente la taza de hash de la red de Bitcoin.

Total de hash rate de la red de Bitcoin

2. Rentabilidad de la minería

Actualmente, para ser rentable con la minería en SHA-256 es necesario contar con equipos ASIC. Sin embargo, no todos son capaces de conseguir los mismos resultados.

Por ejemplo, el Bitmain Antminer S19 Pro produce una cantidad descomunal de hashrate, consiguiendo una gran cantidad de beneficios para su dueño si lo comparamos con otras alternativas más antiguas como el Antminer T15.

Sin embargo, también hay que decir que el primero tiene un costo 3 veces superior.

Esto nos demuestra que esta industria es muy competitiva, y que con el paso del tiempo es necesario invertir mucho dinero para mantenerse actualizado.

El resultado es que solo las personas o empresas con grandes bolsillos pueden mantenerse rentables y competitivos en este sector, desplazando a los mineros más terrenales, por llamarlos de alguna forma.

3. Surgimiento de SHA-3 y otros algoritmos de hashing

La familia SHA-2 no es la última en una larga lista de algoritmos. Actualmente SHA-3, conocido anteriormente como Keccak, es considerado más rápido y seguro que SHA-256.

Este algoritmo es utilizado por algunas criptomonedas como Nexus (NXS), SmartCash (SMART), entre otras.

Al igual que SHA-256, SHA-3 es compatible con ASIC, lo que dificulta la minería de criptomonedas SHA-3 con CPU y GPU.

Muchos proyectos de blockchain han citado la falta de resistencia a los ASIC entre todos los algoritmos de hash seguros, específicamente la implementación de SHA-256 de Bitcoin, como una razón importante para el desarrollo de otros algoritmos de hash como Scrypt, Equihash, CryptoNight y Lyra2REv2.

Criptotario

Me llamo Martin, soy ingeniero y apasionado de las inversiones y la tecnología. Me gusta mucho leer libros y todo aquello que me haga mejorar día a día.

Agrega un Comentario

Haz clic aquí para añadir un comentario