Блокчейн
Майнинг: от CPU до ASIC
В январе 2009 года Сатоши Накамото запустил Bitcoin на обычном ноутбуке и получал 50 BTC за каждый блок. Сегодня для добычи одного блока нужна вычислительная мощность, которая превышает мощность всех суперкомпьютеров мира вместе взятых, а награда упала до 3.125 BTC. Как сеть, где нет центрального управления, автоматически регулирует сложность, распределяет награды и при этом гарантирует, что последний Bitcoin будет добыт только через 116 лет?
- **Foundry USA Pool** контролирует ~30% hashrate Bitcoin - один пул определяет содержимое почти каждого третьего блока. Это как если бы один издатель контролировал треть всех газет
- **Halving 2024** сократил доход майнеров вдвое за одну ночь - при этом цена электричества осталась прежней. Нерентабельные майнеры отключились, hashrate временно упал, difficulty скорректировалась, и система нашла новое равновесие
- **Coinbase transaction** genesis block содержит заголовок Times о банковском bailout - Сатоши не просто тестировал систему, а оставил политическое заявление в первом блоке
Сатоши и CPU-майнинг
3 января 2009 года Сатоши Накамото запустил Bitcoin на обычном ПК. Первые месяцы он майнил практически в одиночку - difficulty равнялась 1, и обычный процессор находил блок за минуты. Сатоши намайнил около **1 100 000 BTC** (Patoshi pattern), которые ни разу не были потрачены. Эволюция оборудования шла стремительно: CPU (2009) → GPU (2010, в 100 раз быстрее) → FPGA (2011) → ASIC (2013, специализированные чипы исключительно для SHA-256). Каждый переход делал предыдущее оборудование нерентабельным за считанные месяцы.
Эволюция от CPU к ASIC - наглядная демонстрация того, как difficulty adjustment поддерживает стабильность сети при экспоненциальном росте вычислительных мощностей.
Предварительные знания
Mining Pools: сила в объединении
В уроке о Proof of Work мы выяснили, что майнинг - это перебор nonce в поисках хеша меньше target. Но вот проблема: **соло-майнер** с одним ASIC при текущем hashrate сети будет находить блок **раз в несколько десятилетий**. Это как лотерея, где шанс выигрыша 1 к 40 000 000 000 000 000 000 - можно ждать до конца жизни.
**Mining Pool** - это объединение майнеров, которые суммируют свои вычислительные мощности и делят награду пропорционально вкладу. Вместо одного огромного выигрыша раз в 50 лет - стабильный поток маленьких выплат каждый день.
Суть пула - **variance reduction** (снижение дисперсии). Математически ожидаемый доход соло-майнера и участника пула одинаков, но **вариативность** радикально разная. Это как страхование: ты «платишь» пулу долю комиссии за предсказуемость дохода.
Как пул координирует работу? Через протокол **Stratum V2** (наследник Stratum V1). Пул выдаёт каждому майнеру свой диапазон nonce для перебора. Майнер отправляет пулу **share** - результат, который удовлетворяет пониженной сложности (не достаточно для блока, но доказывает, что майнер работает).
**Схемы распределения награды:** - **PPS (Pay Per Share)** - фиксированная оплата за каждый share. Пул берёт на себя весь риск. Комиссия пула выше (~2-4%) - **PPLNS (Pay Per Last N Shares)** - награда делится между последними N shares при нахождении блока. Честнее, но менее предсказуемо. Комиссия ~1-2% - **FPPS (Full Pay Per Share)** - как PPS, но включает и transaction fees. Самая популярная схема в 2024
**Крупнейшие пулы (2024):** Foundry USA (~30%), AntPool (~15%), F2Pool (~12%), ViaBTC (~11%). Вместе топ-4 пула контролируют ~68% hashrate сети. Это создаёт **риск централизации** - если 2-3 крупных пула договорятся, они теоретически могут провести атаку 51%.
**Централизация пулов - реальная угроза.** В 2014 году пул GHash.IO временно контролировал >50% hashrate Bitcoin. Паника была такой, что майнеры добровольно ушли из пула. Stratum V2 частично решает проблему: майнеры сами выбирают транзакции для блока, а не оператор пула.
Зачем майнеры объединяются в пулы, если математическое ожидание дохода у соло-майнера такое же?
Difficulty Adjustment: автопилот Bitcoin
Bitcoin обещает блок каждые ~10 минут. Но hashrate сети постоянно меняется: новые ASIC подключаются, старые выключаются, электричество дорожает. Как поддерживать стабильные 10 минут, если вычислительная мощность скачет?
Ответ - **difficulty adjustment** (пересчёт сложности). Каждые **2016 блоков** (~2 недели при 10 мин/блок) протокол автоматически пересчитывает target. Формула проста:
Логика проста: - Блоки шли **быстрее** 10 мин → actual_time < expected → target **уменьшается** → сложность **растёт** - Блоки шли **медленнее** 10 мин → actual_time > expected → target **увеличивается** → сложность **падает**
**Исторический рост difficulty** впечатляет: - 2009: difficulty = **1** (Сатоши майнил на CPU) - 2013: difficulty = **1 000 000 000** (эра GPU/ASIC) - 2024: difficulty = **~80 000 000 000 000** (80 триллионов) Difficulty выросла в **80 триллионов раз** за 15 лет. Это как если бы олимпийский стометровый забег каждый год ускорялся в 10 раз - к 2024 спринтеры бы пробегали 100 метров за время, которое свет тратит на пересечение атома.
**Ограничение x4** - защита от манипуляций. Без него атакующий мог бы намайнить 2016 блоков с фальшивыми timestamps, обрушив difficulty до нуля. Ограничение гарантирует, что даже при самой агрессивной атаке нужно несколько adjustment periods.
Hashrate сети Bitcoin внезапно удвоился. Что произойдёт?
Block Reward: откуда берутся новые Bitcoin
Каждый раз, когда майнер (или пул) находит валидный блок, он получает **block reward** - награду, состоящую из двух компонентов: 1. **Block subsidy** - новые BTC, созданные «из воздуха» (эмиссия) 2. **Transaction fees** - комиссии за все транзакции в блоке
Механически reward реализован через **coinbase transaction** - специальную транзакцию, которая всегда первая в блоке. У неё нет входов (input): она создаёт BTC из ничего. Это единственный способ появления новых Bitcoin в системе.
**Кто получает reward?** Майнер, нашедший блок, указывает свой адрес (или адрес пула) в output coinbase transaction. Полные ноды проверяют, что сумма output coinbase не превышает subsidy + total fees блока. Если майнер попытается начислить себе больше - блок будет отклонён сетью.
Coinbase как доска объявлений
Поле coinbase позволяет записать до 100 байт произвольных данных
Знаменитые coinbase messages: - Блок #0 (genesis, 2009): "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks" - Сатоши вписал заголовок газеты Times как proof-of-date и политическое заявление - Блок #629999 (последний перед halving 2020): "NYTimes 09/Apr/2020 With 2.3T Injection, Fed's Plan Far Exceeds 2008 Rescue" - майнер провёл параллель с genesis block - Пулы подписывают блоки: "/Foundry USA Pool/", "/AntPool/" - так можно отследить, какой пул нашёл блок
**Потерянные награды.** Если майнер случайно указывает reward меньше максимально допустимого, разница **сжигается навсегда**. В блоке #124724 (2011) майнер вообще не включил coinbase output - 50 BTC потеряны навечно. Протокол не корректирует ошибки майнера.
Что такое coinbase transaction?
Halving: запрограммированный дефицит
Самый известный механизм Bitcoin - **halving** (уполовинивание). Каждые **210 000 блоков** (~4 года) block subsidy сокращается ровно вдвое. Это жёстко прописано в коде Bitcoin и не может быть изменено без консенсуса всей сети.
Почему именно 210 000 блоков и 21 миллион? Это связано через геометрическую прогрессию:
К 2024 году уже добыто более **94%** всех Bitcoin. Но последний satoshi будет добыт только около **2140 года** - через 116 лет. Каждое следующее halving замедляет эмиссию экспоненциально.
**Security budget debate** - главная дискуссия вокруг halving. Когда block subsidy станет пренебрежимо малым, безопасность сети будет зависеть **исключительно** от transaction fees. Вопрос: будут ли fees достаточными, чтобы мотивировать майнеров?
**Halving как экономическое событие.** Каждое halving резко сокращает приток новых BTC на рынок. До 2024 halving майнеры продавали ~900 BTC/день для покрытия расходов. После - ~450 BTC/день. При том же спросе это создаёт давление на рост цены. Исторически цена Bitcoin значительно росла в 12-18 месяцев после каждого halving - хотя корреляция не означает причинность.
**Распространённая путаница:** halving не меняет difficulty. Difficulty adjustment и halving - это два **независимых** механизма. Difficulty зависит от hashrate (каждые 2016 блоков), halving зависит от высоты блока (каждые 210 000 блоков). Они могут совпасть, но не связаны.
Halving уменьшает количество уже существующих Bitcoin - после halving у людей становится вдвое меньше BTC
Halving сокращает только **скорость создания новых** Bitcoin (block subsidy). Все уже существующие BTC остаются нетронутыми. Halving влияет на приток, не на запас.
Эта путаница возникает из-за слова «уполовинивание» - кажется, что что-то делится пополам. Пополам делится только награда за новый блок, не весь запас. Аналогия: если завод выпускает 100 автомобилей в день и сокращает производство до 50 - это не значит, что у владельцев отберут половину машин.
К 2140 году block subsidy станет равным нулю. Что будет мотивировать майнеров поддерживать сеть?
Итоги
- **Mining Pools** объединяют hashrate тысяч майнеров для снижения дисперсии дохода (variance reduction). Схемы PPS/PPLNS/FPPS определяют распределение награды, но создают риск централизации - топ-4 пула контролируют ~68% сети
- **Difficulty Adjustment** каждые 2016 блоков автоматически калибрует сложность по формуле `new = old x (actual_time / expected_time)`, поддерживая 10-минутный интервал. Именно этот механизм позволил сети пережить запрет майнинга в Китае и рост hashrate в 80 триллионов раз
- **Block Reward** = coinbase transaction (block subsidy + transaction fees). Это единственный способ эмиссии новых BTC - монеты буквально рождаются из кода
- **Halving** каждые 210 000 блоков сокращает subsidy вдвое: 50 → 25 → 12.5 → 6.25 → 3.125 BTC. В январе 2009 года Сатоши майнил на ноутбуке и получал 50 BTC за блок - сегодня ферма из тысяч ASIC получает 3.125 BTC. Последний satoshi будет добыт ~2140, а security budget станет полностью зависеть от transaction fees
Связанные темы
Майнинг Bitcoin связывает криптографию, теорию игр и экономику:
- Proof of Work — Майнинг - это практическое применение PoW: перебор nonce, target, hashrate. Этот урок раскрывает экономику поверх криптографии
- Bitcoin Economics — Halving и security budget напрямую определяют экономическую модель Bitcoin - инфляцию, дефляцию и долгосрочную устойчивость
- UTXO Model — Coinbase transaction создаёт первый UTXO в цепочке - именно так новые BTC попадают в обращение и начинают тратиться
Вопросы для размышления
- Если бы Сатоши не предусмотрел halving и block subsidy оставался 50 BTC навсегда, как это повлияло бы на экономику Bitcoin? Была бы система жизнеспособной?
- Топ-3 mining pool контролируют более 50% hashrate. Почему они до сих пор не провели атаку 51%? Что их останавливает, если технически это возможно?
- Представь, что в 2060 году transaction fees составляют всего $10 за блок, а стоимость майнинга - $1000. Как это повлияет на безопасность сети и какие решения ты бы предложил?