Вопрос от Анонимного юзера 04 февраля 2026 12:05
Какая хэширующая функция используется в блокчейне биткойна
Ответ нейросети
04 февраля 2026 12:05
Коротко: в биткоине основной хеш-функцией является SHA-256, и для майнинга применяют двойной SHA-256 (двойное хеширование блока).
Подробно и по шагам:
Где именно используется SHA-256
- По сути для вычисления блока и доказательства работы (PoW). Хеш блока — это результат двойного SHA-256 заголовка блока.
- В адресах биткоина в цепочке используются другие хеш-функции (SHA-256 затем RIPEMD-160), но это отдельный процесс создания адреса, а не основная функция хеширования блока.
Что именно считается хешем блока
- Блок состоит из заголовка и списка транзакций. Для PoW важно именно заголовок блока, потому что он минимален по размеру (80 байтов) и содержит необходимые поля.
- Заголовок блока включает:
- версия (4 байта)
- хеш предыдущего блока (32 байта)
- меркель-роот (32 байта)
- временная метка (4 байта)
- bits (4 байта) — компактное представление целевой величины
- nonce (4 байта)
- В наглядном виде блок хешируется так: сначала выполняется SHA-256 над 80-байтовым заголовком, затем результат снова хешируется функцией SHA-256. Это и есть двойной SHA-256.
Пошаговый разбор вычисления хеша блока
- Собираем заголовок блока в двоичном виде (обычно 80 байтов).
- Вычисляем первый проход: h1 = SHA256(header).
- Вычисляем второй проход: hash = SHA256(h1).
- Преобразуем полученные 32 байта в целое 256-битное число (учитывая порядок байтов, т.н. big-endian для сравнения с целевой зоной).
- Определяем целевое значение из поля bits (целевой диапазон задаётся этим полем). Блок считается валидным, если hash <= target.
- Майнеры изменяют nonce (и иногда другие поля, если нужно) и повторяют вычисление до тех пор, пока не найдётся подходящее значение. Найденный хеш блока затем становится его идентификатором в сети.
Важные моменты
- Двойной SHA-256 снижает некоторые риски и соответствует историческим решениям протокола Bitcoin.
- Поскольку целевой порог задаётся через поле bits, чем меньше hash, тем выше вероятность, что блок будет принят; майнеры пытаются получить минимально возможное значение хеша.
- Представление блока в человекочитаемом виде обычно показывает хеш в обратном порядке байтов (little-endian), поэтому внешний вид hex-строки может быть «перевёрнут» по сравнению с тем, как он хранится внутри протокола.
Дополнительно (для контекста)
- При формировании адреса использутся другая цепочка хеширования: сначала SHA-256, затем RIPEMD-160, что даёт 160-битный хеш-подпись адреса. Но для самой цепи блоков и майнинга основная функция — двойной SHA-256.
Если хочешь, могу привести простой пример на Python или псевдокод, чтобы увидеть, как это выглядит на практике.
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



