MSTR Cat

Блокчейн/Уровень II · Механика/2.3 Блоки и цепочка/Урок 7

График эмиссии: 21 миллион

Арифметика дефицита и баги, пытавшиеся её нарушить

МатериалыЭксплорер блоков с данными о количестве монет в режиме реального времениИсходный код функции GetBlockSubsidy в Bitcoin CoreКалькулятор, способный работать с геометрическими прогрессиями

Любопытство

  1. Как из бесконечной последовательности уменьшений вдвое возникает конечное число?
  2. Что происходит, когда ошибка в программном обеспечении создаёт больше денег, чем позволяет протокол?
  3. Почему фактический объем в обращении меньше теоретического максимума?

Исследование

  1. Лимит в 21 миллион — не обещание, а математическое следствие графика эмиссии. Новые биткоины попадают в обращение исключительно через субсидию за блок, которая в январе 2009 года составляла 50 BTC за блок. Это вознаграждение уменьшается вдвое каждые 210 000 блоков, то есть примерно раз в четыре года. Формула суммирует геометрическую прогрессию: 210 000 блоков, умноженные на 50 BTC, умножаются на сумму степеней одной второй (1 + ½ + ¼ + …). Этот бесконечный ряд сходится ровно к 21 000 000 BTC.
  2. Поскольку стоимость биткоина измеряется в целых сатоши (сто миллионных доли биткоина), при каждом уменьшении награды происходит округление вниз. К блоку 6,720,000, примерно к 2136 или 2137 году, награда снижается до минимальной единицы — одного сатоши. К блоку 6,930,000, примерно в 2140 году, будет выпущено почти все 21 миллион BTC. Из-за этих округлений истинный максимум немного меньше 21 миллиона, составляя примерно 20,999,999.9769 BTC.
  3. Фактическое предложение ниже теоретического предела по нескольким причинам. Вознаграждение генезис-блока в 50 BTC по замыслу невозможно потратить. Некоторые майнеры забирали меньше полной субсидии, и незабранная сумма так и не была создана. Монеты отправлялись на заведомо нерасходуемые выходы, а многие приватные ключи навсегда утеряны из-за сбоев оборудования или забытых паролей. Все эти факторы снижают объём монет в обращении ниже жёсткого предела протокола.
  4. Лимит обеспечивается правилами консенсуса в программном обеспечении Bitcoin Core, а не какой-либо внешней инстанцией. Каждый узел проверяет, чтобы ни один блок не превышал допустимую сумму субсидии. В августе 2010 года ошибка, связанная с переполнением значений (CVE-2010-5139), позволила одной транзакции создать более 184 миллиардов BTC в блоке 74,638. Примерно через пять часов была выпущена исправленная версия клиента, и шахтеры, использующие её, создали цепочку без этой бракованной транзакции; эта новая цепочка вскоре обогнала первоначальную на 53 блока, в результате чего суммы, связанные с этой транзакцией, были стерты. Этот инцидент показал, что надежность лимита зависит от качества программного обеспечения узлов, обеспечивающего его соблюдение, а также от способности сети быстро координировать свои действия для его защиты.
  5. В 2018 году в Bitcoin Core версий с 0.15 по 0.16.2 нашли ещё один баг инфляции (CVE-2018-17144): майнер мог создать монеты с помощью транзакции, в которой один и тот же вход указан дважды. Уязвимость исправили, и известных случаев её эксплуатации нет. Оба эпизода показывают, что график эмиссии зависит от корректности программного обеспечения и от людей, которые за ним следят.
  6. Откройте эксплорер блоков и сравните текущее количество монет в обращении с 21 000 000 BTC. Обратите внимание на разницу между теоретическим максимумом и фактическим количеством монет в обращении. Посмотрите дату следующего халвинга и рассчитайте, сколько блоков осталось до снижения субсидии с 3,125 до 1,5625 BTC. Эта проверка подтверждает, что график эмиссии выполняется в точности так, как он запрограммирован.

Ключевые факты

  • Теоретически график эмиссии в сумме даёт 21 000 000 BTC.
  • Субсидия за блок уменьшается вдвое каждые 210 000 блоков: она начинается с 50 BTC и снижается до нуля примерно к 2140 году.
  • Истинный максимальный объём выпуска немного меньше 21 миллиона из-за округления сатоши до целого числа.
  • Вознаграждение генезис-блока в 50 BTC невозможно потратить, что снижает фактическое предложение.
  • В августе 2010 года баг (CVE-2010-5139) создал более 184 миллиардов BTC, прежде чем цепочка была реорганизована.
  • Майнеры могут забрать меньше полной субсидии; незабранная сумма никогда не создаётся.

Упражнение девять, шесть, три, один

9СобратьПеречислите 9 различных активов или валют с фиксированным или ограниченным предложением. Укажите их максимальный объём и то, кто обеспечивает соблюдение лимита.
6СгруппироватьСгруппируйте эти 9 активов в 6 групп по механизму обеспечения лимита: на уровне кода, на уровне договора, физический дефицит, законодательный акт, рыночная практика или другое.
3Выделить главноеСведите 6 групп к 3 причинам, по которым лимит предложения может не сработать или быть изменён.
1КристаллизоватьНапишите одно предложение о том, чем жёстко закодированный лимит отличается от политического обещания.

Проверка фактов

Даты, цифры и утверждения были проверены по приведенным ниже опубликованным источникам.

Открыть в интерактивной академии →

EN PT ES ZH JA KO DE FR MS