Blockchain - Prueba de trabajo
Como todas las transacciones tienen marca de tiempo, necesitamos implementar un servidor de marca de tiempo distribuido en una red peer-to-peer. Esto requiere una implementación adicional y esa es la Prueba de trabajo que describiré ahora. A cada bloque, ahora agregamos un elemento más llamadoNonce como se muestra en la figura siguiente -
Nonce es un número tal que el hash del bloque cumple un cierto criterio. Este criterio podría ser que el hash generado debe tener sus cuatro dígitos iniciales para ser cero.
Por lo tanto, el hash generado se vería como 000010101010xxx. Generalmente, el minero comienza con un valor de Nonce de 0 y continúa incrementándolo hasta que el hash generado cumple con el criterio especificado.
Tenga en cuenta que la generación de hash funciona de forma aleatoria y está fuera de su control, es decir, no puede forzar la función hash para generar un determinado hash. Por lo tanto, pueden pasar varias iteraciones hasta que se genere el hash deseado con cuatro ceros a la izquierda. El tiempo esperado para generar un bloque en el sistema bitcoin es de 10 minutos. Una vez que el minero extrae con éxito el bloque, lo libera en el sistema, lo que lo convierte en el último bloque de la cadena.
Tenga en cuenta que hay varios mineros compitiendo para generar el bloque legítimo. El sistema Bitcoin premia al primer minero exitoso dándole ciertos bitcoins. En general, el minero con más potencia informática puede ser uno de los primeros ganadores. Esto puede causar ataques a todo el sistema por parte de aquellos que poseen una gran capacidad de procesamiento. Describiré los ataques y cómo se mitigan hacia el final de este tutorial.