April 4, 2020

Константы, используемые в Minter блокчейне

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

Minter является публичным blockchain, работающим на концепции Доказательства владения с делегированием (dPoS), что означает, что вес валидатора определяется суммой токенов (BIP), связанных как залог. Эти BIP могут принадлежать непосредственно валидатору или делегированы ему владельцами BIP.

К разработке логики валидаторов и делегаторов команда разработчиков Minter подошли особенно внимательно. Главной целью было, чтобы каждый пользователь мог принимать участие в поддержании сети и получать за это награду.

Основные концепции

Для этого были реализованы следующая основные концепции:

  • Валидатором может стать любой держатель монет, нужно лишь установить мастерноду и отправить транзакцию на включение в список валидаторов.
  • Количество валидаторов в сети ограничено, так как, чем больше валидаторов поддерживают сеть, тем меньше пропускная способность. Это происходит из-за того, что для генерации блока все активные валидаторы должны его проверить и подписать. Чем больше валидаторов, тем больше времени уходит на передачу блока по сети и его валидацию. На момент запуска сети, максимальное количество валидаторов установлено на отметке 16, из которых 4 ноды принадлежат команде и включены в Genesis Block. 4 новых ноды добавляется ежемесячно; в итоге число валидаторов увеличится до 256 (в течение примерно пяти лет). Данное ограничение установлено в целях избежание проблем, связанных с ростом сложности минтинга, а также для обеспечения высокой скорости работы сети.
  • Так как валидатор может не иметь достаточно средств, чтобы попасть в топ нод, но может быть крутым специалистом, введена возможность делегировать средства для обычных пользователей. При делегировании монеты блокируются в блокчейне, увеличивая стейк выбранного валидатора. Валидатор не имеет доступа к этим средствам. Делегаторы, как и валидаторы, получают награду за генерацию блоков и комиссию за транзакции. Валидатор имеет возможность установить комиссию от 0 до 100% для наград своих делегаторов.
  • Так как в сети Minter каждую монету можно мгновенно обменять на базовую и обратно, продуман новый подход к делегированию: у пользователей есть возможность отправлять в стейк любые монеты в блокчейне Minter. Как только монета попадает в стейк к валидатору, блокчейн вычисляет ее реальную стоимость и добавляет к мощности валидатора. Так как разработчикам приходится пересчитывать «вес» делегированных монет довольно часто, принято решение ограничить количество делегаторов на одного валидатора до 1000 мест. Также по этой причине реальный размер стейков и список валидаторов пересчитывается раз в 120 блоков, либо в том случае, если один из текущих валидаторов отключается.
  • Во избежание обмана системы и делегирования большего количества монет, чем есть у пользователя (например, есть монета А. Продажа 100 единиц приносит 10 BIP, но продажа 200 единиц принесет всего 15 BIP. Это происходит из-за плавающей цены каждой проданной монеты. Происходит это так - пользователь создает 2 кошелька и с каждого делегирует по 100 монет. Реальная стоимость 200 монет — 15 BIP. Однако стейки считаются отдельно, поэтому реальное количество делегированных монет будет 100 монет + 100 монет = 20 BIP) введён следующий механизм:

- все делегированные монеты одного типа суммируются;
- считается, сколько принесет продажа всех стейков суммарно;
- распределяется полученное количество BIP на делегаторов пропорционально
их стейкам.

  • Самым крутым решением для валидации стало то, что награды за каждый блок начисляются ВСЕМ активным валидаторам пропорционально их стейку. Делегаторам и валидаторам не нужно ждать, пока их нода «намайнит» новый блок, чтобы получить награду, как это происходит в традиционных сетях. В блокчейне Minter все валидаторы и делегаторы получают свои награды приблизительно раз в 10 минут (каждый 120-й блок) зачислением на их счет.
  • Для защиты от long-range атак делегированные в ноду средства блокируются. Должен пройти unbonding-период (период разделегирования), который составляет примерно 30-31 день (~518400 блоков). После него ваш стейк снова будет в вашем распоряжении.

Вознаграждения

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

Однако, прежде чем эта награда будет распространена среди делегатов внутри пула, валидатор может применить комиссию. Другими словами, делегаты должны заплатить комиссию своим валидаторам за доход, который они получают.

Давайте рассмотрим валидатора, чья доля (т.е. собственный стейк + делегированный) составляет 10% от общей суммы всех валидаторов. Этот валидатор имеет 20% собственного стейка и применяет комиссию в размере 10%. Теперь рассмотрим блок со следующим доходом:

· 333 BIP в качестве вознаграждения за блок

· 10 BIP в качестве транзакционной выплаты.

10% от этой суммы приходится на счет DAO.
10% от этой суммы приходится на счет команды разработчиков Minter.

В результате, 274.4 BIP будет распределяться среди всех пулов.

В примере пул валидатора составляет 10% от общей суммы, это означает, что пул получает 27.44 BIP. Теперь давайте посмотрим на внутреннее распределение доходов:

· Комиссия = 10% * 80% * 27.44 BIP = 2.744 BIP

· Доход валидатора = 20% * 27.44 BIP + Комиссия= 8.232 BIP

· Общее вознаграждение делегатов = 80% * 27.44 BIP - Комиссия= 19.208 BIP

Затем каждый делегат получает часть BIP пропорционально его доле в пуле валидатора.

Калькулятор доходов

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

Главная задача blockchain Minter быть максимально понятным для пользователей.

Ссылки

Блокчейн Минтер

Основные понятия

Калькулятор доходов