Блокчейн

Майнинг: от 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 поддерживает стабильность сети при экспоненциальном росте вычислительных мощностей.

Предварительные знания

  • Proof of Work: security through energy

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. Как это повлияет на безопасность сети и какие решения ты бы предложил?

Связанные уроки

  • crypto-19-hash-functions
Майнинг: от CPU до ASIC

0

1

Войти