4. Prueba de trabajo

Para implementar un servidor de marca de tiempo distribuido de igual a igual, necesitaremos utilizar un sistema de prueba de trabajo similar al Hashcash de Adam Back[6], en lugar de publicaciones de periódicos o Usenet.

La prueba de trabajo implica buscar un valor que, cuando se aplica un hash, como con SHA-256, el hash comienza con una cantidad de bits cero. El trabajo promedio requerido es exponencial en la cantidad de bits cero requeridos y se puede verificar ejecutando un único hash.

Para nuestra red de marca de tiempo, implementamos la prueba de trabajo incrementando un nonce en el bloque hasta que se encuentra un valor que le da al hash del bloque los cero bits requeridos.

Una vez que se ha invertido el esfuerzo de la CPU para satisfacer la prueba de trabajo, el bloque no se puede cambiar sin rehacer el trabajo. Como los bloques posteriores se encadenan después de él, el trabajo para cambiar el bloque incluiría rehacer todos los bloques posteriores.

La prueba de trabajo también resuelve el problema de determinar la representación en la toma de decisiones por mayoría. Si la mayoría se basara en una dirección IP, un voto, cualquiera que pudiera asignar muchas IP podría subvertirla.

La prueba de trabajo es esencialmente una CPU, un voto. La decisión mayoritaria está representada por la cadena más larga, que tiene el mayor esfuerzo de prueba de trabajo invertido en ella.

Si la mayor parte de la potencia de la CPU está controlada por nodos honestos, la cadena honesta crecerá más rápido y superará a cualquier cadena competidora.

Para modificar un bloque anterior, un atacante tendría que rehacer la prueba de trabajo del bloque y todos los bloques posteriores y luego alcanzar y superar el trabajo de los nodos honestos.

Más adelante mostraremos que la probabilidad de que un atacante más lento se ponga al día disminuye exponencialmente a medida que se agregan bloques posteriores.

Para compensar el aumento de la velocidad del hardware y el interés variable en ejecutar nodos a lo largo del tiempo, la dificultad de la prueba de trabajo está determinada por un promedio móvil dirigido a una cantidad promedio de bloques por hora. Si se generan demasiado rápido, la dificultad aumenta.

#BinanceSquare

#BTC

#BitcoinWorld

#uniswap

#ftx