Почему майнеры увеличивают одноразовый номер для вычисления хэша блока, а не просто генерируют случайный хэш блока? Мне кажется, что оба подхода будут иметь одинаковую вероятность получения результата ниже целевого.
Если ответ заключается в том, что быстрее увеличить одноразовый номер, чем просто генерировать случайный хэш для получения действительного результата, не могли бы вы показать это математическим/статистическим способом?
Хеш-функция, используемая в биткойнах, является детерминированной, то есть хеширование одних и тех же входных данных, то есть заголовка блока, всегда приводит к одному и тому же результату. Это необходимо, чтобы другие также могли проверить действительность Proof-of-Work.
Это означает, что для вычисления нового хэша необходимо изменить входные данные хеш-функции. Самый простой способ изменить ввод — изменить одноразовый номер, поскольку это поле произвольной формы, которое может принимать любое значение. Другими способами изменить ввод являются, например, обмен транзакциями или изменение транзакции coinbase, что потребует пересчета корня merkle в заголовке. Отметка времени также является популярным выбором, однако ее значения ограничены допустимым диапазоном времени.
Если вам интересно, почему бы нам просто не перефразировать вывод предыдущей функции хеширования, чтобы получить следующее значение: это разрушит механизм проверки работоспособности, который требует легко проверяемого доказательства того, что эмитент выполнил какую-то работу. . Ключ здесь прост: если мы итеративно хешируем результаты предыдущего решения, то проверяющая сторона также должна будет выполнить эту работу, чтобы убедиться, что эмитент выполнил работу. при изменении ввода этого не происходит, поскольку при наличии ввода верификатор может выполнить одну операцию хеширования и проверить результат.
Гленн
cdecker
Гленн
cdecker
Гленн
Дэвид Шварц
Гленн
Дэвид Шварц
Гленн