Перезапуск майнинга при новой транзакции

Я понял, что когда приходит новая транзакция, майнеры должны начать все сначала или, по крайней мере, изменить свое дерево Меркла, чтобы включить новую транзакцию, по сути, снова начиная с нуля.

Если я посмотрю транзакции в реальном времени на https://blockchain.info/ , как майнеры вообще могут создать блок, если перерыва нет?

Если вы не определите перерыв как несколько микросекунд, и поскольку каждую секунду вы можете вычислить, я думаю, миллиарды возможных хэшей, мне все еще трудно понять, как новый блок «выбирается» или проверяется в понятных человеку терминах.

Каждый новый хэш имеет одинаковую вероятность успеха, независимо от того, является ли он первым хэшем, который был опробован в данном блоке, или были миллионы до этого. «Перезапуск» не имеет смысла; в любом случае вы фактически «перезапускаете» миллиарды раз в секунду, поэтому практически ничего не теряется при обновлении заголовка новой транзакцией.
@NateEldredge Допустим, вы попробовали 1000 одноразовых номеров, но не нашли блок, поэтому вы знаете, что эти 1000 одноразовых номеров не таковы, по крайней мере, для текущего блока. Но если что-то изменится (т.е. хэш), то это должно начаться сначала в том смысле, что у вас есть не 1000 известных неверных одноразовых номеров, а 0. Но я думаю, что понимаю вашу точку зрения, что с точки зрения вероятности не так уж много разница.
Неа. Я говорю, что разницы ноль . Знать 1000 неработающих одноразовых номеров — бесполезная информация ; это не имеет абсолютно никакого отношения к вероятности того, что следующий одноразовый номер сработает. Обратите внимание, что нет никакой гарантии, что любой одноразовый номер вообще работает; вы могли бы попробовать все, кроме одного, из 2^32 возможных одноразовых номеров для блока, и вероятность того, что последний сработает, остается такой же, как и для первого, который вы пробовали: 1 дюйм (сложность * 2^32). (Действительно, для любого заданного блока крайне маловероятно, что какое- либо из 2^32 возможных значений nonce сработает.)
Рассмотрим следующий мысленный эксперимент. У меня есть красный кубик с миллиардом граней. Я бросаю его и прошу вас угадать число. Если ты прав, ты выиграл. Если нет, я бросаю еще раз и прошу угадать новое число. Поскольку мы перебрасываем каждый раз, наличие 1000 неправильных ответов не увеличивает и не снижает ваши шансы на следующий бросок. И если после 1000 розыгрышей я выброшу красный кубик и начну использовать зеленый кубик с миллиардом граней, вы не потеряете никакого «прогресса».
Если диапазон одноразовых номеров составляет, скажем, 1-1000000 (я думаю, в биткойнах есть верхний предел?), то ваша вероятность увеличивается на вероятность, если вы понимаете, что я имею в виду. Я понимаю, что возможно, что nonce вообще не работает, но тогда вы приближаетесь к использованию extraNonce или, возможно, сложность уменьшается?
Нет! Поведение хеш-функции таково, что каждый новый использованный одноразовый номер представляет собой новый бросок кости. «Начать заново» ничего не стоит , потому что нет прогресса , который можно было бы потерять.
@NateEldredge, хорошо, но в этом хотя бы эксперименте мы не можем дважды бросить одну и ту же сторону костей, потому что вы знаете, что это не был ответ. Но я предполагаю, что вы имеете в виду, что с костями у вас нет выбора. Но я спрашиваю вас с одноразовым номером вы делаете правильно? Или вы имеете в виду, что бросаете эти кости раз за разом?
@NateEldredge, хорошо, кажется, я понимаю, что ты имеешь в виду. Таким образом, по существу «перезапуск» майнинга не имеет значения, использование одного и того же одноразового номера с другим хэшем бесполезно и не имеет никакого отношения к его результату. (Но в то же время попытки использовать один и тот же одноразовый номер снова и снова для одного и того же хэша, очевидно, ничего не изменят. Но каждый раз, когда вы используете другой одноразовый номер, это сбрасывает ваши шансы)

Ответы (2)

Майнинг основан на вычислениях, но он не постоянный, а случайный. По сути, каждый вычисленный хэш генерирует случайное число. Если случайное число меньше целевого, можно создать блок. Вероятность того, что какой-то отдельный хеш будет достаточно низким, ничтожно мала (у вас больше шансов выиграть в лотерею несколько раз подряд), но именно поэтому вам нужно вычислить много хэшей. Фактическое дерево Меркла не имеет значения, если само дерево действительно. Майнеры не обязаны включать все транзакции в мемпул, поэтому они обычно отправляют блоки всякий раз, когда находят действительный хэш.

Так что на самом деле обновления дерева меркла не имеют значения. На самом деле, это может быть полезно, так как есть больше одноразовых номеров, которые можно попробовать.

Не могли бы вы объяснить, чем это полезно, и как это означает, что нужно попробовать больше одноразовых номеров? Желательно с примером.

Майнеры выбирают, какие транзакции включать в свои блоки. Таким образом, им не нужно постоянно включать вновь поступившие транзакции в блоки, которые они пробуют. Они могут, если захотят, например, воспользоваться возможностью получения более высоких комиссий за транзакции, связанных с новыми транзакциями.