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

В общем да. Ещё связано с тем, что sha256 - блочный алгоритм. То есть на первом проходе
отдельно и по сути параллельно хэшируются первые 64 байта заголовка блока и отдельно
оставшиеся 16 (я по памяти, лень искать).
Помог бы в этом случае HMAC куда-нибудь засунутый - не знаю. Скорее всего помогло бы иное
построение заголовка блока - чтобы, например, merkle-hash и hash предыдущего блока шли
бы не друг за другом, а "расческой" - то есть байт от одного, байт от другого...
И в мыслях не было, просто поделился своим предположением

Бес меня попутал с этими бустами, мог бы сам догадаться, знаю же про блочность sha256 и про то что при хешировании уникальную соль следует перед паролями ставить именно из-за этого, но подумалось что могли что-то похитрее откопать. Да, в 256-битной версии блок как раз 64 байта.
Наверно HMAC бы не помог, не туда меня понесло. Данные в 64-байтном блоке редко меняются, поэтому буст останется и после "расчёсывания". Возможно эффективнее было бы изменить порядок заголовков при расчёте хеша, чтобы в 64 байта попадал перебираемый nonce.