Блокчейн/Уровень II · Механика/2.3 Блоки и цепочка/Урок 6
Субсидия за блок и халвинг
Битовый сдвиг, определяющий денежную массу, и 100-блочная блокировка новых монет
МатериалыКопия исходного кода Bitcoin Core, а именно файл `validation.cpp` или `main.cpp`, содержащий функцию `GetBlockSubsidy`.Интерфейс эксплорера блоков (например, mempool.space или blockchain.com)Калькулятор, способный выполнять бинарные операции
Любопытство
- Почему оператор сдвига вправо в C++ задаёт жёсткий предел денежной эмиссии?
- Что происходит с разницей, если майнер забирает меньше максимально допустимой субсидии?
- Сколько блоков должно пройти, прежде чем можно будет переместить только что созданную монету?
Исследование
- Новые биткоины попадают в обращение исключительно через coinbase-транзакцию каждого блока. Это не отдельная запись в реестре, а особый выход первой транзакции каждого валидного блока, в котором майнер заявляет права на новую стоимость. Сумма определяется функцией `GetBlockSubsidy` в логике валидации Bitcoin Core, которая рассчитывает вознаграждение по текущей высоте блока, а не по календарному времени.
- Начальная субсидия была жёстко задана в коде: 50 BTC, то есть 5 миллиардов сатоши. Чтобы уменьшать её вдвое каждые 210 000 блоков, код выполняет целочисленное деление высоты блока на 210 000 и так определяет, сколько халвингов уже произошло. Затем к начальному значению в 5 миллиардов сатоши применяется двоичный сдвиг вправо — по одному на каждый завершённый интервал.
- Этот механизм битового сдвига детерминирован и эффективен. Поскольку он работает с целыми числами, любая дробная часть сатоши, возникающая при делении, отбрасывается. После 33 таких сдвигов значение становится равным нулю. Эта математическая сходимость гарантирует, что всего будет создано не более примерно 21 миллиона биткоинов — независимо от внешних экономических условий и колебаний мощности майнинга.
- Первое сокращение произошло на блоке 210,000 28 ноября 2012 года; в результате размер пособия снизился до 25 BTC. Следующие сокращения состоялись на блоках 420,000 (9 июля 2016 года), 630,000 (11 мая 2020 года), а самое недавнее — на блоке 840,000 20 апреля 2024 года; в результате размер награды снизился до 3,125 BTC. Следующее сокращение запланировано на блоке 1,050,000.
- Общий доход майнера складывается из этой субсидии и всех комиссий за включённые в блок транзакции. Однако майнер может забрать меньше максимально допустимой суммы. Незабранные сатоши просто не создаются, и получить их позже невозможно. Поскольку субсидия продолжает уменьшаться вдвое, комиссии должны покрывать всё большую часть затрат на защиту сети — это предмет давней дискуссии о будущем бюджете безопасности биткоина.
- Выходы coinbase-транзакций заблокированы правилом консенсуса: их нельзя потратить, пока они не наберут 100 подтверждений. Выход coinbase существует только в той ветви, которая содержит его блок, поэтому если этот блок будет заменён при реорганизации, новые монеты исчезнут. Задержка не даёт таким монетам попасть в другие транзакции, которые тогда стали бы недействительными.
Ключевые факты
- Субсидия за блок начинается с 50 BTC и уменьшается вдвое каждые 210 000 блоков.
- Bitcoin Core вычисляет субсидию, сдвигая вправо значение 5 миллиардов сатоши в зависимости от высоты блока.
- Последнее сокращение произошло при блоке 840,000 в апреле 2024 года, после чего размер субсидии составил 3,125 BTC.
- Майнеры могут забрать меньше полной субсидии; незабранная сумма так и не создаётся.
- Выходы coinbase-транзакций можно потратить только после 100 подтверждений.
- Геометрическая прогрессия халвингов сходится к максимальному предложению примерно в 21 миллион BTC.
Упражнение девять, шесть, три, один
9СобратьПеречислите 9 эпох субсидии: старт в 2009 году и следующие восемь халвингов — с размером субсидии в каждой эпохе и отметкой, состоялся ли уже соответствующий халвинг.
6СгруппироватьСгруппируйте 9 эпох в 6 групп по доле от всех биткоинов, которую выпускает каждая эпоха: половина, четверть, восьмая, шестнадцатая, тридцать вторая часть и остаток.
3Выделить главноеСведите 6 групп к 3 последствиям сокращения субсидии для майнеров и комиссий.
1КристаллизоватьНапишите одно предложение о том, как отбрасывание дробной части при целочисленном расчёте субсидии обеспечивает абсолютный предел эмиссии.
Проверка фактов
Даты, цифры и утверждения были проверены по приведенным ниже опубликованным источникам.