Как соотносятся одноразовый номер и сложность?

Доброе утро,

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

i) Как изменить сложность одноразового номера, чтобы приспособиться к уровню доступной вычислительной мощности? Каков механизм, который проверяет, должно ли это произойти и как?

ii) Что может помешать майнеру, разбирающемуся в коде, изменить сложность сгенерированного одноразового номера на что-то более простое, чтобы именно он разместил блок в блокчейне и выиграл добытые монеты?

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

Ответы (2)

Сложность в Биткойне выражается в том, что хэш заголовка блока Биткойн должен быть численно меньше определенной цели. Эта целевая сложность сбрасывается каждые 2016 блоков до четырехкратного увеличения или уменьшения. Таким образом, сложность регулируется таким образом, чтобы средний хешрейт, доступный в последних блоках 2016 года, потребовал бы около 14 дней для майнинга блоков 2016 года. Например, если бы блоки 2016 года занимали 10 дней вместо 14, сложность увеличилась бы в 1,4 раза.

Одноразовый номер — это средство для быстрого перебора множества кандидатов в блоки одного и того же шаблона блока, тогда как дополнительный одноразовый номер — это средство для быстрого внесения небольшого изменения в шаблон блока. Каждый раз, когда хэшируется новый блок-кандидат, результат совершенно непредсказуем, поэтому в конечном итоге один блок-кандидат будет соответствовать требованиям сложности. Когда это происходит, успешный майнер транслирует новый блок в сеть.

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

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

Здесь есть некоторая информация .

Ничто не мешает майнеру локально изменить сложность блока, который он добывает, но такой блок просто не будет принят другими узлами Биткойн.