Каждый блок в блокчейне Waves генерируется примерно за 1 минуту и выпускает дополнительные WAVES. Вознаграждение за блок — это эмиссия новых монет при появлении каждого нового блока в блокчейне.
Текущий размер вознаграждения за блок — 6 WAVES. Сообщество генераторов (ноды-валидаторы сети) может изменить размер вознаграждения за блок посредством голосования. Таким образом, протокол Waves обеспечивает децентрализованное и прозрачное управление монетарной политикой.
Обзор блокчейна Waves, Часть 3: О Ride
Вознаграждение распределяется между генератором блока — 2 WAVES плюс комиссии за транзакции, 2 WAVES идут в казну Power DAO, остальные 2 — на выкупа XTN.
- Если вознаграждение за блок более 6 WAVES, то Waves DAO и смарт-контракт для выкупа XTN получают по 2 WAVES, а генератор блока — остальное.
- Если вознаграждение за блок — от 2 до 6 WAVES, то Waves DAO и смарт-контракт для выкупа XTN получают по (R-2)÷2 WAVES (подразумевается целочисленное деление), где R — вознаграждение за блок.
- Если вознаграждение за блок менее 2 WAVES, генератор блока получает вознаграждение за блок полностью.
Если будет активирована фича №21 “Cease XTN buy-back” (но не ранее чем через 100000 блоков после активации фичи №19), начисление доли для выкупа XTN будет прекращено. Его будет получать генератор блока
Основные принципы голосования
- Каждая генерирующая нода может голосовать за то, чтобы увеличить, уменьшить или оставить без изменения текущий размер вознаграждения.
- Голосование длится 10000 блоков.
- В результате голосования вознаграждение может увеличиться или уменьшиться на 0.5 WAVES либо остаться прежним.
- Выбранный размер вознаграждения остается неизменным на протяжении 50000 блоков (~35 дней), которые следуют за моментом окончания голосования.
- В последние 10000 блоков из периода в 50000 блоков проходит голосование для следующего периода.
Как происходит голосование
Генерирующая нода указывает новый желаемый размер вознаграждения с помощью настройки waves.rewards.desired в файле конфигурации ноды.
Если значение больше текущего размера вознаграждения, то генератор блока голосует за увеличение вознаграждения; если меньше — за уменьшение. Если значение настройки не задано в файле конфигурации, генератор голосует за сохранение текущего размера вознаграждения.
Когда нода генерирует блок, она записывает в него значение настройки waves.rewards.desired из своего файла конфигурации. Если значение настройки не задано в файле конфигурации, то в блок записывается -1.
За время голосования в 10000 блоков одна нода может сгенерировать несколько блоков — таким образом, одна нода может проголосовать несколько раз. Как часто нода генерирует блоки, определяется консенсусом LPoS.
Подсчет голосов
Для подсчета голосов проверяются значения всех 10000 блоков, которые были сгенерированы в период голосования. Если в блоке записана -1 или величина, которая совпадает с текущим размером вознаграждения, то генератор блока голосует за сохранение текущего размера вознаграждения.
Если в блоке записано значение, которое больше текущего размера вознаграждения, то генератор голосует за увеличение вознаграждения; если меньше — за уменьшение.
Вознаграждение за генерацию блока увеличивается/уменьшается, только если за увеличение или уменьшение отдано более половины голосов из 10000 — то есть 5001 голос или более. Если это условие соблюдено, то размер текущего вознаграждения изменяется с шагом в 0.5 WAVES.