Skip to content
Иллюстрация показывает данные, преобразованные алгоритмом SHA-256 в цифровой отпечаток и связанные хешами блоки.

Что такое хеширование в блокчейне: как работают SHA-256 и криптографические хеши?

Разбираем криптографические хеши и SHA-256: как они превращают данные в отпечаток и зачем нужны в заголовках блоков и дереве Меркла Bitcoin.

Василий Смирнов 19.10.2026, 20:46 Время прочтения статьи: 4 мин

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

Коротко: что делает хеш

  • Принимает данные и вычисляет дайджест фиксированной длины.
  • Даже небольшое изменение входа обычно даёт совсем иной результат.
  • Одинаковые входные байты и алгоритм дают одинаковый хеш.
  • Для криптографически стойкой функции трудно найти вход по хешу или два разных входа с одним отпечатком.
  • Хеш — не шифр: для него нет ключа обратной расшифровки.

Как устроено хеширование

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

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

Что такое SHA-256

SHA-256 принадлежит семейству SHA-2 и выдаёт 256 бит, то есть 32 байта. Для чтения двоичный результат часто записывают 64 шестнадцатеричными знаками. Например, SHA-256 текста abc равен ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad. При одинаковых входных байтах и кодировке разные реализации вычислят тот же результат.

Алгоритму безразлично, что ему передали: файл, транзакцию или заголовок блока. Важно точное представление данных в байтах. Пробел, регистр, перенос строки или кодировка могут изменить хеш.

Как хеши используются в Bitcoin

Заголовок блока содержит хеш предыдущего заголовка. Изменение старого блока меняет его отпечаток и нарушает связь со следующим блоком. Транзакции также сводятся в дерево Меркла: пары хешей объединяются и хешируются до корневого значения, которое записано в заголовке.

Bitcoin применяет двойной SHA-256 к заголовкам и при построении дерева Меркла. Во время майнинга меняют nonce и другие допустимые поля, пока хеш заголовка не окажется ниже целевого порога. Остальные узлы быстро проверяют результат и независимо проверяют правила блока. Удачный хеш не заменяет проверку транзакций и не делает недействительный блок правильным.

Подробнее читайте в нашем разборе устройства блокчейна, статье об основах Bitcoin и материале о майнинге и стейкинге.

Хеширование — не шифрование

Свойство Хеширование Шифрование
Цель Получить отпечаток данных Скрыть данные без подходящего ключа
Результат Фиксированная длина Зашифрованный текст, зависящий от сообщения и режима
Обратимость Практически односторонняя функция Можно расшифровать подходящим ключом
Пример Проверка целостности и структуры блока Конфиденциальная передача или хранение

Какие свойства важны

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

Для идеальной 256-битной функции поиск любого совпадения методом дней рождения требует порядка 2128 случайных попыток, а не 2256. Это теоретическая оценка, а не гарантия для каждого программного применения. В системах важны точное представление данных, подписи, ключи и способ использовать функцию.

Можно ли взломать SHA-256

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

Хеширование паролей — другая задача. Быстрый SHA-256 не следует использовать самостоятельно для хранения паролей: специализированные алгоритмы применяют соль и замедление. Адреса и подписи Bitcoin также сложнее, чем просто «хеш кошелька». Никогда не публикуйте секретные ключи и seed-фразы.

Частые вопросы

Почему SHA-256 всегда одной длины?

Алгоритм определяет выход в 256 бит независимо от размера входа в пределах стандарта.

Можно ли расшифровать хеш?

Нет. Можно проверять догадки, вычисляя их хеши, если данные можно перебрать.

Зачем блоку хеш предыдущего блока?

Он связывает последовательность: изменение прошлого блока меняет его хеш и нарушает ссылку в следующем, поэтому пришлось бы пересчитать последующие доказательства работы.

Bitcoin везде использует SHA-256?

SHA-256 применяется для заголовков и дерева Меркла; для других частей протокола используются иные криптографические операции. Не каждый тип подписи сводится к SHA-256.

Источники

Комментарии

Также читайте