Officine Bitcoin Bitcoin-only урок Этот проект поддерживается valerio-vaccaro
🌍 Переводы
🇨🇳 中文 🇬🇧 English 🇪🇸 Español 🇵🇹 Português 🇷🇺 Русский 🇫🇷 Français 🇩🇪 Deutsch 🇮🇹 Italiano 🇭🇺 Magyar 🏳️ Milanés 🏳️ Veneto
Введение в майнинг
Bitcoin майнинг — это фундаментальный процесс протокола, который служит для установления порядка среди транзакций, присутствующих в mempool, выбора подмножества для создания нового блока и обновления состояния блокчейна.
Майнинг спроектирован так, чтобы быть децентрализованным и случайным (в кавычках, поскольку он основан на криптографической головоломке), что позволяет избежать централизованного управления транзакциями.
##Цель майнинга
Майнинг решает проблемы, связанные с централизацией, такие как:
- Цензура: центральный орган может блокировать некоторые транзакции, но с децентрализованными майнерами транзакции имеют больше шансов быть включенными.
- Двойные траты: без коррумпированного майнера трудно переписать историю или отдать предпочтение одной транзакции перед другой.
- Метка времени: обеспечивает безопасный и общий временной порядок, не зависящий от центрального органа, а от консенсуса между майнерами и узлами.
Как работает майнинг
Процесс майнинга можно объяснить шаг за шагом:
- Выбор транзакций: майнер выбирает транзакции из mempool, часто отдавая предпочтение тем, у которых более высокие комиссии, оптимизируя прибыль (NP-полная задача, похожая на «наполнение рюкзака»).
- Создание Coinbase: майнер создает специальную транзакцию (coinbase), которая присваивает себе вознаграждение за блок (в настоящее время 3125 BTC, сокращающееся вдвое каждые четыре года) плюс комиссии (сборы) выбранных транзакций.
- Корень Меркла: выбранные транзакции организованы в древовидную структуру данных (Дерево Меркла), которая генерирует корень Меркла, хэш, представляющий все транзакции и их порядок.
- Заголовок блока: майнер создает прототип заголовка блока, включая:
- Временная метка.
- Хэш предыдущего блока.
- Корень Меркла.
- Сложность (цель), которая зависит от сети.
- Одноразовый номер (случайное число, инициализируемое, например, нулем).
- Криптографическая головоломка: майнер дважды применяет алгоритм SHA-256 к заголовку и проверяет, имеет ли результат достаточное количество ведущих нулей (меньше порога сложности). Если это не так, измените nonce или другие поля (например, метку времени или порядок транзакций) и повторите расчет. Это грубая работа без каких-либо сокращений благодаря свойствам SHA-256.
Оптимизации
Чтобы ускорить процесс, майнеры могут вычислить первый SHA-256 для первых 64 байтов заголовка (неизменяемых), а затем выполнять итерацию только для остальных, меняя nonce. Специализация привела к появлению оборудования (ASIC), которое выполняет миллиарды попыток в секунду.
Процесс проверки
Когда майнер находит решение, он передает в сеть полный блок (заголовок + транзакции). Узлы проверяют:
- хеш заголовка (только один SHA-256 для подтверждения).
- корректность информации о блоке (метка времени, хеш предыдущего блока, Merkle Root и nonce).
- воспроизводимость корня Меркла после проверки правильности всех связанных транзакций.
Если он действителен, блок добавляется в блокчейн. Награда (coinbase + комиссия) может быть потрачена только после 100 подтверждений (приблизительно 16 часов), чтобы гарантировать стабильность.
Затраты и выгоды от майнинга
Затраты:
- Электроэнергия: основная переменная стоимость.
- Аппаратное обеспечение: дорогие, недолговечные ASIC, которые быстро вытесняются более эффективными моделями.
- Инфраструктура: охлаждение, установка, обслуживание (например, солнечные панели не являются «бесплатными»).
Награды:
- Фиксированная награда (в 2024 году уменьшена вдвое до 3125 BTC).
- Переменные комиссии за транзакции.
Майнер должен соблюдать правила консенсуса: недействительный блок отбрасывается, тратя ресурсы без вознаграждения. Даже действительный блок может стать «осиротевшим», если другой майнер выиграет гонку, что приведет к потерям.
Экономическая стратегия
Майнинг конкурентоспособен: майнеры стараются максимально увеличить время безотказной работы, чтобы амортизировать постоянные затраты. Точечное использование (например, включение майнеров только при избытке энергии) непрактично, поскольку первоначальные затраты требуют непрерывности. Возврат инвестиций может быть длительным и неопределенным.
Соло и майнинг в пуле
- Соло-майнинг: майнер работает в одиночку, создавая блок с помощью полного узла или специального программного обеспечения. Если он находит блок, он забирает всю награду, но вероятность этого очень мала (с одним ASIC на это могут уйти столетия).
- Майнинг в пуле: такие протоколы, как Stratum, позволяют майнерам сотрудничать:
- Пул предоставляет шаблон (coinbase, Merkle Root и т. д.).
- Майнеры отправляют акции (попытки с определенным количеством нулей, меньшим, чем сложность блока) в качестве доказательства работы.
- Когда майнер в пуле находит блок, вознаграждение делится пропорционально отправленным долям.
- Stratum v2: эволюция, которая позволяет майнерам выбирать транзакции, уменьшая централизацию пула, хотя требует контроля, гарантирующего правильность (например, комиссии пула).
Оценка хешрейта
Хэшрейт (вычислительная мощность) оценивается:
- В пуле: подсчет долей, полученных за единицу времени, умноженный на сложность долей. Эта оценка может быть нарушена по счастливой случайности.
- Глобально: используется сложность Bitcoin и среднее время между блоками (около 10 минут). Колебания нормальные, но средние достоверны.
Такое оборудование, как Nerd Miner, использует внутренние счетчики для получения точных данных, в то время как пулы полагаются на более переменные оценки, видимые на осциллирующих графиках.
#Программа
Этот урок был создан для Satoshi Spritz Connect.