Лотерея coinbase
Лотерея coinbase — это способ, которым ZooBC платит своим узлам. Пул вознаграждения каждого блока, состоящий из только что выпущенных монет, комиссий блока и доли пула долголетия, делится на равные доли, и каждая доля разыгрывается между зарегистрированными узлами с шансом, пропорциональным их оценке участия. Узел, создавший блок, не имеет на него особых прав: узлы зарабатывают, выполняя ту работу, которую измеряет оценка.
Пул вознаграждения
Пул вознаграждения каждого блока складывается из:
- его coinbase — новых ZBC, которые график эмиссии выпускает для этого блока (предложение и эмиссия);
- комиссий его транзакций за вычетом переплаты, возвращённой отправителям (комиссии);
- доли пула долголетия, который собирает аренду и штрафы и понемногу выплачивает их в каждом блоке (пулы).
У кого есть билет
Держатель билета — это зарегистрированный узел, который зрел и при этом не отсутствует и не приостановлен:
- Зрелый. Новый узел ничего не зарабатывает, пока после его допуска не пройдут 4 единицы оценки и он не создаст один собственный блок: это 2 дня, пока в цепочке меньше 2 880 узлов (зрелость и доходы).
- Не отсутствует. Узел, пропустивший свой ход, считается отсутствующим до своего следующего собственного блока и всё это время ничего не зарабатывает (пропущенные ходы, приостановка и исключение).
- Не приостановлен. У узла, приостановленного после 4 пропущенных ходов подряд, билета нет.
У узлов, которые ещё ждут в очереди, нет ни оценки, ни билета.
Розыгрыши
Пул распределяется несколькими розыгрышами:
- один розыгрыш на каждую секунду времени блока, измеряемого как промежуток между двумя предыдущими блоками, который производитель блока выбрать не может;
- не более 600 розыгрышей и никогда не больше розыгрышей, чем держателей билетов;
- когда в пуле больше 1 ZBC на розыгрыш, число розыгрышей увеличивается до одного на каждый целый ZBC в пуле, в тех же двух пределах.
Поэтому в цепочке с 11 держателями билетов на блок приходится 11 розыгрышей, а не 15. При 1 000 держателей билетов, промежутке в 15 секунд и пуле в 30 ZBC число розыгрышей начинается с 15, что дало бы 2 ZBC на розыгрыш, и увеличивается до 30.
Каждый розыгрыш приносит равную долю: пул, делённый на число розыгрышей и округлённый вниз до атомарной единицы, причём остаток добавляется к последней доле. Выигрыши выплачиваются на аккаунт владельца узла, а не на ключ узла (ключи узла).
Шансы следуют оценке
Каждый розыгрыш выбирает узел с вероятностью, пропорциональной его оценке участия. Если у двух держателей билетов оценки 80 % и 40 %, первый вдвое вероятнее второго выигрывает любой розыгрыш, но и второй может выиграть любой из них. Розыгрыши независимы и проводятся с возвращением, поэтому один узел может выиграть несколько долей одного и того же блока.
Случайные числа дают генератор, инициализированный меткой zbc-coinbase и сидом предыдущего блока (сид блока (VRF)), поэтому каждый узел вычисляет тех же победителей и может проверить каждую выплату.
Со временем ожидаемый доход узла равен его доле в суммарной оценке всех держателей билетов. Стейк роли не играет: он даёт узлу место в очереди и сам по себе ничего не приносит.
Особые случаи
- Если ни у одного держателя билета нет оценки, которую можно взвесить, пул делится поровну между держателями билетов.
- Если билета нет ни у одного узла, пул переносится в следующий блок.
- Комиссия тейкера на рынке в пул не входит: она достаётся производителю блока, и это единственный платёж, который идёт производителю, а не в лотерею. Если этот производитель ещё не зрел, комиссия тейкера вместо этого идёт в лотерею (рынки и ордера).
Что она вознаграждает
Оценка растёт, когда собственные блоки узла несут квитанции за данные, которые он ретранслировал назначенным ему пирам, и падает, пока узел отсутствует (оценка участия). Поскольку лотерея следует оценке, а у отсутствующего или приостановленного узла билета нет вовсе, доход достаётся узлам, которые продолжают создавать свои блоки и ретранслировать данные. Узел, который только держит стейк, ничего не зарабатывает.