Skip to main content

SHA-256 | Bitcoin Glossary | Mapping Bitcoin

SHA-256

Criptografía

Also known as: SHA256, Secure Hash Algorithm

Función hash criptográfica central en Bitcoin: usada para minar bloques, derivar direcciones y construir el árbol Merkle. Produce un digest de 256 bits.

Descripción general

SHA-256 (Algoritmo de Hash Seguro de 256 bits) es la función hash criptográfica que sustenta la minería de prueba de trabajo de Bitcoin, la identificación de transacciones y muchas otras operaciones del protocolo. Diseñado por la NSA y publicado por NIST en 2001, SHA-256 toma una entrada de cualquier tamaño y produce una salida fija de 256 bits (32 bytes) llamada digest o hash. Es una función unidireccional: dado un hash, es computacionalmente inviable determinar la entrada original.

Propiedades de SHA-256

Propiedades de SHA-256:

Entrada: "Hello"
Salida: 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969

Entrada: "hello" (diferente mayúscula/minúscula)
Salida: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

Propiedades clave:
┌─────────────────────────────────────────────────┐
│ 1. Determinista    La misma entrada siempre =    │
│                    misma salida                  │
│ 2. Rápido          Eficiente de calcular         │
│ 3. Efecto avalancha Pequeño cambio de entrada =  │
│                     salida completamente distinta│
│ 4. Resistente      No se puede invertir el hash  │
│    a preimagen     para encontrar la entrada     │
│ 5. Resistente      Es inviable encontrar dos     │
│    a colisiones    entradas con el mismo hash    │
│ 6. Tamaño fijo     Siempre 256 bits (32 bytes)  │
└─────────────────────────────────────────────────┘

SHA-256 en Bitcoin

Bitcoin usa SHA-256 en múltiples operaciones críticas:

  • Minería — Las cabeceras de bloque se hashean con doble SHA-256 (SHA-256 aplicado dos veces). Los mineros buscan un nonce que produzca un hash por debajo del objetivo de dificultad.
  • IDs de transacción — Cada transacción se identifica por el hash doble SHA-256 de sus datos serializados.
  • Árboles Merkle — Las transacciones dentro de un bloque se organizan en un árbol Merkle usando doble SHA-256, produciendo una única raíz Merkle almacenada en la cabecera del bloque.
  • Generación de direcciones — SHA-256 se usa como parte de la operación HASH160 (SHA-256 seguido de RIPEMD-160) para derivar direcciones a partir de claves públicas.

Doble SHA-256

Bitcoin usa SHA-256 dos veces en sucesión (a menudo escrito como SHA-256d o HASH256) para la minería y los IDs de transacción. Este doble hash proporciona protección contra ciertos ataques teóricos, incluyendo los ataques de extensión de longitud, donde un atacante podría agregar datos a un mensaje y calcular un hash válido sin conocer el mensaje original.

Doble SHA-256:

  Datos de Entrada
      │
      ▼
  ┌────────┐     ┌────────┐
  │SHA-256 │────>│SHA-256 │────> Hash Final
  │ Paso 1 │     │ Paso 2 │     (usado para minería,
  └────────┘     └────────┘      TXIDs, etc.)

Minería y SHA-256

La minería de Bitcoin es esencialmente un cómputo SHA-256 masivo y paralelo. Los mineros hashean cabeceras de bloque miles de millones de veces por segundo, incrementando el nonce y otros campos, buscando un hash que comience con suficientes ceros iniciales para satisfacer el objetivo de dificultad actual. La red global de Bitcoin realiza colectivamente en el orden de cientos de exahashes (10^18 hashes) por segundo.

Concepto erróneo común

SHA-256 a veces se confunde con el cifrado, pero el hashing y el cifrado son fundamentalmente diferentes. El cifrado es reversible con una clave (puedes descifrar el texto cifrado de vuelta al texto plano). SHA-256 es una función unidireccional — no hay clave ni manera de "deshashear" la salida de vuelta a la entrada. SHA-256 produce una huella digital de los datos, no un mensaje secreto.