Пулы
ZooBC собирает деньги, которые берёт за хранение чего-либо в цепочке, на двух системных аккаунтах — в пуле долголетия и пуле хранения. Ключа к ним нет ни у кого: их монеты движутся только по правилам протокола, а эти правила выплачивают их зарегистрированным узлам. Третий системный аккаунт, пул приложений, выступает заведением для ставок в цепочке и описан в статье пул приложений.
Аккаунты без ключа
Адрес каждого пула — это имя в ASCII, дополненное нулями до 32 байт: ZBCLONGV для пула долголетия, ZBCSTORE для пула хранения и ZBCAPPS для пула приложений. Этим адресам не соответствует ни один закрытый ключ, поэтому никакая подпись не может потратить с них средства (аккаунты и адреса). Пул долголетия и пул хранения освобождены от аренды аккаунта.
Пул долголетия
Пул долголетия собирает то, что ZooBC берёт за хранение данных в цепочке, вместе со штрафами. Начиная с версии 0.5.8 он получает:
- аренду аккаунтов (аренда аккаунтов и их удаление), наборов данных (наборы данных), рынков (рынки и ордера) и эскроу (эскроу);
- аренду, списываемую с депозитов долговечности, которые сохраняют выбранные транзакции дольше обычной истории, и то, что остаётся при закрытии такого депозита (плата за сохранение данных (долговечность));
- депозиты, изъятые у данных, которые перестали платить, например остаток депозита хранимого файла, когда файл удаляется;
- плату за содержание, которая продлевает жизнь токенов (содержание токена (продление));
- поскольку ZBC никогда не сжигаются, — 10 % стейка, которые узел теряет в случаях, перечисленных в статье ZBC никогда не сжигается, плату за явку узлов в очереди (очередь) и пыль, оставшуюся на каждом удалённом аккаунте и в каждой распущенной группе аккаунтов.
Coinbase и обычные комиссии за транзакции идут более коротким путём. Они попадают прямо в пул вознаграждения своего блока и распределяются лотереей этого блока, минуя пул долголетия.
Доля в каждом блоке
Пул долголетия выплачивает средства в каждом блоке выше высоты 1. Каждый блок забирает долю его баланса:
slice = floor(balance ÷ (period − height mod period))
Период — это расчётный период, один период снимков: 172 800 блоков, или 30 дней, в mainnet. Доля уходит из пула и попадает в пул вознаграждения этого блока вместе с coinbase и комиссиями, а лотерея coinbase её распределяет.
Поскольку делитель уменьшается до 1, на каждой границе периода пул пустеет, а деньги, поступившие в середине периода, распределяются по оставшимся блокам. Например, 17,28 ZBC в пуле в начале периода, если больше ничего не поступает и ничего другого не выплачивается, дают по 10 000 атомарных единиц (0,0001 ZBC) в каждом из 172 800 блоков. Пул меньше числа оставшихся блоков ничего не выплачивает, пока не вырастет, потому что деление идёт в целых атомарных единицах.
Выплата в каждом блоке позволяет правилам лотереи решать, кто зарабатывает: билеты есть только у зрелых узлов, которые не отсутствуют и не приостановлены, и доли следуют за держателями билетов каждого блока, а не за теми, кто случайно имеет право в какой-то один момент. Пул — не резерв на чрезвычайный случай, и он никому ничего не возвращает: он существует, чтобы платить узлам, которые хранят данные цепочки.
Доля для архива
Пул долголетия также оплачивает архив, в котором децентрализованное хранилище хранит каждый снимок цепочки начиная с нулевого блока. Каждую эпоху хранения 10 % пула долголетия выплачиваются равными частями узлам, которые доказывают хранение отобранных для проверки чанков этих снимков.
Пул хранения
Пул хранения получает аренду файлов, хранящихся в децентрализованном хранилище, и платит узлам, которые их хранят (пул децентрализованного хранения). Каждую эпоху, 240 блоков или около часа, узлы, назначенные на фрагменты файла, отправляют доказательства хранения. За каждый фрагмент, доказательство по которому подтверждено, владельцу каждого согласного хранителя платят из пула: аренду активных файлов за эпоху, делённую на число ожидаемых доказательств, и никогда не больше, чем есть в пуле. Хранитель, оставшийся в меньшинстве или незрелый, теряет вознаграждение за эту эпоху, и оно остаётся в пуле.
Цены, которые наполняют оба пула, от аренды аккаунта до цены хранения за МиБ, устанавливают голосованием места реестра в фиксированных пределах (голосования по ценам).