Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3559770
А
Аноним
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.
  • Пошаговый разбор вычисления хеша блока

    1. Собираем заголовок блока в двоичном виде (обычно 80 байтов).
    2. Вычисляем первый проход: h1 = SHA256(header).
    3. Вычисляем второй проход: hash = SHA256(h1).
    4. Преобразуем полученные 32 байта в целое 256-битное число (учитывая порядок байтов, т.н. big-endian для сравнения с целевой зоной).
    5. Определяем целевое значение из поля bits (целевой диапазон задаётся этим полем). Блок считается валидным, если hash <= target.
    6. Майнеры изменяют nonce (и иногда другие поля, если нужно) и повторяют вычисление до тех пор, пока не найдётся подходящее значение. Найденный хеш блока затем становится его идентификатором в сети.
  • Важные моменты

    • Двойной SHA-256 снижает некоторые риски и соответствует историческим решениям протокола Bitcoin.
    • Поскольку целевой порог задаётся через поле bits, чем меньше hash, тем выше вероятность, что блок будет принят; майнеры пытаются получить минимально возможное значение хеша.
    • Представление блока в человекочитаемом виде обычно показывает хеш в обратном порядке байтов (little-endian), поэтому внешний вид hex-строки может быть «перевёрнут» по сравнению с тем, как он хранится внутри протокола.
  • Дополнительно (для контекста)

    • При формировании адреса использутся другая цепочка хеширования: сначала SHA-256, затем RIPEMD-160, что даёт 160-битный хеш-подпись адреса. Но для самой цепи блоков и майнинга основная функция — двойной SHA-256.

Если хочешь, могу привести простой пример на Python или псевдокод, чтобы увидеть, как это выглядит на практике.