Definición de la prueba de trabajo

Bitcoin utiliza el sistema de prueba de trabajo hash para generar bloques que los mineros de bitcoin deben abordar.

La prueba de trabajo resultante es un dato que es difícil de producir en términos de tiempo y dinero con mucho ensayo y error involucrado, pero es fácil de verificar para otros de acuerdo con los requisitos predeterminados. En bitcoin, el sistema de prueba de trabajo se llama Hashcash.

Más sobre Hashcash

Bitcoin utiliza pruebas de trabajo hashcash para generar nuevos bloques. Estos bloques son aceptados por los participantes de la red después de que los mineros hayan completado una prueba de trabajo para cubrir todos los datos del bloque. El ritmo de generación de nuevos bloques debe ser controlado por la red. Esto se hace ajustando automáticamente el nivel de dificultad cada 1-10 minutos. La probabilidad de que un ordenador trabajador genere el siguiente bloque es siempre baja, por lo que es difícil predecir qué minero generará el siguiente bloque.

Validación de bloques

Los bloques válidos tendrán un hash de un valor menor que el objetivo actual una vez completado el trabajo. Dado que cada bloque contiene el hash del bloque anterior, un bloque es en realidad una cadena de bloques que contienen una gran cantidad de trabajo. La modificación de un bloque -que sólo puede hacerse creando un nuevo bloque con su predecesor- requiere regenerar todos los sucesores y rehacer el trabajo que contienen, protegiendo así la blockchain de la manipulación.

El esquema de prueba de trabajo más utilizado se basa en SHA-256. Otros algoritmos de hashing son Scrypt, Blake-256, CryptoNight, HEFTY1, Quark, SHA-3, scrypt-jane, scrypt-n, y otros.

Ejemplos de pruebas de trabajo

Si la cadena base sobre la que hay que trabajar es “¡Hola, mundo!” el objetivo será encontrar una variación de la misma para que el hash SHA-256 dé un valor que empiece por $0027000$0027. La cadena se variará añadiendo un valor entero al final (llamado nonce) y sumándolo cada vez.

Encontrar una coincidencia para “¡Hola, mundo!” llevaría 4.251 intentos con ceros en los primeros cuatro dígitos:

“¡Hola, mundo!0” => 1312af178c253f84028d480a6adc1e25e81caa44c749ec81976192e2ec934c64

“¡Hola, mundo!1” => e9afc424b79e4f6ab42d99c81156d3a17228d6e1eef4139be78e948a9332a7d8

“¡Hola, mundo!2” => ae37343a357a8297591625e7134cbea22f5928be8ca2a32aa475cf05fd4266b7

“¡Hola, mundo!4248” => 6e110d98b388e77e9c6f042ac6b497cec46660deef75a55ebc7cf65cc0b965

“¡Hola, mundo!4249” => c004190b822f1669cac8dc37e761cb73652e7832fb814565702245cf26ebb9e6

“¡Hola, mundo!4250” => 0000c3af42fc31103f1fdc0151fa747ff87349a4714df7cc52ea464e12dcd4e9

4251 hashes en un ordenador no es mucho trabajo ya que la mayoría de los ordenadores pueden alcanzar al menos 4 millones de hashes por segundo. La dificultad de la prueba de trabajo varía, y se establece automáticamente para mantener un flujo constante de generación de bloques. Una prueba de trabajo real de bitcoin es más compleja que el ejemplo anterior, incluyendo la transacción de generación que da al minero un incentivo para hacer el trabajo y se asegura de que cada minero hace un hash de un conjunto de datos único.

Lista de algoritmos

Prueba de trabajo tradicional

  1. Hashcash con doble iteración SHA256
  2. Hashcash con hash interno scrypt
  3. Colisión de cumpleaños de momento
  4. Cuckoo Cycle proof of work https:/github.comtrompcuckoo
  5. Varias otras funciones de prueba de trabajo (por ejemplo, Ethereum tenía algunos candidatos)

Prueba de X

  1. Prueba de estaca
  2. Prueba de la Quema

Consenso

  1. Protocolo de consenso estelar

Deja un comentario