miércoles, 1 de octubre de 2014

"Dificultad" en el minado de bitcoin.


Una función hash criptográfica es un tipo especial de función hash donde es prácticamente imposible recrear los datos de entrada en los que se basa el valor hash. Estos tipos de funciones hash son especialmente importantes en el mundo de firmas criptográficas. Las funciones hash se pueden usar para firmar documentos, contratos, mensajes, transacciones y cualquier otra cosa digitalmente a través de Internet. Con estos sistemas, es fácil averiguar la clave pública del firmante, pero la clave privada no está expuesta.



Ahora, ¿Qué es la "dificultad"? 

La dificultad es una medida de lo difícil que es encontrar un hash por debajo de un objetivo determinado.

La red Bitcoin tiene una dificultad por bloque global. Los bloques válidos deben tener un hash debajo de este objetivo. Las pools también tienen una cuota de establecimiento de un límite inferior para acciones dificultad específica del conjunto.

¿Con qué frecuencia cambia la dificultad a la red? 

Cada 2.016 bloques.

¿Cuál es la fórmula para la dificultad? 

dificultad = difficulty_1_target / current_target

(el objetivo es un número de 256 bits)

difficulty_1_target puede ser diferente para diferentes formas de medir dificultad. Tradicionalmente, se representa un hash donde los líderes de 32 bits son cero y el resto son uno (esto se conoce como "la dificultad de la piscina" o "pdiff"). El protocolo Bitcoin representa objetivos como un tipo de float a medida con una precisión limitada; como resultado, los clientes a menudo toman la dificultad Bitcoin aproximada basado en esto (esto se conoce como "bdiff").

¿Cómo se almacena en bloques de dificultad?
Cada uno puede almacenar bloques una representación llena (llamados "bits") para su objetivo real hexadecimal. El objetivo puede ser derivada de ella a través de una fórmula predefinida. Por ejemplo, si el objetivo embalado en el bloque es 0x1b0404cb, el objetivo es hexadecimal

0x0404cb * 2 ** (8 * (0x1b - 3)​​) = 0x00000000000404CB000000000000000000000000000000000000000000000000

Tenga en cuenta que el valor 0x0404cb es un valor firmado en este formato. El valor legal más grande para este campo es 0x7fffff. Para hacer que un valor más grande es necesario desplazar hacia abajo un byte completo. También 0x008000 es el valor válido más pequeño positivo.

No hay comentarios:

Publicar un comentario