Предлагаем изменить систему выбора делегатов
В Голосе все пользователи имеют равные права (пропорционально Силе Голоса), но некоторые участники более важны, чем другие. Они держат ноды (серверы) блокчейна и тем самым обеспечивают его работу. Сейчас таких держателей нод несколько десятков. Среди держателей нод есть «элита» - 19 делегатов, не только подписывающих блоки, но и определяющих параметры блокчейна. Эти делегаты очень важны для всего блокчейна, от них зависит как техническая, так и экономическая устойчивость Голоса.
Делегаты выбираются голосованием сообщества. Процедура голосования немного необычна. Каждый пользователь Голоса в любой момент может выбрать до 30 «своих» делегатов, при этом вес голоса за делегата в каждом случае равен Силе Голоса пользователя (точнее, количеству GEST, но чтобы не путаться, упростим до Силы Голоса). Голоса за делегатов постоянно подсчитываются (обновляются), а делегаты, за которых суммарно проголосовало больше всего СГ, считаются «топами». На первый взгляд, всё вроде бы нормально и логично. Но давайте разберёмся подробнее.
Чтобы упростить ситуацию, представим, что во всём блокчейне есть только три участника с СГ:
Костя со 100 голосами в СГ;
Наташа с 60 голосами в СГ;
Дима с 30 голосами в СГ.
Им надо выбрать 5 делегатов из, например, 10-ти кандидатов. Составим табличку голосования:
Костя | Наташа | Дима | Итого | |
---|---|---|---|---|
Кандидат 1 | 100 | 60 | 160 | |
Кандидат 2 | 60 | 30 | 90 | |
Кандидат 3 | 100 | 30 | 130 | |
Кандидат 4 | 100 | 100 | ||
Кандидат 5 | 100 | 60 | 30 | 190 |
Кандидат 6 | 30 | 30 | ||
Кандидат 7 | 60 | 60 | ||
Кандидат 8 | 60 | 60 | ||
Кандидат 9 | 100 | 100 | ||
Кандидат 10 | 30 | 30 |
Легко догадаться, что делегатами стали кандидаты номер 1, 3, 4, 5 и 9. Чем они похожи друг на друга? Всё просто: за них проголосовал Костя. Обратим внимание на Кандидата 2. За него проголосовали и Наташа, и Дима, но он не стал делегатом. Потому что у Наташи и Димы в сумме меньше голосов, чем у Кости. Что бы они ни делали, за кого бы они ни голосовали, на самом деле, выбор делает Костя. Например, за Кандидата 9 проголосовал только он, но этого хватило, чтобы сделать его делегатом.
Абсолютная власть
В Голосе происходит то же самое. У нас есть одна группа участников (Киберфонд) с достаточно большой СГ, чтобы при желании формировать топ-19 делегатов полностью на своё усмотрение.
Для этого вовсе не нужно иметь больше 50% всей СГ системы. Ведь за делегатов голосуют далеко не все пользователи, а те, что голосуют часто голосуют за тех же делегатов, что и эта группа, или наоборот «размывают» свои голоса между разными кандидатами, не претендующими на топ. Кроме того, даже среди независимых кандидатов (и делегатов) достаточно тех, кто поддерживает Киберфонд.
При нынешней системе голосования за делегатов «отвоевать» хоть какое-то количество мест в топе у Киберфонда практически невозможно, разве что он сам захочет отдать пару мест для создания видимости «демократии».
Контроль топ-19 делегатов - это абсолютная власть. Такой контроль позволяет протолкнуть нужный хардфорк, делать с блокчейном что угодно: записывать и стирать посты от имени любого аккаунта, удалять аккаунты вместе со всеми средствами и постами, переводить чужие токены на свой счёт, выпускать новые токены в свою пользу и т.д.
Буквально что угодно. Например, полностью поменять блокчейн, «переехав» на CyberWay. Сейчас это может сделать Киберфонд, а завтра - кто знает? - какой-то другой богатый человек или группа. Достаточно лишь купить нужное количество токенов, при этом такое количество есть в продаже.
Впрочем, проблема не в Киберфонде или другом топ-холдере, а в принципе: при нынешней системе голосования даже киты практически не могут влиять на формирование топа делегатов, не говоря уже о более мелкой «живности» Голоса.
Ни у кого из нас нет голоса при принятии самых важных решений.
Почему всё так странно?
Казалось бы, такая система голосования - очевидная «дыра» в безопасности блокчейна. Однако, она появилась не случайно и имеет своё объяснение.
Во-первых, создатели этой системы вряд ли ожидали, что контролировать топ-19 будет одна группировка или даже один человек. Вероятно, ожидалось, что это будет несколько независимых «олигархов», присматривающих друг за другом.
Во-вторых, предполагается, что группа больших и очень больших китов, которые на самом деле назначают делегатов, не заинтересованы делать глупости вроде воровства токенов из чужих кошельков или написания оскорбительных постов от чужого имени. Подобные действия способны полностью разрушить доверие к блокчейн-проекту и уничтожить его стоимость. Очевидно, что для «олигархов» это невыгодно.
В-третьих, в нормальной ситуации в медиа-блокчейне подавляющая часть токенов находится в СГ (чтобы приносить доход владельцам), а не предлагается к продаже на бирже. А значит, взять и купить контроль в топ-19 делегатов невозможно.
Если учесть все эти предположения, то действительно, система «олигархического» голосования надёжно защищает блокчейн от различных атак. Все делегаты на коротком поводке, в любой момент «олигархи» могут ввести кого-то в топ или вывести из топа, при этом никто посторонний в топ не пробьётся, не говоря уже о полном захвате.
К сожалению, в Голосе всё не так. У нас есть одна маленькая группа единомышленников, владеющих очень большой СГ. Эта группа нередко принимает как минимум спорные решения, негативно влияющие на курс и на сообщество. И на бирже сейчас достаточно токенов, чтобы при желании перехватить контроль над блокчейном.
В этих условиях «олигархическая» система голосования не работает. Ситуация явно требует изменений.
Что делать?
Группа «Новый Голос» предлагает изменить систему голосования за делегатов, сделав её более демократичной и устойчивой к атакам со стороны «олигархов».
В новой системе каждый участник Голоса сможет проголосовать за любое количество делегатов с разным процентом, в сумме не выходя за пределы 100% своей Силы Голоса.
Возьмём тот же пример с Костей, Наташей и Димой, но уже с новой системой голосования. Каждому из них придётся решить, какую часть своей Силы Голоса «отдать» за того или иного кандидата в делегаты, то есть с какой силой за него проголосовать. Вариантов бесконечно много, но для примера возьмём, скажем, такой:
Костя | Наташа | Дима | Итого | |
---|---|---|---|---|
Кандидат 1 | 30 | 10 | 40 | |
Кандидат 2 | 30 | 30 | ||
Кандидат 3 | 20 | 20 | ||
Кандидат 4 | 20 | 20 | ||
Кандидат 5 | 15 | 15 | ||
Кандидат 6 | 30 | 30 | ||
Кандидат 7 | 10 | 10 | ||
Кандидат 8 | 10 | 10 | ||
Кандидат 9 | 15 | 15 | ||
Кандидат 10 | 0 | |||
Всего | 100 | 60 | 30 | 190 |
Косте пришлось разделить свою СГ между кандидатами, чем и воспользовались Наташа и Дима. В результате:
- Костя провёл в топ двух «своих» кандидатов и одного совместно с Наташей;
- Наташа провела в топ одного «своего» кандидата и одного совместно с Костей;
- Дима провёл в топ одного «своего» кандидата.
Как видим, расклад существенно изменился. Несмотря на абсолютный перевес в СГ, Костя уже не может провести в топ всех пятерых «своих» кандидатов, не обращая внимания на остальных участников. При этом даже небольшой участник (Дима), сконцентрировав свою СГ на одном кандидате, смог провести его в топ.
Возвращаясь к Голосу: такая система голосования позволяет даже относительно небольшим группам китов и косаток иметь в топе своего представителя, но практически исключает возможность захвата всего топа одной группировкой или одним большим китом. Это намного честнее и безопаснее для блокчейна, чем нынешняя система.
Кто за и кто против?
Мы провели предварительную работу, попросив делегатов и держателей нод оценить предлагаемые изменения.
Из опрошенных (не до всех удалось добраться) инициативу поддержали 7 топ-делегатов и 12 держателей нод, включая почти-топовых.
Против высказались представитель Киберфонда @creator и представитель stihi.io @anela. Делегат @arcange воздержался, заметив, что не считает это первоочередной задачей.
Мы пока не получили ответ от топ-делегатов @primus, @goloscore, @xtar, @on0tole, @anyx, @kulturagolosa, @kuna, @golosio и @steepshot. Просим вас высказать своё мнение в комментариях к этому посту. Также просим высказаться всех держателей нод, ваше мнение тоже важно.
Кроме того, мы предлагаем высказаться по этому вопросу крупным держателям токенов (китам): @alexna, @val, @testz, @kuna, @aleks, @tetron, @misha, @ivelon, @gusaru и других.
Предложение по микро-хардфорку
Группа «Новый Голос» предлагает провести быстрый внеочередной микро-хардфорк, включив в него изменение системы голосования за делегатов по предложенной схеме (а также исправление багов ХФ19). Если подготовка кода для этого изменения не входит в планы команды @goloscore, мы готовы предложить баунти для программиста, который подготовит соответствующий код. Условия баунти будут озвучены при необходимости.
Просим команду @goloscore и @marina включить вопросы об изменении системы голосования в таблицу фич для ХФ для делегатов в следующей формулировке:
Изменить систему голосования за делегатов, чтобы каждый участник Голоса мог проголосовать за любое количество кандидатов в делегаты с разным процентом, в сумме не выходя за пределы 100% своей Силы Голоса.
Провести изменение системы голосования в виде отдельного внеочередного хардфорка (совместно с исправлением ошибок ХФ19) как можно быстрее.
Пост поддержали: @abloud, @antonkostroma, @blackmoon, @eee, @lex, @romapush, @santa-barbara, @stepanov, @varwar, @vood.one, @yudina-cat