Делегирование

Материал из Minter Wiki

Делегирование - это транзакция в сети Minter при которой происходит блокировка средств на счету пользователя, увеличивая при этом стейк выбранного Валидатора. Этот процесс может называться как bonding (от англ. «привязка») и противоположное ему действие - unbondig (от англ. "отвязка" ).

Любой пользователь сети может делегировать свои монеты BIP, а также любые выпущенные в сети Minter кастомные монеты.

Пользователь, который делегирует средства называется Делегатор.

Для чего делегировать монеты

Делегирование выполняет несколько важных функций в сети:

  1. делегируя средства, каждый пользователь увеличивает Силу голоса Валидатора, которая необходима для принятия важных решений, в том числе подписания блока
  2. начисление вознаграждений происходит только на делегированные средства.

Безопасность Делегирования

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

Штрафы для валидаторов и делегаторов

Также см. статью Возможно ли потерять делегированные средства

Штрафы у валидатора.jpg

Делегированные средства могут быть уменьшены из-за штрафов, накладываемых на Валидатора в следующих случаях:

  • Штраф за пропуск блоков. При пропуске 12 блоков из 24 последних, не важно по какой причине это произойдёт, на Валидатора налагается штраф в виде уничтожения ("сгорания") 1% от всего стейка ноды. Также эта нода исключается из активных и она перестает подписывать новые блоки. Владельцы ноды, после того как устранят проблему, должны вновь включить ее. Во время простоя, Делегаторам не начисляется Вознаграждение за делегирование.
  • Штраф за попытку двойной подписи. При попытке двойной подписи одного и того же блока на Валидатора налагается штраф в виде уничтожения ("сгорания") 5% от всего стейка ноды. При этом происходит принудительное разделегирование (unbond) всех средств, делегированных мастерноде с появлением их на балансе Делегатора через 518 400 блоков (~ 30 дней).

Отключение Валидатора

Если у Валидатора по разным причинам произойдет отключение ноды на длительный период времени, то вознаграждения начисляться не будут. При этом все средства остаются делегированными до тех пор, пока Делегатор не создаст транзакцию по разделегированию. После чего средства отобразятся на балансе через 518 400 блоков (~ 30 дней).

Комиссия сети за Делегирование

Комиссия за делегирование фиксированная и составляет - 0,20 BIP.

Она не зависит от количества делегируемых монет и от того какие монеты вы отправляете.

Также в каждой транзакции можно отправить до 1024 байт полезных данных в поле Сообщение. За каждый байт предусмотрена комиссия в 0.002 BIP.

В программном коде любая стоимость транзакций считается других единицах измерения - units. 1 BIP = 1000 units. Поэтому можно встретить следующее отображение стоимости транзакции:

TypeDelegate	200 units
TypeUnbond	200 units

Выбор Валидатора

Подробнее см. статью Сравнение валидаторов

Список всех Валидаторов можно получить на одном из сервисов:

Прежде чем делегировать свои средства необходимо выбрать Валидатора по различным критериям:

1. Комиссия Валидатора.
Независимо от того кому Вы делегируете свои средства вы получите одинаковое вознаграждение. Но каждый Валидатор имеет возможность установить свою комиссию от 0 до 100% от выплачиваемых наград своим делегаторам. Поэтому выгоднее выбирать Валидатора с наименьшей комиссией. Необходимо обращать внимание на то, что Валидатор после запуска ноды не может поменять свою комиссию ни в большую, ни в меньшую сторону.

2. Кешбек, бонусы, акции.
Для привлечения Делегаторов в свою ноду каждый Валидатор может предлагать различные бонусы:

  • Кешбек в виде ежедневного возврата части комиссии на счет делегатора. Часто Валидаторы используют для этого собственные монеты. Иногда кешбек используют для понижения фактической комиссии, а иногда кешбек используют для создания особых условий для Делегаторов с крупными суммами, иногда возврат достигает размера комиссии и тогда фактическая комиссия становится равной 0%.
  • Некоторые Валидаторы используют различные системы бонусов. Это может быть понижение комиссии при достижении определенного размера стейка (например при Делегировании в 1 млн. BIP комиссия будет равна 0%)
  • Различные акции. Многие Валидаторы используют всевозможные формы повышения активности среди своих Делегаторов. Например ежедневные лотереи, викторины, конкурсы, розыгрыши чеков и так далее. Бывают постоянные акции и разовые.

3. Надежность Валидатора.
Как уже описано в разделе "Безопасность делегирования", нода может получить штраф при некачественной работе. Поэтому следует подойти к этому вопросу серьезно и изучить историю уже полученных штрафов, если они были; посмотреть информацию об техническом и программном оснащении ноды. Следует отметить, что штрафы были частыми при запуске основной сети и большинство нод, которые получали штрафы старались компенсировать все потери своих Делегаторов.

4. Обратная связь.
Желательно найти контактные данные Валидатора - это чат ноды в Telegram, электронная почта или бот обратной связи в Telegram, личные контактные данные администраторов ноды. Это необходимо для оперативного решения возникающих вопросов по работе ноды.

5. Минимальный стейк для Делегирования.
Подробнее в разделе Минимальное количество монет для делегирования.

Пока следует знать, что у некоторых популярных Валидаторов присутствует минимальная сумма для Делегирования, которую необходимо учитывать при принятии решения.

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

Минимальное количество монет для делегирования

Каждый Валидатор имеет 1000 слотов для делегирования. Это ограничение введено из-за того, что системе приходится пересчитывать «вес» делегированных монет довольно часто. Следует отметить, что после введения в блокчейн всех Валидаторов, а их будет 256 штук, максимальное количество слотов в сети Minter будет 256 000.

Каждый отдельный слот предназначен для помещения средств от 1 Делегатора в отдельной кастомной монете. То есть, если Делегатор отправит 2 суммы: 500 BIP и 100 POPE, то он займет 2 слота. Если Делегатор отправит сначала 100 BIP и потом еще 200 BIP, то эти монеты суммируются в 1 слоте.

Все cлоты сортируются по размеру делегированных средств в пересчете на BIP. Пересчет кастомных монет при делегировании происходит по особой методике (см. раздел Стоимость кастомных монет при делегировании).

После того как у Делегатора будут заняты все 1000 слотов появляется ограничение по сумме делегированных средств. Любой новый Делегатор не может заделегировать сумму меньше, чем сумма в слоте №1000. Если же он отправляет сумму больше чем в слоте №1000, то его средства занимают свое место среди слотов Валидатора, а средства со слота №1000 разделегируются и моментально возвращаются (разблокируются) на счет Делегатора без отображения в списке транзакций.

Отображение информации по слотам в Minterscan

При Делегировании очень важно контролировать позиции своих слотов у Валидаторов. Рассмотрим эти действия на примере Explorer Minterscan.

В списке Валидаторов мы можем узнать количество занятых слотов и минимальный стейк в BIP для делегирования.

Слоты у Валидаторов.jpg

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

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

Отображение слотов по фильтру адреса в Minterscan.png

Стоимость кастомных монет при делегировании

Так как в сети Minter каждую монету можно мгновенно обменять на базовую и обратно, Разработчики предложили новый подход к делегированию: они дали возможность делегировать любые монеты в блокчейне Minter. Как только монета попадает в стейк к Валидатору, блокчейн вычисляет ее реальную стоимость и добавляет к Силе голоса Валидатора. По этой причине реальный размер стейков и список валидаторов пересчитывается раз в 120 блоков, либо в том случае, если один из текущих валидаторов отключается.

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

  • Стоимость Кастомных монет при Конвертации (в том числе при оплате различных услуг). Подробнее рассмотрено в статье Конвертация монет в сети Minter.
  • Стоимость Кастомных монет при Делегировании. Рассмотрим ниже.

Разработчики обозначили следующую проблему:

Однако была проблема, которая возникла при делегировании пользовательских монет. Предположим, что есть монета А. Продажа 100 единиц приносит 10 BIP, но продажа 200 единиц принесет всего 15 BIP. Это происходит из-за плавающей цены каждой проданной монеты. Представим сценарий:

  • Пользователь создает 2 кошелька
  • С одного кошелька делегирует 100 монет
  • Со второго кошелька делегирует ту же сумму

Реальная стоимость 200 монет — 15 BIP. Однако стейки считаются отдельно, поэтому реальное количество делегированных монет будет 100 монет + 100 монет = 20 BIP. Выходит, что таким образом можно обмануть систему и делегировать больше монет, чем есть у пользователя.

Чтобы решить эту проблему, нам пришлось ввести следующий механизм:

  • Суммируем все делегированные монеты одного типа
  • Считаем, сколько принесет продажа всех стейков суммарно
  • Распределяем полученное количество BIP на делегаторов пропорционально их стейкам

Формула расчета стоимости Кастомных монет при делегировании будет следующая:

PriceD = (reserve * (1 - (1 - sellAmount / supply) ^ (100 / crr))) / sellAmount

  • PriceD - стоимость Кастомной монеты при делегировании в BIP;
  • reserve - резерв для монеты в BIP;
  • sellAmount - количество продаваемых монет;
  • supply - объем монет в обращении;
  • crr - CRR монеты

Расчет количества Кастомных монет при наличии минимального стейка

Для расчета нам необходимо знать:

После этого необходимо провести простейший расчет:

ККМ = МСН *100 / СКМД,, где

  • ККМ - искомое Количество Кастомных монет
  • МНС - Минимальный стейк ноды
  • СКДМ - Стоимость кастомных монет при делегировании в %

Например, монета POPE имеет СКДМ 74% и нам нужно узнать минимальный объем для делегирования в ноду Minter_Pro_5% у которой минимальный стейк 512 BIP. Тогда:

ККМ = 512 BIP *100 / 74 % = 691,89 POPE

ВНИМАНИЕ! Это расчет МИНИМАЛЬНОЙ СУММЫ! Для того чтобы рассчитанную сумму не выбило из делегирования сразу, необходимо делегировать сумму больше рассчитанной.

Способы Делегирования

Для делегирования достаточно просто отправить транзакцию делегирования, указав публичный ключ мастерноды, в которую желаете делегировать. Публичный ключ Валидатора всегда начинается с префикса "MP...". Указан в описании Валидатора в текстовом формате или в виде QR-кода.

Отправить транзакцию делегирования можно из раздела Делегирование в консоли или раздела Send в мобильном приложении указав публичный ключ в поле To.

Делегирование из Консоли

Console 4.png

Для этого достаточно в разделе "Делегирование" указать Публичный ключ Валидатора, Кастомную монету для делегирования и объем монеты. В расширенном режиме можно выбрать монету для оплаты комиссии и прикрепить к транзакции сообщение. После этого нажать кнопку "Делегировать" и подтвердить выполнение операции.

Делегирование из мобильного кошелька iOS или Android

Android Wallet Send Tab.png

На вкладке "Send" необходимо указать Публичный ключ Валидатора, Кастомную монету для делегирования и объем монеты. Нажать кнопку "Send" и подтвердить операцию.

Автоделегирование

Подробнее см. статью Как настроить автоделегирование

Автоделегирование в сети Minter - это автоматическое создание транзакций делегирования и отправка этих транзакций Валидатору при накоплении в кошельке необходимой суммы.

Для автоделегирования можно использовать форму в разделе Делегирование в Консоли или воспользоваться сторонними сервисами.

Разделегирование средств ("анбонд")

Подробнее см. статью Отзыв монет из делегирования

Для защиты от long-range атак разработчики ввели блокировку делегированных средств на 30 дней после их «отзыва».

Разделегирование средств можно выполнить только в Консоли на вкладке "Делегирование". Для этого нужно заполнить в форме "ОТЗЫВ МОНЕТ ИЗ МАСТЕРНОДЫ" Публичный ключ ноды, выбрать монету и количество монет.

Типы транзакций при делегировании

В программном коде транзакция отображается в виде: TypeDelegate 0x07 TypeUnbond 0x08

Транзакция на делегирование

Type: 0x07

При операции по делегированию монеты в системе будут содержаться следующие данные: type DelegateData struct { PubKey []byte Coin [10]byte Stake *big.Int }

PubKey - Публичный ключ Валидатора
Coin - Тикер делегируемой монеты
Stake - Объем монеты для делегирования

Транзакция на разделегирование

Type: 0x08

При операции по разделегированию монеты в системе будут содержаться следующие данные : type UnbondData struct { PubKey []byte Coin [10]byte Value *big.Int }

PubKey - Публичный ключ Валидатора
Coin - Тикер разделегируемой монеты
Value - Объем монеты для разделегирования