Вики ZooBC
Proof of Participation

Оценка участия

Оценка участия — мера ZooBC того, насколько хорошо зарегистрированный узел выполняет свою работу. Она изменяется от 0 до 100 %, и каждый узел начинает с 20 %. Она растёт, когда собственные блоки узла несут квитанции, заработанные им за ретрансляцию данных, и падает, пока узел отсутствует после пропущенного хода. Оценка определяет шанс узла в лотерее coinbase, которая распределяет новые ZBC, а узел, чья оценка достигла нуля, теряет своё место. На то, кто создаёт блоки, она не влияет.

Шкала

Внутри оценка — целое число от 0 до 10^13, отображаемое как от 0 до 100 %. Каждый узел, включая генезис-места, начинает со значения по умолчанию 2 × 10^12, то есть 20 %. У узла в очереди оценки нет; допуск записывает значение по умолчанию. Оценку вычисляет каждый узел по самой цепочке. Это не рейтинг, выставляемый пользователями, и не стейк.

Как она растёт: квитанции в собственных блоках узла

Ретрансляция приносит квитанции, а не оценку. Оценка меняется, когда наступает ход узла: в блоке, который он создаёт, он публикует выборку заработанных квитанций, и каждый валидатор их проверяет. Число показанных квитанций сравнивается с опорным значением:

pivot = floor(min(|S| − 1, P) / 2)

где S — набор жеребьёвки (активные узлы, которые не приостановлены), а P — число приоритетных пиров, 12 в mainnet. При 11 узлах в наборе жеребьёвки опорное значение равно 5; начиная с 13 узлов — 6. Иными словами, опорное значение — это примерно половина того, что производитель мог бы показать.

Если показано больше квитанций, чем опорное значение, оценка производителя растёт; если меньше — падает. Величина изменения к тому же масштабируется по числу активных узлов. Результат всегда остаётся в пределах от 0 до 100 %. Поэтому узел, блоки которого несут мало квитанций, постепенно сползает вниз, даже если никогда не пропускает ход.

Подъём медленный намеренно: пока узлов меньше 2 880, узлу, который создаёт все свои блоки вместе с квитанциями, нужно 30 дней, чтобы подняться от 0 до 100 %, — в среднем около 1,67 пункта за 12-часовую единицу.

Ретрансляция возвращает квитанции в лоток, который пока не даёт оценки; собственный блок узла несёт их выборку, а индикатор сравнивает их число с опорным значением: меньше — оценка вниз, больше — оценка вверх.
Ретрансляция возвращает квитанции в лоток, который пока не даёт оценки; собственный блок узла несёт их выборку, а индикатор сравнивает их число с опорным значением: меньше — оценка вниз, больше — оценка вверх.

Как она падает: отсутствие

С любого пропущенного хода и до своего следующего собственного блока узел считается отсутствующим и теряет 5 пунктов за единицу (12 часов, пока узлов меньше 2 880) — втрое быстрее, чем поднимается безупречный узел. Пока узлов меньше 2 880, молчащий узел падает с 20 % до нуля за 2 дня, со 100 % — за 10. См. Пропущенные ходы, приостановка и исключение.

Некоторые вещи вообще не меняют оценку. Неудавшееся доказательство хранения не стоит оценки: хранитель, оставшийся в меньшинстве, теряет лишь вознаграждение за хранение в этой эпохе (см. Пул децентрализованного хранения). До высоты 40, пока цепочка разогревается, никакая оценка не меняется. И нет ни ежечасной отметки о присутствии, ни голосования: оценка складывается только из того, что несут блоки, и из ходов, которые пропускают узлы.

Что определяет оценка

Доход. Новые монеты и комиссии каждого блока распределяет лотерея coinbase. Пул вознаграждения блока (его coinbase, его комиссии и доля пула долголетия) делится на равные доли, по одной на розыгрыш. Каждый розыгрыш выбирает узел с вероятностью, пропорциональной его оценке, с помощью генератора, инициализированного сидом предыдущего блока и меткой zbc-coinbase, так что каждый узел вычисляет тех же победителей. Узел может выиграть несколько розыгрышей одного блока, и узел с низкой оценкой тоже может выиграть. Проводится один розыгрыш на каждую секунду промежутка между двумя предыдущими блоками, не более 600, и никогда не больше розыгрышей, чем держателей билетов (большой пул может увеличить их число в тех же пределах). Держатели билетов — это зарегистрированные узлы, которые зрелы и не отсутствуют и не приостановлены. Если ни у одного из них нет оценки, пул делится поровну.

Место. Узел, чья оценка достигла нуля, исключается, если только после этого не останется меньше трёх активных узлов.

Вот и всё. Оценка не является входом жеребьёвки производителей и не влияет на вес блоков при выборе ветви.

Две панели: в жеребьёвке производителей у узлов с 90 % и 30 % равные доли (1 : 1); в лотерее coinbase их доли 3 : 1. Оценка влияет на вознаграждение, а не на производство блоков.
Две панели: в жеребьёвке производителей у узлов с 90 % и 30 % равные доли (1 : 1); в лотерее coinbase их доли 3 : 1. Оценка влияет на вознаграждение, а не на производство блоков.

Почему власть и доход разделены

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

Каждое число, связанное с оценкой, например начальные 20 % и скорости роста и падения, — генезис-параметр цепочки.

См. также