Что такое хеширование?
Криптографическая хеш-функция — это детерминированный алгоритм h:{0,1}∗→{0,1}n, который переводит вход произвольной длины (байтовую строку) в выход фиксированной длины — дайджест (hash value). Детерминированность означает: одно и то же кодирование входа даёт один и тот же дайджест. В протоколах блокчейна дайджест рассматривается как обязательство (commitment): любое изменение протокольно значимых байтов меняет дайджест.
Криптографическая стойкость выражается вычислительными (computational) ограничениями. Типовые цели: • Стойкость к нахождению прообраза (preimage resistance): по дайджесту y вычислительно нецелесообразно найти x такое, что h(x)=y. • Стойкость ко второму прообразу (second-preimage resistance): по известному входу x вычислительно нецелесообразно найти x′=x с тем же дайджестом. • Коллизионная стойкость (collision resistance): вычислительно нецелесообразно найти две различные входные строки x и x′ с одинаковым дайджестом. «Нецелесообразно» означает отсутствие известных практических способов атаковать в реалистичных ресурсных рамках.
1) Связывание (chain linkage): заголовки блока содержат поле — хеш предыдущего заголовка. Если меняется хотя бы один байт заголовка, вычисленный хеш перестаёт совпадать, а подмена становится обнаружимой при пересчёте. 2) Фиксация транзакций: множество транзакций суммируется в корень дерева Меркла (Merkle root) — он включается в заголовок. Доказательство Меркла (Merkle proof) позволяет лёгкому клиенту проверить, что конкретная транзакция входит в множество, зафиксированное корнем, без загрузки полного блока.
| Аспект | Хеширование | Шифрование |
|---|---|---|
| Главная цель | Целостность / фиксация | Конфиденциальность (часто + целостность в AEAD) |
| Обратимость | Односторонне по замыслу | Обратимо с правильным ключом |
| Ключи | Не требуются для базового хеша | Требуются для симметричного; pk/sk для асимметричного |