Главная
ГлоссарийКриптографическая хеш-функция
Криптографическая хеш-функция
Криптографические хеш-функции производят хеш-значение фиксированного размера из входных данных транзакции переменного размера.
Что такое криптографическая хеш-функция?
Криптографическая хеш-функция - это алгоритм, то есть повторяющаяся последовательность определенных действий, которую можно использовать для преобразования произвольной строки данных переменной длины в строку фиксированной длины и формата, называемую хешем.
Один из самых простых примеров хеш-функции - сложение цифр в числе до тех пор, пока на выходе не останется одна цифра. Если, к примеру, на входе у нас число 49, то при сложении 4 и 9 получается 13, цифры 1 и 3 которого снова суммируются, и на выходе получается 4. Независимо от длины входного числа, на выходе всегда будет одна цифра.
Однако это не очень хороший алгоритм, потому что, чтобы выполнять свою функцию хорошо, хеш-функция должна обладать несколькими характеристиками:
- Должно быть легко вычислить выход функции для любого заданного входа, но почти невозможно обратить процесс вспять и вычислить вход из известного выхода;
- Детерминизм — подача определенного входного сигнала в алгоритм должна всегда давать один и тот же выход;
- Устойчивость к коллизиям — два разных входа должны с очень малой вероятностью давать одинаковый выход;
- Эффект лавины — изменение даже одного бита данных на входе должно привести к сильно отличающемуся выходу.
У хеш-функций множество сфер применения, например, в качестве контрольных сумм для проверки целостности компьютерных файлов после передачи или длительного хранения, или в функциях рандомизации.
Они также являются ключевым компонентом в
майнинге proof-of-work криптовалют, таких как Bitcoin (
BTC), который использует хеш-функцию
SHA-256. Для того чтобы добавить новый
блок в
блокчейн и получить
вознаграждение в виде только что добытого Биткойна, майнерам сначала нужно произвести хеш-значение ниже определенного целевого порога.
Тот факт, что хеши являются псевдослучайными, а предсказать выход любого входного сигнала до его реального прогона через хеш-функцию невозможно, гарантирует, что майнеры не могут печатать новые Биткоины из воздуха и должны доказывать выполненную ими работу.