Голосование за предложение
Вступление
Как только предложение достигнет публичного референдума, держатели токенов могут проголосовать за него, используя свои собственные токены. Два фактора определяли вес голоса: количество заблокированных токенов и продолжительность блокировки (называемая осуждением). Это сделано для того, чтобы обеспечить экономическую поддержку результата, чтобы предотвратить продажу голосов. Следовательно, чем дольше Вы хотите заблокировать свои токены, тем сильнее будет ваш голос. У Вас также есть возможность вообще не блокировать токены, но вес голосования резко снижается.
Референдумы — это простые, инклюзивные схемы голосования на основе ставок. С каждым референдумом связано предложение, в котором предлагается какое-либо действие. Они имеют фиксированную продолжительность, по истечении которой голоса подсчитываются, и действие вступает в силу, если голосование одобрено.
В Moonbeam пользователи смогут создавать, поддерживать и голосовать за предложения, используя свой адрес H160 и закрытый ключ, то есть свою обычную учетную запись Ethereum!
С выпуском Moonbase Alpha v6 пользователи сети теперь могут вносить предложения на публичные референдумы и голосовать за них. В этом руководстве рассказывается, как проголосовать за предложение, вынесенное на общественный референдум. Вы можете найти руководство по подаче предложения здесь.
Дополнительную информацию, касающуюся управления (Governance) и участия в демократии (Participate in Democracy), можно найти на страницах Wiki Polkadot.
Примечание:
Это руководство было составлено с настроенной версией Moonbeam с короткими периодами запуска / введения в действие только для демонстрационных целей.
Определения
Некоторые из ключевых параметров этого руководства следующие:
- Период голосования — время, в течение которого держатели токенов должны проголосовать за референдум (продолжительность референдума).
- Голосование — инструмент, используемый держателями токенов для одобрения или отклонения предложения. Вес голоса определяется двумя факторами: количеством заблокированных токенов и продолжительностью блокировки (называемой осуждением).
- Явка — общее количество жетонов для голосования
- Электорат — общее количество токенов, выпущенных в сети.
- Максимальное количество голосов — максимальное количество голосов на аккаунт
- Период принятия — время между утверждением предложения и его введением в действие (принятие закона). Это также минимальный период блокировки при голосовании.
- Период блокировки — время (после принятия предложения), в течение которого токены победивших избирателей блокируются. Пользователи по-прежнему могут использовать эти токены для ставок или голосования.
- Делегирование — акт передачи Вашего права голоса на другую учетную запись до определенного срока.
В настоящее время для Moonbase Alpha:
Дорожная карта предложения
Прежде чем предложение будет принято, оно должно пройти несколько этапов. Общий порядок предложения следующий (были сделаны некоторые упрощения):
- Держатели токенов должны создать прообраз предложения, который определяет действие, которое необходимо выполнить. Отправитель платит сбор за хранимый байт: чем больше размер прообраза, тем выше плата. После отправки он возвращает хэш прообраза.
- Держатели токенов могут подать предложение, используя хэш прообраза, блокируя токены в процессе. Как только транзакция отправки принята, предложение публикуется.
- После того, как предложение внесено в список, держатели токенов могут поддержать предложение (поручиться за него), заблокировав то же количество токенов, которое заблокировал исходный отправитель предложения.
- Предложение, получившее наибольшую поддержку, выносится на общественный референдум.
- На референдуме держатели токенов голосуют «Да» или «Нет» за предложение, заблокировав токены. На вес голоса влияют два фактора: заблокированная сумма и период блокировки.
- Если предложение проходит, оно вступает в силу через определенное время.
Голосование на референдуме
В этом разделе рассматривается процесс голосования на референдуме. В руководстве предполагается, что он уже выполняется, в данном случае созданный в этом руководстве.
Чтобы проголосовать за предложение в сети, Вам необходимо использовать интерфейс PolkadotJS Apps. Для этого Вам необходимо сначала импортировать учетную запись в стиле Ethereum (адрес H160), что вы можете сделать, следуя этому руководству. В этом примере три учетных записи были импортированы и названы супер оригинальными именами: Alice, Bob и Charley.
Предложение, по которому проводится голосование, установит баланс Bob на 1500 через управление!
Как проголосовать
Голосовать на Moonbeam довольно просто. Все, что связано с управлением, находится на вкладке «Демократия», где (на изображении) Вы можете отметить цифру 1, указывающую на то, что еще не решен один вопрос о демократии (предложения или референдумы). Оказавшись там, Вы можете просмотреть подробную информацию о референдуме за который хотите проголосовать, щелкнув стрелку рядом с описанием. Число рядом с действием и его описанием называется индексом референдума (в данном случае это 0). Когда будете готовы, нажмите кнопку «Голосовать».
Здесь Вам необходимо предоставить следующую информацию:
- Выберите аккаунт, за который Вы хотите проголосовать
- Введите количество жетонов, которыми Вы хотите проголосовать. Они будут заблокированы на время, указанное на следующем шаге.
- Установите убежденность голосования, которая определяет его вес (vote_weight = tokens * conviction_multiplier). Множитель убеждения связан с количеством периодов вступления в силу, на которые токены будут заблокированы. Следовательно, чем дольше Вы хотите заблокировать свои токены, тем сильнее будет ваш голос. У Вас также есть возможность вообще не блокировать жетоны, но вес голоса резко снижается (жетоны по-прежнему заблокированы во время референдума).
4. Нажмите «Голосовать за», чтобы одобрить предложение, или «Голосуйте против», чтобы отклонить предложение, а затем подпишите транзакцию.
Примечание
Периоды блокировки, показанные на предыдущем изображении, не следует воспринимать как справочные. Это руководство было составлено с настроенной версией Moonbeam с короткими периодами запуска / введения в действие только для демонстрационных целей.
В этом случае Alice решила «Проголосовать за предложение» с убежденностью в 6 раз. С другой стороны, Charley решил «проголосовать против» по предложению, но решил не блокировать никакие токены (его токены блокируются только на время референдума), поэтому его осуждение было 0,1x. При таком распределении голосов частичные результаты можно увидеть на главной вкладке «Демократия».
Из голосования можно сделать несколько важных выводов:
- Взвешенный голос Alice составляет 10800 единиц. То есть ее 1800 заблокированных жетонов умножили ее убежденность в 6 раз.
- Взвешенный голос Charley составляет 80 единиц. То есть его 800 жетонов без периода блокировки (только во время референдума) делали его коэффициент убежденности x0.1.
- На экране отображаются как оставшийся период голосования, так и время до принятия предложения (если оно принято).
- Общая явка (в процентах) составляет всего 0,21%. Это рассчитывается как общее количество токенов для голосования (2600), разделенное на общее количество токенов в сети (в данном случае 1,22 млн).
- Несмотря на то, что явка довольно низкая, предложение предварительно одобрено из-за одобрения подавляющим большинством. Более подробную информацию можно найти в этом разделе.
- Важно записать индекс референдума, так как это необходимо для разблокировки токенов позже, когда истечет период блокировки. В настоящее время нет возможности получить индекс референдума после того, как он был принят.
По истечении периода голосования предложение будет отображаться на вкладке «Отправка», если оно будет одобрено. Здесь вы также можете увидеть время, оставшееся до принятия предложения.
Помните, что в этом примере функция setBalance использовалась для установки баланса Bob на 1500 токенов. По истечении срока вступления в силу вы можете вернуться на вкладку «Учетные записи», чтобы убедиться, что предложение было внесено в закон.
Делегирование голосования
Держатели токенов могут делегировать свой голос другому аккаунту, мнению которого они доверяют. Делегируемая учетная запись не требует каких-либо действий. Когда они голосуют, вес голоса (то есть количество жетонов, умноженное на множитель убежденности, избранный делегатом) добавляется к его голосу.
Чтобы делегировать свой голос, сначала перейдите в меню «Внешние элементы» на вкладке «Разработчики».
Здесь Вам необходимо предоставить следующую информацию:
- Выберите учетную запись, из которой Вы хотите делегировать свой голос
- Выберите pallet , с которым хотите взаимодействовать. В данном случае это pallet демократии.
- Выберите внешний метод, который будет использоваться для транзакции. Это определит поля, которые необходимо заполнить в следующих шагах. В этом случае это delegate extrinsic.
- Выберите учетную запись, на которую вы хотите передать свой голос.
- Установите убежденность голосования, которая определяет его вес (vote_weight = tokens * conviction_multiplier). Множитель убеждения связан с количеством периодов вступления в силу, на которые токены будут заблокированы. Следовательно, чем дольше Вы хотите заблокировать свои токены, тем сильнее будет ваш голос. У Вас также есть возможность вообще не блокировать токены, но вес голосования резко снижается.
- Установите количество токенов, которое Вы хотите делегировать в учетную запись, предоставленную ранее.
- Нажмите кнопку «Отправить транзакцию» и подпишите транзакцию.
В этом примере Alice делегировала Charley общий вес 1000 (1000 токенов с коэффициентом убежденности (conviction factor) x1).
Примечание:
Другой способ делегировать голоса — на вкладке «Учетные записи». Нажмите на три точки учетной записи, с которой Вы хотите делегировать свой голос, и введите информацию, как и раньше.
После того, как учетная запись, на которую Вы делегировали свой голос, была передана голосам, общий вес делегированного голоса будет распределен для варианта, выбранного учетной записью. В этом примере Charley решил проголосовать за предложение, вынесенное на публичный референдум. Он проголосовал общим весом 800 (800 жетонов с коэффициентом убедительности x1). Но поскольку Alice делегировала ему вес в 1000 голосов, «Да» всего 1800 единиц.
Чтобы удалить делегирование, повторите процесс, описанный ранее, но выберите внешнюю функцию без делегирования на шаге 3.
Из делегирования голосования можно сделать несколько важных выводов:
- Если владелец токена удалит делегирование голосов во время публичного референдума, на котором использовались делегированные голоса, они будут удалены из подсчета.
- Держатель токена, который делегировал голоса, по-прежнему имеет экономическую поддержку. Это означает, что если вариант, выбранный делегатом, выиграет, делегированные токены будут заблокированы на количество периодов блокировки.
- Токены, делегированные для голосования, больше не входят в свободный баланс держателя токенов. Чтобы узнать больше о типах балансов, Вы можете посетить этот сайт
- Держатель токена, который делегировал токены, не может участвовать в публичном референдуме. Во-первых, владелец токена должен отменить делегирование своего голоса.
- Владелец токена, который делегировал токены, должен вручную разблокировать свои заблокированные токены после истечения периода блокировки. Для этого необходимо знать индекс референдума.
Разблокировка заблокированных токенов
Когда держатели токенов голосуют, используемые токены блокируются и не могут быть переданы. Вы можете проверить, есть ли у Вас заблокированные токены, на вкладке «Учетные записи», развернув данные учетной записи адреса для запроса. Там Вы увидите разные типы балансов (подробнее о каждом из них вы можете прочитать здесь). Если Вы наведете курсор на значок рядом с надписью «демократия», отобразится информационная панель, сообщающая вам текущий статус вашего замка. Различные состояния блокировки включают:
- Заблокирован из-за продолжающегося референдума, что означает, что вы использовали свои жетоны и должны дождаться завершения референдума, даже если Вы проголосовали с фактором убеждения без блокировки.
- Заблокировано из-за выбранного множителя убежденности, отображается количество блоков и оставшееся время.
- Срок действия блокировки истек, что означает, что теперь Вы можете вернуть свои токены.
По истечении срока блокировки Вы можете запросить свои токены обратно. Для этого перейдите в меню «Внешние компоненты» на вкладке «Разработчики».
Здесь необходимо отправить два разных внешних объекта. Во-первых, Вам необходимо предоставить следующую информацию:
- Выберите учетную запись, из которой Вы хотите восстановить свои токены.
- Выберите поддон, с которым хотите взаимодействовать. В данном случае это поддон демократии.
- Выберите внешний метод, который будет использоваться для транзакции. Это определит поля, которые необходимо заполнить в следующих шагах. В данном случае это removeVote extrinsic. Этот шаг необходим для разблокировки токенов. Этот внешний вид также может быть использован для снятия вашего голоса с референдума.
- Введите индекс референдума. Это число, которое появилось в левой части вкладки «Демократия». В данном случае это 0.
- Нажмите кнопку «Отправить транзакцию» и подпишите транзакцию.
Для следующего внешнего запроса Вам необходимо предоставить следующую информацию:
- Выберите учетную запись, из которой Вы хотите восстановить свои токены
- Выберите поддон, с которым хотите взаимодействовать. В данном случае это поддон демократии.
- Выберите внешний метод, который будет использоваться для транзакции. Это определит поля, которые необходимо заполнить в следующих шагах. В данном случае это unlock extrinsic .
- Введите целевую учетную запись, которая получит разблокированные токены. В этом случае токены будут возвращены Alice.
- Нажмите кнопку «Отправить транзакцию» и подпишите транзакцию.
После завершения транзакции заблокированные токены должны быть разблокированы. Чтобы еще раз проверить, Вы можете вернуться на вкладку «Учетные записи» и увидеть, что для этого примера Alice имеет полный баланс как «передаваемый».
Положительный сдвиг явки
В публичных референдумах используется показатель смещения положительной явки, то есть формула одобрения большинством голосов. Уравнение следующее:
Где:
- Одобрить — количество голосов «За» (с учетом множителя убеждения).
- Против — количество голосов “против” (с учетом множителя убеждения).
- Явка — общее количество жетонов для голосования (без учета множителя убеждения).
- Электорат — общее количество токенов, выпущенных в сети.
В предыдущем примере это были следующие числа:
Вкратце, для одобрения предложения при низкой явке требуется подавляющее большинство голосов «за», но по мере увеличения явки оно становится простым большинством.
Если у Вас есть отзывы относительно отправки предложения по Moonbase Alpha или любой другой теме, связанной с Moonbeam, не стесняйтесь обращаться через наш официальный канал разработки в Discord.
Подготовлено при участии: Anpol, Lyn.