Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Visión General del Hashing | Bloques y Transacciones
Quizzes & Challenges
Quizzes
Challenges
/
Introducción a Blockchain

bookVisión General del Hashing

El hashing y los hashes de bloque se han mencionado varias veces, pero el concepto en sí aún no se ha examinado en detalle. Ahora es el momento de comprender qué es realmente el hashing.

Note
Estudiar más

Hashing es un proceso que toma una entrada y produce una cadena de bytes de tamaño fijo, normalmente expresada como un número hexadecimal. La salida, conocida como hash, parece aleatoria y cambia completamente ante cualquier alteración en la entrada, una propiedad conocida como el "efecto avalancha".

Propiedades de las funciones hash

En blockchain, las funciones hash se utilizan para:

  • Proteger transacciones creando una huella digital única para cada una;
  • Generar direcciones a partir de claves públicas;
  • Crear los enlaces en la blockchain mediante hashes de bloque.

Teniendo esto en cuenta, una buena función hash para blockchain posee varias propiedades clave:

El hashing, especialmente utilizando una buena función hash, puede compararse con hacer un batido. Observa la siguiente ilustración:

En realidad, es posible encontrar la entrada original a partir de un hash; sin embargo, tomaría demasiado tiempo como para ser realmente práctico.

Hashing de bloques

Para obtener el hash de un bloque determinado, Bitcoin utiliza la función hash SHA-256, que genera un hash de 256 bits (32 bytes). Es parte de la familia SHA-2, diseñada por la Agencia de Seguridad Nacional (NSA) y reconocida por sus sólidas propiedades de seguridad, lo que la hace resistente a colisiones, ataques de preimagen y otras vulnerabilidades criptográficas.

El hash de un bloque de Bitcoin se calcula tomando los datos del encabezado del bloque. Estos datos se introducen en la función hash SHA-256 dos veces en un proceso conocido como doble SHA-256.

Aquí tienes una imagen para aclarar el concepto:

El hash de 256 bits resultante debe cumplir con ciertos criterios definidos por el objetivo de dificultad de la red. Si el hash no está por debajo del objetivo, se ajusta el nonce y se vuelve a calcular el hash hasta encontrar un hash que cumpla con los requisitos. Este hash final es el identificador único del bloque.

Raíz de Merkle

La raíz de Merkle es un único hash que representa todas las transacciones incluidas en un bloque. Su cálculo comienza con los hashes de cada transacción individual, utilizando SHA-256 doble.

Cada hash de transacción se empareja con otro, y el par se vuelve a hashear para producir un nuevo hash. Este proceso de emparejamiento y hash continúa capa por capa hasta que solo queda un hash. El hash final es la raíz de Merkle, que encapsula todo el conjunto de transacciones y garantiza su integridad al codificarlas en un solo valor. Esta estructura jerárquica se conoce como árbol de Merkle.

El siguiente ejemplo ilustra cómo se forma un árbol de Merkle:

Como se puede observar, el bloque contiene 6 transacciones (cada una etiquetada como Tx) y, mediante el hash y emparejamiento de nuevos hashes, se calcula una raíz de Merkle.

Note
Nota

Siempre que el hash más a la derecha no tenga pareja, como ocurre con Hash56 en nuestro ejemplo, este último hash se duplica para crear una pareja. Esta técnica mantiene la integridad y eficiencia de la estructura del árbol de Merkle incluso cuando hay un número impar de transacciones o hashes en algún momento.

question mark

¿Cuál es el tamaño de salida de la función hash SHA-256 utilizada en la blockchain de Bitcoin?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 4

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Awesome!

Completion rate improved to 6.25

bookVisión General del Hashing

Desliza para mostrar el menú

El hashing y los hashes de bloque se han mencionado varias veces, pero el concepto en sí aún no se ha examinado en detalle. Ahora es el momento de comprender qué es realmente el hashing.

Note
Estudiar más

Hashing es un proceso que toma una entrada y produce una cadena de bytes de tamaño fijo, normalmente expresada como un número hexadecimal. La salida, conocida como hash, parece aleatoria y cambia completamente ante cualquier alteración en la entrada, una propiedad conocida como el "efecto avalancha".

Propiedades de las funciones hash

En blockchain, las funciones hash se utilizan para:

  • Proteger transacciones creando una huella digital única para cada una;
  • Generar direcciones a partir de claves públicas;
  • Crear los enlaces en la blockchain mediante hashes de bloque.

Teniendo esto en cuenta, una buena función hash para blockchain posee varias propiedades clave:

El hashing, especialmente utilizando una buena función hash, puede compararse con hacer un batido. Observa la siguiente ilustración:

En realidad, es posible encontrar la entrada original a partir de un hash; sin embargo, tomaría demasiado tiempo como para ser realmente práctico.

Hashing de bloques

Para obtener el hash de un bloque determinado, Bitcoin utiliza la función hash SHA-256, que genera un hash de 256 bits (32 bytes). Es parte de la familia SHA-2, diseñada por la Agencia de Seguridad Nacional (NSA) y reconocida por sus sólidas propiedades de seguridad, lo que la hace resistente a colisiones, ataques de preimagen y otras vulnerabilidades criptográficas.

El hash de un bloque de Bitcoin se calcula tomando los datos del encabezado del bloque. Estos datos se introducen en la función hash SHA-256 dos veces en un proceso conocido como doble SHA-256.

Aquí tienes una imagen para aclarar el concepto:

El hash de 256 bits resultante debe cumplir con ciertos criterios definidos por el objetivo de dificultad de la red. Si el hash no está por debajo del objetivo, se ajusta el nonce y se vuelve a calcular el hash hasta encontrar un hash que cumpla con los requisitos. Este hash final es el identificador único del bloque.

Raíz de Merkle

La raíz de Merkle es un único hash que representa todas las transacciones incluidas en un bloque. Su cálculo comienza con los hashes de cada transacción individual, utilizando SHA-256 doble.

Cada hash de transacción se empareja con otro, y el par se vuelve a hashear para producir un nuevo hash. Este proceso de emparejamiento y hash continúa capa por capa hasta que solo queda un hash. El hash final es la raíz de Merkle, que encapsula todo el conjunto de transacciones y garantiza su integridad al codificarlas en un solo valor. Esta estructura jerárquica se conoce como árbol de Merkle.

El siguiente ejemplo ilustra cómo se forma un árbol de Merkle:

Como se puede observar, el bloque contiene 6 transacciones (cada una etiquetada como Tx) y, mediante el hash y emparejamiento de nuevos hashes, se calcula una raíz de Merkle.

Note
Nota

Siempre que el hash más a la derecha no tenga pareja, como ocurre con Hash56 en nuestro ejemplo, este último hash se duplica para crear una pareja. Esta técnica mantiene la integridad y eficiencia de la estructura del árbol de Merkle incluso cuando hay un número impar de transacciones o hashes en algún momento.

question mark

¿Cuál es el tamaño de salida de la función hash SHA-256 utilizada en la blockchain de Bitcoin?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 4
some-alt