Es fácil ver en redes sociales, webs o chats de manera continua la potencia computacional en la red Bitcoin por parte de los mineros. Pero estos resultados no son realmente la potencia que hay en total, ya que esto no posible saberlo con certeza y lo que se hace es una aproximación en función de una ecuación. En esta, la parte importante es la diferencia entre los bloques generados en las últimas 24h y los que se deberían obtener, junto con la dificultad de la red aplicada por Bitcoin.
Ecuación del hashrate
Desde la web de blockchain.com tenemos una formula para obtener este valor:
H = ((Br/Be) * D * 2 32) / T
Br = Bloques generados en 24h.
Be = Bloques estimados en 24h ((60/10) x 24) = 144.
D = Nivel de dificultad asignada.
T = Tiempo para generar un bloque en segundos (siempre 600)
Pasos para calcularlo uno mismo
Para esto es necesario buscar los valores Br y D, ya que el resto son valores conocidos.
Buscar el valor Br
Por medio de un explorador de Bitcoin, yo he usado el de blockchain.com, es posible encontrar este valor. Lo sacamos de la resta del bloque actual y el bloque que se ha generado a la misma hora hace exactamente 24h.
Br = ( Bloque actual – Bloque de hace 24h )
- Ejemplo de las 12:20 15/09/2020
- Bloque actual: 648397
- Bloque 24h: 648237
Br = ( 648397 – 648237 ) = 160
Explorador Bitcoin de blockchain.com donde buscar los bloques para la operación
https://www.blockchain.com/btc/blocks?page=1
Buscar el valor D
Desde el nodo de Bitcoin es posible averiguar la dificultad, pero también es sencillo buscarlo por alguna web que nos lo indique:
https://www.coinwarz.com/mining/bitcoin/difficulty-chart
Ejemplo de las 12:20 15/09/2020
D = 17345997805929
Aplicando la formula
H = ((Br/Be) * D * 2 32) / T
Br = 160
Be = 144
D = 17345997805929
T = 600
H = ((160/144) * 17345997805929 * 2 32) / 600 = 1,379638764 × 10 20= = 137,9638764 x 10 18 = = 137,96 EHs/sg
10 3 k kilo 10 6 M mega 10 9 G giga 10 12 T tera | 10 15 P peta 10 18 E exa 10 21 Z zetta 10 24 Y yotta |
Script para los aventureros
Ya de paso que hacía este artículo, también he aprovechado para crear un script que junto con un nodo de Bitcoin sea posible sacar este dato sin necesidad de buscar en ningún lado. Tarda unos 15sg en darnos el dato.
Cualquier sugerencia con el script es bienvenido, ya que no he pensado demasiado en optimizarlo o buscar la mejor manera de sacarlo.
https://github.com/blockmit/ScriptsBitcoin
Guardar archivo y asignarle permisos de ejecución. El resultado se verá algo así:
Finalizando
Este método es el que se usa de manera habitual para calcular el hashrate y es posible modificar esta ecuación para 12h, 6h, 48h o las horas que se quiera. Únicamente habría que modificar Br y Be según lo que vayamos a preferir.
Links de interés
Formula hashrate diario
https://www.blockchain.com/charts/hash-rate
Nivel dificultad en red Bitcoin
https://www.coinwarz.com/mining/bitcoin/difficulty-chart
Explorador Bitcoin
https://www.blockchain.com/btc/blocks?page=1
Github donde encontrar el código
https://github.com/blockmit/ScriptsBitcoin