У эмиссии должен быть понятный горизонт. Человек должен видеть, когда меняется награда, а приложение — вычислять её по правилам протокола. В первоначальной модели Parano1d этот горизонт зависел от расширения State. Первый период mainnet показал, почему такая связь работает иначе, чем мы рассчитывали.

V2 разделяет две задачи. Высота блока определяет выпуск новых NOID. Заполненность State определяет цену увеличения общего набора живых записей. Экономить место по-прежнему выгодно, но эффективное использование сети больше не отодвигает следующую ступень эмиссии.

Начало отсчёта

Новый график начинается с блока mainnet 210 537. Существующие балансы не пересчитываются. Первый год в блоках отсчитывается от форка, а не от genesis и не от установки новой версии.

Что предполагала исходная модель

Стартовая награда составляла 50 NOID за блок. Когда устойчивое заполнение требовало увеличить область State, награда уменьшалась вдвое. Идея связывала сокращение эмиссии с ростом полезного использования сети.

Но State показывает остаток: сколько выходов живы сейчас. Он не измеряет время, оборот или число уже исполненных операций. Трата освобождает слот. Консолидация заменяет много выходов меньшим числом. Контракт способен многократно обновлять право, почти не увеличивая живой набор.

В начале mainnet заполнение оставалось низким, и у уменьшения награды не было предсказуемого срока. Дело не только в том, что активность оказалась ниже ожиданий. Сам показатель может оставаться небольшим даже у полезного, активно работающего приложения, если оно хорошо переиспользует State.

Получалось противоречие между двумя желательными результатами: хранить меньше записей и иметь видимый график снижения эмиссии. Чтобы приблизить очередное уменьшение награды, сети требовалось больше живых выходов; чтобы снизить нагрузку на будущие узлы, их следовало создавать экономно. Новый график устраняет эту зависимость.

Девять точных значений

Пусть H=210537H=210537, а интервал I=1051200I=1051200 блоков. Для высоты h≥Hh\ge H номер ступени определяется целочисленно:

k(h)=min⁡(⌊h−HI⌋,8).k(h)=\min\left(\left\lfloor\frac{h-H}{I}\right\rfloor,8\right).
Номинальные годы от v2Первая высотаNOID за блокВаловая субсидия за полный интервал
0210 5371616 819 200
11 261 73711,3011 878 560
22 312 93788 409 600
33 364 1375,655 939 280
44 415 33744 204 800
55 466 5372,832 974 896
66 517 73722 102 400
77 568 9371,411 482 192
8 и далее8 620 13711 051 200 за каждый последующий интервал

При целевом интервале 30 секунд это 365 дней на ступень. Календарная дата зависит от фактического выхода блоков. Консенсус оперирует целыми μNOID: в одном NOID их 1 000 000. Значения таблицы заданы точно, без вычислений с плавающей точкой и без решения оператора в момент перехода.

Расширение State не ускоряет и не перезапускает график. Выбор награды по аутентифицированной высоте проверяется в отношении блока.

Почему кривая устроена так

Отправные условия — постоянная конечная ступень 1 NOID и четыре эквивалента халвинга за восемь номинальных лет. Они задают опорный ряд 16 → 8 → 4 → 2 → 1 с шагом в два года. Промежуточные ежегодные уменьшения распределяют изменение награды между этими точками.

Приблизительный множитель одного года равен 1/21/\sqrt{2}. В коде зафиксированы суммы 11,30; 5,65; 2,83; 1,41, поэтому сеть не вычисляет квадратный корень и не выбирает способ округления заново.

Уменьшается и стартовая скорость выпуска. 50 NOID при цели 20 секунд соответствовали 216 000 NOID за номинальные сутки. 16 NOID при цели 30 секунд — 46 080. Снижение составляет 78,67% относительно исходной награды прежнего профиля, до возможных уменьшений по старому правилу.

Восемь интервалов до постоянной ступени дают 53 810 928 NOID запланированной валовой субсидии. Далее продолжается выпуск по 1 NOID на блок, или 1 051 200 за номинальный год. Жёсткого максимума предложения поэтому нет. Сумма субсидий сама по себе не определяет обращающееся предложение: нужно учитывать сжигание и суммы, которые не были выпущены или востребованы.

Постоянная субсидия сохраняет источник вознаграждения наряду с комиссиями. Рыночную стоимость дохода майнеров она не фиксирует. Её задача — оставить явную продолжающуюся составляющую выпуска после завершения восьми ступеней снижения.

Зачем тогда очищать State

Потому что новые живые слоты стоят дороже по мере заполнения сети. Минимальная комиссия состоит из базовой части, платы за входы и выходы и компонента за чистое увеличение числа живых слотов. Последний компонент сжигается; обычные составляющие комиссии и добровольная доплата могут быть востребованы майнером.

Заполнение родительского StateМножитель платы за рост
Менее 50%1×
От 50% до менее 75%2×
От 75% до менее 90%4×
90% и выше8×

Платёж с одним входом и двумя выходами при минимальном давлении требует по консенсусу 5 000 + 100 + 1 400 + 2 500 μNOID, то есть 0,009 NOID. При максимальном давлении компонент роста становится 20 000 μNOID, а итог — 0,0265 NOID. Локальная политика ретрансляции может потребовать больше.

Консолидация, создающая меньше выходов, чем расходует, не увеличивает число живых слотов и не платит за рост. Базовая плата и плата за входы/выходы сохраняются. Этот стимул работает внутри каждого уровня State, ещё до необходимости расширить его область.

Контракты оплачивают свой фактический след по тем же правилам. Вызов может заменить один выход преемником, а может дополнительно создать платёжный выход и увеличить живой набор. Счётчики программы не освобождают её от обычного учёта стоимости и хранения.

Два независимых ориентира

Высота сообщает, какой выпуск разрешён сейчас и когда наступит следующая ступень. Заполненность сообщает, сколько стоит добавить постоянную запись в общее состояние. Пользователь может уменьшить второе консолидацией, не сдвигая первое.

Это и есть основание изменения модели. Хорошее переиспользование State должно оставаться преимуществом для сети. Одновременно эмиссии нужен график, который можно прочитать и проверить заранее, не прогнозируя количество будущих UTXO.

В справочнике экономики приведены полные формулы и правила комиссий. В следующей статье — как контрактные приложения используют живые права, сохраняя State небольшим.