Майнеры находят блоки случайным образом, но также пропорционально хешрейту майнера. Как я могу лучше всего предсказать и выразить этот «шанс» для майнинг-пула?
Например, если F2Pool имел 10% общего хэшрейта майнинга за последнюю неделю, имеет ли смысл говорить, что они, вероятно, найдут 10% блоков, движущихся вперед?
Как лучше всего выразить это понятие? Я хотел бы иметь возможность сказать что-то вроде:
«У F2Pool есть 10% шанс найти следующий блок в течение следующих 10 минут, и он приближается к 100% после 10 блоков. То есть у F2Pool очень хороший шанс найти хотя бы один блок в течение следующих 100 минут».
Очевидно, никогда не бывает 100% шанса найти блок среди следующих x блоков, так как же принято указывать число, но также с оттенком «а может, никогда?»
Есть ли API или библиотека, которую я могу использовать, чтобы вычислить/узнать эти значения «шанса» с течением времени для каждого майнинг-пула?
Например, если F2Pool имел 10% общего хэшрейта майнинга за последнюю неделю, имеет ли смысл говорить, что они, вероятно, найдут 10% блоков, движущихся вперед?
Если предположить, что многие майнеры не переключатся, то да.
«У F2Pool есть 10% шанс найти следующий блок в течение следующих 10 минут, и он приближается к 100% после 10 блоков. То есть у F2Pool очень хороший шанс найти хотя бы один блок в течение следующих 100 минут».
Вы задаете здесь два совершенно разных вопроса.
Вы можете найти следующий квартал через одиннадцать минут. Вы можете найти блок за пять минут, опираясь на блок, обнаруженный четыре минуты назад.
Это довольно просто. Если у вас есть 10% хэшрейта, вероятность того, что вы его найдете, равна 0,1. Если у вас есть p доля хешрейта, есть вероятность (1-(1-p)^n)
, что вы найдете блок в следующих n блоках. Для 10% хешрейта и 10 блоков это шанс 65%. Далеко не наверняка.
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
Обнаружение блоков следует распределению Пуассона . Распределение Пуассона представляет собой набор независимых событий, где одно событие не влияет на его возникновение в будущем.
Мы хотим знать шансы k блоков быть найденными кем-либо за десятиминутный период, когда в среднем 1 блок каждые десять минут. В Википедии уже есть таблица для нас :
k P(k)
0 0.368
1 0.368
2 0.184
3 0.061
4 0.015
5 0.003
6 0.0005
Но это не совсем то, что нам нужно — если найдено десять блоков, вероятность того, что один из них наш, гораздо больше, чем если бы был найден один блок. Умножьте на приведенное выше выражение и подставьте k вместо n и 0,1 (наша доля хешрейта) вместо 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
Подведите итог последней колонке. Мы получаем вероятность 9,49%, то есть вероятность того, что вы получите хотя бы один блок в течение следующих десяти минут, если у вас есть 10% хешрейта. Но это не означает, что есть 95% шанс получить блок за десять минут при 100% хешрейта. Это не линейно. Если у вас 100% хешрейта:
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
...тогда у вас есть шанс 63,2% получить блок в течение следующих десяти минут, если у вас есть вся вычислительная мощность.
(Наши расчеты занижены примерно на одну двадцатую процента, потому что мы не рассматривали случаи, подобные k = 7. Но я полагаю, что это хорошее приближение.)
«У F2Pool есть 10% шанс найти следующий блок в течение следующих 10 минут, и он приближается к 100% после 10 блоков. То есть у F2Pool очень хороший шанс найти хотя бы один блок в течение следующих 100 минут».
Ник уже говорил об этом, но я хотел бы отметить, что мне кажется, что вы неправильно понимаете что-то очень фундаментальное в статистике: когда вы подбрасываете монету, ожидаемый шанс выпадения решки составляет 50%. Ваше заявление выше звучит так, как будто вы говорите, что два подбрасывания монеты будут иметь 100%-ную вероятность получения одного результата решки. -- Однако это неправда.
Очевидно, что при двух подбрасываниях монеты вы можете получить любой из четырех результатов: TT
, TH
, HT
, или HH
. Это означает, что есть 25% шанс получить две решки, 50% шанс получить одну решку и 25% шанс не получить решку. Если вы имели в виду «хотя бы один блок», то для нашего примера это будет 75%, а не 100%.
В переводе на обнаружение блокировки это означает следующее:
Таким образом, ваш шанс найти ровно один блок за 100 минут с 10% хешрейта имеет то же распределение Пуассона, что и найти ровно один блок за 10 минут с 100% хешрейта. То, что вы пытаетесь открыть только один блок из десяти, не имеет никакого значения!
Ваш шанс найти ровно 1 блок за время, в течение которого вы должны были бы найти один блок, составляет 36,8% (см. также таблицы Ника), а шанс найти хотя бы один блок — 63,2%.
Просто потому, что я пропустил это, когда впервые прочитал ответ Ника: обратите внимание, что ваш шанс найти один блок из следующего n
отличается от вашего шанса найти блок в то время, когда n
блоки ожидаются.
Марч
Ник Оделл
Марч