Вы спросите почему не хэшировать только sha256? Зачем еще hmac какой-то приплели? Тут я сам не очень
понимаю в чем подвох, но смысл такой, что sha256 - блочный алгоритм хэширования и из-за этого обладающий
проблемами при хэшировании вот таких вот кусков, где одна часть известна. Эту проблему с некоторых пор
даже в биткойне заметили. Асик-буст как раз на этом построен.
Не совсем так. sha256 "хеширует" (да простит меня Лобачевский), вычисляет новое большое по определенному алгоритму. Входящее сообщение бьется на блоки по 64 байта (8х8 бит), котрые сами по себе представляют int. Затем происходит сложение/умножение по модулю int каждого такого числа, но 64 раза. В итоге получем на выходе ряд чисел (8х

которые и дают нам хэш.
АсикБус немного по-другому работает и устроен то по другому. Он что-то сродни вот этой вот штуки:
https://en.bitcoin.it/wiki/Mini_private_key_format