Всегда ли можно найти одноразовый номер для целевого хэша? - PullRequest
2 голосов
/ 09 ноября 2019

Мне было интересно, всегда ли можно найти одноразовый номер во время майнинга блока в блокчейне для целевого хэша? Потому что раз, будучи макс. 32 бита, может иметь только 2 ^ 32 различных возможных значений. Что если мы не получим наш целевой хеш для любого nonce?

Ответы [ 2 ]

3 голосов
/ 10 ноября 2019
  1. Измените метку времени блока, вот практика Ntime Rolling . Но этого сейчас недостаточно, поскольку блок не будет принят, если его временная метка не находится в периоде (около 3 часов), см. отметка времени .

  2. Добавьте / удалите некоторые транзакции или измените порядок транзакций, если они все еще находятся в топологическом порядке (если транзакция A проводит один из выходных данных транзакции B, то B должен предшествовать A в списке транзакций)

  3. Изменить транзакцию с монетами. Превалирующий скрипт coinbase txinput представляет собой произвольный байтовый массив от 2 до 100 байтов. Этот скрипт не будет выполнен, поэтому вы можете поместить любые данные, которые вы хотите. Обратите внимание, что он должен начинаться с байта правильного толчка высоты блока, см. bip34 .

Таким образом, вы можете сказать, что всегда можно найтиДействительный одноразовый номер с сочетанием всех перечисленных выше.

1 голос
/ 10 ноября 2019

В настоящее время одноразовый номер - это всего лишь 1 часть, которая модифицируется для генерации хеша блока. Как вы указали, поскольку одноразовый номер составляет всего 32 бита, с сегодняшними трудностями недостаточно создать правильный хеш-код блока. Поэтому майнеры также могут модифицировать транзакцию на основе монеты (иногда называемую extranonce), версию блока, дерево меркла и временную метку блока. Смотрите также ASIC BOOST .

...