Как блок-биткоин работают на инженерном уровне?Мы объясняем с помощью Андреаса Антонопулоса.
В недавнем видео Антонопулос подробно объяснил код Биткоин-ядра, который контролирует половину вознаграждения за биткоин (BTC).

Биткоин, делящий пополам кодИсточник: Биткоин Core Software.
Построчное объяснение
Каждый раз, когда оценивается биткоин-блок или добывается новый блок, вызывается функция GetBlockSubsidy.Его цель – рассчитать соответствующий размер вознаграждения за блок.Линия 1240 оценивает цикл деления пополам и делит текущую высоту блока на 210 000;Интервал между делением пополам.На момент написания этой статьи высота блока составляла 629369, если мы разделим ее на 210 000, мы получим 2,99.Поскольку переменная, в которой хранится это значение, является целочисленным типом, десятичные дроби отбрасываются.Используя эту информацию, код «знает», что у нас было две половины.Вот почему следующее сокращение будет происходить в блоке 630000.
Сатоши стоит исправлено
Строки 1242 и 1243 исправляют ошибку, которую Сатоши допустил в исходном коде.Первоначально эта ошибка продолжала уменьшать вдвое награду за блок после 64 половин;общее количество половин, встроенных в протокол Биткоин.
Строка 1245 умножает исходную награду блока 50 на постоянную МОНЕТУ, которая равна 100 000 000 сатоши.По иронии судьбы, в биткоин-коде нет Биткоин, только сатоши.
Строка 1247 вычисляет соответствующее вознаграждение за текущую высоту блока.Он использует побитовую операцию, которая более эффективна, чем обычные математические операции.Награда за блок, рассчитанная в строке 1245, затем корректируется в соответствии с текущей наградой за блок.В настоящее время это будет выглядеть так:
50 * 100 000 000/22 = 1 250 000 000 сатоши или 12,5 Биткоин.
Наконец, строка 1248 возвращает соответствующее вознаграждение за блок при вызове другой функцией или процедурой в биткоин-коде.
Когда, наконец, половина получится примерно через 4 дня или 631 квартал, мы все можем вздохнуть с облегчением и оценить красоту кода Биткоина.
Термины в новости
- Блок
- Пакет транзакций, который добавляется в блокчейн. В биткоине новый блок появляется в среднем раз в 10 минут.
- Высота блока (block height)
- Порядковый номер блока в блокчейне. Например, четвёртый халвинг биткоина произошёл на высоте 840 000.
- Сатоши
- Наименьшая единица биткоина: 1 сатоши = 0,00000001 BTC. Названа в честь создателя биткоина Сатоши Накамото.
- Награда за блок (block subsidy)
- Новые монеты, которые сеть выпускает и отдаёт майнеру за найденный блок, без учёта комиссий. В биткоине после халвинга 2024 года — 3,125 BTC.








