если объявление о добыче биткойнов имеет длину всего 32 бита, почему становится все труднее найти выигрышный хэш? [дубликат]

Я изучаю майнинг, и первое, что меня удивило, это то, что часть анонса алгоритма, которая должна зацикливаться случайным образом, пока вы не получите число меньше целевого хэша... имеет длину всего 32 бита. Можете ли вы объяснить, почему тогда так сложно зациклить unsigned int и почему со временем это становится все труднее? Спасибо.

Изменить: было высказано предположение, что это дубликат, но это не так. Другой вопрос спрашивал, можете ли вы исчерпать заявления, это не имеет ничего общего с моим вопросом. Мой вопрос о сложности хеширования тех же самых 4 миллиардов беззнаковых циклов ввода int.

Краткий ответ: с высокой вероятностью ни один из этих 2^32 одноразовых номеров не приведет к хэшу, меньшему, чем цель. Затем вы меняете что-то еще в заголовке блока и пробуете снова. Например, вы можете увеличить число в транзакции coinbase, что приведет к новому значению хэша «корень Меркла» в заголовке блока. Чем меньше цель, тем больше раз вам, вероятно, придется сделать это, прежде чем вы добьетесь успеха.
@NateEldredge Похоже, вы говорите, что вам на самом деле не нужно менять объявление, поскольку есть вероятность, что ни одно из 4 миллиардов различных значений не может привести к выигрышному хешу. Что делает тогда действительный «исходный материал» для хеширования при попытке найти правильный ответ? если вы можете указать мне на обновленную литературу об этом, я приму это как правильный ответ. Спасибо
Нет, я этого не говорю. Что вам нужно, так это действительный 80-байтовый заголовок блока, чей хэш меньше целевого значения. Таким образом, вы должны продолжать менять что-то в заголовке, пока не найдете что-то, что приведет к выигрышному хешу. Легче всего изменить одноразовый номер, поэтому вы исправляете все остальное, а затем пробуете все возможные одноразовые номера. Если вам повезет, то один из них сработает, и вы выиграете. Если нет, что происходит в большинстве случаев, тогда вы меняете что-то еще в заголовке и пробуете все одноразовые номера для обновленного заголовка. Повторяйте бесконечно, пока не выиграете.
Нет необходимости в «обновленной» литературе; формат блока и алгоритм хеширования не претерпели существенных изменений с момента первоначального появления Биткойна. Всегда было возможно, что, если все остальное в заголовке исправлено, ни один из 2^32 возможных одноразовых номеров не выиграет, и этот случай всегда нужно было обрабатывать; это уже происходит примерно в 36% случаев даже на минимальной сложности.

Ответы (1)

Труден не цикл, а создание хэша для каждой итерации этого цикла. Кроме того, как указал @Nate, майнеру, вероятно, придется изменить больше, чем просто одноразовый номер. По мере того, как из сети поступает больше транзакций, майнер будет добавлять/заменять их в блоке, который он хеширует, предположительно, исходя из максимизации комиссии за транзакцию. Каждый раз, когда набор транзакций изменяется, все опробованные одноразовые номера могут быть опробованы снова.

Что касается того, почему со временем становится все труднее, это основная часть протокола. Каждые 2016 блоков целевой хэш перенастраивается, так что создание блоков занимает около 10 минут. Чем больше вычислительной мощности поступает в сеть, тем быстрее обнаруживаются блоки, что, в свою очередь, вызывает перенастройку после 2016 блоков.

Вы говорите, что целевой хэш корректируется каждые 2016 блоков, это 2016 транзакций в сети? И: перенастроили как? как в: пересчитано, поэтому все ранее рассчитанные отказы нужно повторить?
@Pol, если вы не уверены в блоке и транзакции, никому будет трудно дать вам удовлетворительный ответ на ваш вопрос. Я рекомендую читать немного больше. Вот отличное место для начала, и оно должно дать вам контекст, необходимый для понимания этих ответов: bitcoin.stackexchange.com/questions/148/what-exactly-is-mining .
Согласен, плюс есть вопрос, который уже соответствует моим опасениям. Спасибо за вашу помощь.