Майнинг — это процесс формирования новых блоков и добавления их в блокчейн. Майнеры используют вычислительную мощность для многократного хэширования данных блока, конкурируя за право добавить следующий блок и получить вознаграждение. Майнинг — это не просто «добыча монет», это механизм безопасности всей сети.
Хэш-функция SHA-256
Основа майнинга — хэш-функция SHA-256 (Secure Hash Algorithm, 256 бит). Свойства функции:
- Детерминированность: одинаковые входные данные всегда дают одинаковый выход.
- Лавинный эффект: любое изменение входных данных полностью меняет выход.
- Необратимость: по хэшу невозможно восстановить входные данные.
- Фиксированный размер: выход всегда 256 бит (64 шестнадцатеричных символа), независимо от размера входа.
Пример: хэш слова «Биткоин» всегда будет одним и тем же числом. Измените одну букву — и хэш полностью изменится.
Что такое нонс
Нонс (nonce, от “number only used once”) — произвольное число, добавляемое в заголовок блока. Изменяя нонс, майнер получает разные хэши одного и того же блока.
Цель майнинга: найти такое значение нонса, при котором хэш заголовка блока окажется меньше заданного целевого значения (target). Это означает, что хэш начинается с определённого количества нулей.
Например:
000000000000000000031a2c4e3b9f8a...Вероятность случайно получить хэш с нужным числом ведущих нулей ничтожно мала. Поэтому майнер делает триллионы попыток в секунду.
Процесс майнинга
- Сбор транзакций: майнер выбирает транзакции из мемпула (приоритет, как правило, отдаётся по размеру комиссии).
- Формирование блока: составляет заголовок блока, включающий хэш предыдущего блока, корень дерева Меркла всех транзакций, временну́ю метку и нонс (начальное значение — 0).
- Хэширование: вычисляет SHA-256(SHA-256(заголовок блока)).
- Проверка: если хэш меньше целевого числа — блок найден. Если нет — изменяет нонс и повторяет.
- Трансляция: найденный блок рассылается по сети. Другие узлы проверяют и принимают его.
- Вознаграждение: в блоке создаётся coinbase-транзакция с субсидией + все комиссии.
Сложность и корректировка
Сеть Биткоина поддерживает средний интервал между блоками ~10 минут. Для этого каждые 2016 блоков (~2 недели) происходит корректировка сложности:
- Если последние 2016 блоков добыты быстрее чем за 14 дней — сложность растёт.
- Если медленнее — падает.
Это автоматически балансирует сеть при любых изменениях хэшрейта: выход крупного майнера, изменение цены, технологический прогресс — сеть адаптируется.
ASIC-майнеры
На заре Биткоина майнить можно было на обычном процессоре. Затем перешли на GPU (видеокарты), потом FPGA, и наконец — ASIC (Application-Specific Integrated Circuit). ASIC — это чип, разработанный специально для вычисления SHA-256. Он в миллионы раз эффективнее универсального процессора.
Сегодня Биткоин-майнинг — высококонкурентная индустрия с профессиональными дата-центрами, дешёвой и нередко возобновляемой электроэнергией, и специализированным оборудованием (Antminer S21, Whatsminer M60 и др.).
Майнинг-пулы
Вероятность добыть блок в одиночку крайне мала для большинства майнеров. Поэтому майнеры объединяются в пулы: совместно хэшируют и делят вознаграждение пропорционально вложенному хэшрейту. Это выравнивает доход, но создаёт риски централизации пулов.
Роль майнеров в протоколе
Майнеры — экономические агенты, продающие электроэнергию (в виде хэшрейта) сети в обмен на биткоины. Их роль:
- Упорядочивание транзакций: определяют порядок и состав транзакций в блоке.
- Обеспечение безопасности: накопленный PoW делает переписывание истории вычислительно нецелесообразным.
- Эмиссия: каждый блок создаёт новые биткоины через coinbase-транзакцию.
Как наглядно показала война за размер блока, майнеры не управляют протоколом. Если майнер добудет блок по «неправильным» правилам — узлы его отвергнут, и майнер потеряет вознаграждение.