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

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

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

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

Ключевые свойства криптографического хеша

  • детерминированность результата;
  • быстрое вычисление для допустимого входа;
  • сложность восстановления исходных данных;
  • сложность поиска коллизий;
  • сильная чувствительность результата к изменению входных данных.

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