¿Cómo puedo usar la distribución de hashrate para hacer inferencias sobre cuándo un grupo específico encontrará un bloque?

Los mineros encuentran bloques al azar pero también proporcionalmente al hashrate del minero. ¿Cómo puedo predecir y expresar mejor esta "oportunidad" por pool de minería?

Por ejemplo, si F2Pool ha tenido el 10 % del hashrate de minería total durante la última semana, ¿tiene sentido decir que probablemente encontrarán el 10 % de los bloques avanzando?

¿Cuál es la mejor manera de expresar la noción? Me gustaría poder decir algo como:

"F2Pool tiene un 10 % de posibilidades de encontrar el siguiente bloque en los próximos 10 minutos, y se acerca al 100 % después de 10 bloques. Es decir, F2Pool tiene muy buenas posibilidades de encontrar al menos un bloque en los próximos 100 minutos".

Obviamente, nunca hay un 100% de posibilidades de encontrar un bloque en los siguientes x bloques, entonces, ¿cuál es la forma aceptada de dar un número pero también con ese trasfondo de "o tal vez nunca?"

¿Hay una API o biblioteca que pueda usar para calcular/conocer estos valores de 'oportunidad' a lo largo del tiempo por grupo de minería?

Respuestas (2)

Por ejemplo, si F2Pool ha tenido el 10 % del hashrate de minería total durante la última semana, ¿tiene sentido decir que probablemente encontrarán el 10 % de los bloques avanzando?

Suponiendo que muchos mineros no cambien, sí.

"F2Pool tiene un 10 % de posibilidades de encontrar el siguiente bloque en los próximos 10 minutos, y se acerca al 100 % después de 10 bloques. Es decir, F2Pool tiene muy buenas posibilidades de encontrar al menos un bloque en los próximos 100 minutos".

Estás haciendo dos preguntas sutilmente diferentes aquí.

  1. ¿Encontraré el siguiente bloque?
  2. ¿Encontraré un bloque en los próximos diez minutos?

Podrías encontrar el próximo bloque, dentro de once minutos. Podrías encontrar un bloque en cinco minutos, construyendo sobre un bloque que fue descubierto hace cuatro minutos.

¿Encontraré el siguiente bloque?

Esto es bastante sencillo. Si tienes el 10 % del hashrate, hay una probabilidad de 0,1 de que lo encuentres. Si tiene una proporción p del hashrate, existe la probabilidad de (1-(1-p)^n)que encuentre un bloque en los próximos n bloques. Para una tasa de hash del 10 % y 10 bloques, esa es una probabilidad del 65 %. Lejos de ser una cosa segura.

p = 0.1
Blocks  Probability of you getting a block
0       0.00000
1       0.10000
5       0.40951
10      0.65132
30      0.95761
50      0.99485
100     0.99997

gráfico de probabilidad de que encontremos un bloque

¿Encontraré un bloque en los próximos diez minutos?

El descubrimiento de bloques sigue una distribución de Poisson . Una distribución de Poisson representa un grupo de eventos independientes, donde un evento que sucede no tiene efecto en que suceda en el futuro.

Queremos saber las probabilidades de que alguien encuentre k bloques en un período de diez minutos, cuando hay un promedio de 1 bloque cada diez minutos. Wikipedia ya tiene una tabla para nosotros :

k   P(k)
0   0.368
1   0.368
2   0.184
3   0.061
4   0.015
5   0.003
6   0.0005

Pero esto no es exactamente lo que necesitamos: si se encuentran diez bloques, hay muchas más posibilidades de que uno de ellos sea nuestro que si se encuentra un bloque. Multiplique por la expresión anterior y sustituya k por n, y 0.1 (nuestra proporción de hashrate) por p.

k   P(k)    P(k)*(1-(1-0.1)^k)
0   0.368   0.0000
1   0.368   0.0368
2   0.184   0.0350
3   0.061   0.0165
4   0.015   0.0052
5   0.003   0.0012
6   0.0005  0.0002
    Sum:    0.0949

Resuma la última columna. Tenemos una probabilidad del 9,49 %, que es la probabilidad de que obtenga al menos un bloque en los próximos diez minutos si tiene el 10 % del hashrate. Pero eso no significa que haya un 95 % de posibilidades de tener un bloque en diez minutos con el 100 % del hashrate. No es lineal. Si tienes el 100% del hashrate:

k   P(k)    P(k)*(1-(1-1.0)^k)
0   0.368   0.0000
1   0.368   0.3680
2   0.184   0.1840
3   0.061   0.0610
4   0.015   0.0150
5   0.003   0.0030
6   0.0005  0.0005
    Sum:    0.6315

...entonces tienes un 63,2 % de posibilidades de tener un bloque en los próximos diez minutos si tienes todo el poder hash.

(Nuestros cálculos son bajos en alrededor de un veinte por ciento, porque no consideramos casos como k=7. Pero creo que esta es una buena aproximación).

Tengo problemas para seguir su proceso de pensamiento en los tres últimos párrafos. Usted habla de tener muchas más posibilidades de encontrar uno de cada diez bloques, pero las tablas o los siguientes párrafos no parecen abordar eso.
@Murch He hecho algunas ediciones. ¿Te importaría echar un vistazo?
Ah sí, ahora me queda más claro. También he encontrado un error en mi propio proceso de pensamiento. ;)

"F2Pool tiene un 10 % de posibilidades de encontrar el siguiente bloque en los próximos 10 minutos, y se acerca al 100 % después de 10 bloques. Es decir, F2Pool tiene muy buenas posibilidades de encontrar al menos un bloque en los próximos 100 minutos".

Nick ya abordó esto, pero me gustaría señalar que me parece que estás malinterpretando algo muy fundamental sobre las estadísticas: cuando lanzas una moneda, la probabilidad esperada de obtener cruz es del 50 %. Su declaración anterior se lee como si estuviera diciendo que dos lanzamientos de moneda tendrían un 100% de posibilidades de producir un resultado de cruz. –– Eso no es cierto, sin embargo.

Obviamente, podría obtener cualquiera de los cuatro resultados para dos lanzamientos de moneda: TT, TH, HTo HH. Lo que significa que hay un 25 % de posibilidades de obtener dos cruces, un 50 % de posibilidades de obtener un cruce y un 25 % de posibilidades de no obtener un cruce. Si quisiera decir "al menos un bloque", sería una probabilidad del 75% para nuestro ejemplo, no del 100%.

Traducido a descubrimiento de bloques, esto significa lo siguiente:

  • La propagación y validación de bloques requiere muy poco tiempo, por lo que asumimos que siempre está trabajando en un bloque válido.
  • Encontrar bloques es completamente independiente de encontrar otros bloques.

Por lo tanto, su probabilidad de encontrar exactamente un bloque en 100 minutos con el 10 % de la tasa de hash tiene la misma distribución de Poisson que encontrar exactamente un bloque en 10 minutos con el 100 % de la tasa de hash. ¡Que solo estés tratando de descubrir un bloque de cada diez no tiene ninguna influencia!

Su probabilidad de encontrar exactamente 1 bloque en el período de tiempo en el que se esperaría encontrar un bloque es del 36,8 % (consulte también las tablas de Nick), y es del 63,2 % para encontrar al menos un bloque.


Solo porque me perdí eso cuando leí la respuesta de Nick por primera vez: tenga en cuenta que su probabilidad de encontrar un bloque del siguiente nes diferente de su probabilidad de encontrar un bloque en el período de tiempo en el que nse esperan bloques.