Глоссарий

Криптографическая хеш-функция

Сложность: средняя

Криптографические хеш-функции производят хеш-значение фиксированного размера из входных данных транзакции переменного размера.

Что такое криптографическая хеш-функция?

Криптографическая хеш-функция - это алгоритм, то есть повторяющаяся последовательность определенных действий, которую можно использовать для преобразования произвольной строки данных переменной длины в строку фиксированной длины и формата, называемую хешем.

Один из самых простых примеров хеш-функции - сложение цифр в числе до тех пор, пока на выходе не останется одна цифра. Если, к примеру, на входе у нас число 49, то при сложении 4 и 9 получается 13, цифры 1 и 3 которого снова суммируются, и на выходе получается 4. Независимо от длины входного числа, на выходе всегда будет одна цифра.

Однако это не очень хороший алгоритм, потому что, чтобы выполнять свою функцию хорошо, хеш-функция должна обладать несколькими характеристиками:

  • Должно быть легко вычислить выход функции для любого заданного входа, но почти невозможно обратить процесс вспять и вычислить вход из известного выхода;
  • Детерминизм — подача определенного входного сигнала в алгоритм должна всегда давать один и тот же выход;
  • Устойчивость к коллизиям — два разных входа должны с очень малой вероятностью давать одинаковый выход;
  • Эффект лавины — изменение даже одного бита данных на входе должно привести к сильно отличающемуся выходу.

У хеш-функций множество сфер применения, например, в качестве контрольных сумм для проверки целостности компьютерных файлов после передачи или длительного хранения, или в функциях рандомизации.

Они также являются ключевым компонентом в майнинге proof-of-work криптовалют, таких как Bitcoin (BTC), который использует хеш-функцию SHA-256. Для того чтобы добавить новый блок в блокчейн и получить вознаграждение в виде только что добытого Биткойна, майнерам сначала нужно произвести хеш-значение ниже определенного целевого порога.

Тот факт, что хеши являются псевдослучайными, а предсказать выход любого входного сигнала до его реального прогона через хеш-функцию невозможно, гарантирует, что майнеры не могут печатать новые Биткоины из воздуха и должны доказывать выполненную ими работу.