Изменение механизма голосования?

SnowHater

Active Member
Dec 25, 2015
299
221
113
Представим для простоты счета, что суммарно в сети всего 100 мастернод.
Пусть N - это количество голосов "За" минус количество голосов "Против", S - суммарное количество голосов. Пускай за каждое успешное(!) голосование (т.е. |N|>10) с каждой проголосовавшей (неважно "За" или "Против") мастерноды берется налог для уничтожения (или перечисления в следующий бюджет), равный T=k/(N*S), где k=1 для простоты счета.

Рассмотрим характерные случаи с максимальным, минималным и средним налогом:
1) если за предложение проголосовало 10 мастернод, а против - ни одной, то налог будет равен T=1/( (10-0) * (10+0) )=0,01, это максимальный возможный налог, так как в данном случае консенсус наиболее слабый, хоть и досточный - всего лишь 10 процентов проголосовавших;
2) если за предложение проголосовало 100 мастернод, а против - ни одной, то налог будет равен T=1/( (100-0) * (100+0) )=0,0001, это минимальный возможный налог, так как в данном случае консенсус наиболее сильный, ведь все 100 мастернод проголосовали единогласно;
3) если за предложение проголосовало 55 мастернод, а против - 45, то налог будет равен T=1/( (55-45) * (55+45) )=0,001, это средний налог, так как в данном случае все 100 мастернод участвовали в голосовании, но голосовали максимально неединогласно.

За неуспешные голосования (|N|<10) с каждой мастерноды можно брать максимальный налог T=0,01.

Такой механизм направлен для достижения следующих эффектов:
1) Стимулирование мастернод приходить к согласию при голосовании по предложениям, т.к. с точки зрения налогов это будет выходить дешевле. Это фактически стимулирование достижения консенсуса.
2) Стимулирование максимального числа мастернод участвовать в голосовании, т.к. с точки зрения налогов это будет выходить дешевле: чем больше мастернод участвует в голосовании, тем меньше платит каждый из них, т.к. при постоянной разнице между "За" и "Против" суммарный налог не зависит от числа голосующих.
3) Мастерноды, выигравшие голосование суммарно платят бОльший налог, чем проигравшие. Минимум на 10%. Что справедливо, так как именно их решение в итоге будет реализовано всей сетью.
4) За счет постоянного уничтожения монет в ходе политических баталий, те мастерноды, которые не так часто участвуют в голосованиях постепенно увеличивают свою долю в системе, что также является справедливым, ведь "активные" мастерноды в это время пытаются лоббировать свои интересы, скорее всего, в ущерб "молчунам".
5) Постепенное снижение "порога входа в политику" и усиление децентрализации власти через более равномерное распределение мастернод по пользователям, т.к. самые активные голосующие будут тратить значительную долю своих монет на голосования.

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

Какие мысли?
 
Last edited by a moderator:

UdjinM6

Official Dash Dev
Dash Core Group
May 20, 2014
3,639
3,537
1,183
Филосовское: Not making a choice is a choice. :rolleyes:

Общее: Сама идея "подтолкнуть" владельцев мастернод к более активному участию вызывает у меня противоречивые чувства - я хотел бы, чтобы владельцы мастернод были поактивнее, но я не верю в силу принудиловки для нормального эффективного развития, я верю только в инициативу (в том числе экономически подкрепленную). С этой же точки зрения на инициативу мне кажется довольно странным (более сильное) наказание победивших. И наконец, пункт 4 вовсе противоречит логике первоначального предложения, имхо, поскольку он фактически дает более сильную инициативу "молчунам".

Техническое: Взять налог из обеспечительной 1000 не удастся. Единственное место, где можно "откусить" - выплаты мастернодам. Но ставить консенсус всей сети в зависимость от каждого конкретного голоса, который при этом 1) отправляется бесплатно 2) вне блокчейна, я бы не рискнул.
В качестве альтернативы, можно все переделать :eek: и писать голоса в блокчейн, "сжигая" минимальный налог, например, а потом при выплате награды мастерноде учитывать только те из них, которые были записаны больше N блоков назад (например, больше 6-ти как для "нормальных" транзакций). Есть голос - ок, нет - срезаем награду на (1) минимальный налог (для уравнивания с проголосовавшими) + (2) доп. "налог на молчание".
В итоге на каждое голосование по одному вопросу всех мастернод потребуется 3500 x "размер транзакции голосования" места в блокчейне. Скорее всего, это будет что-то схожее по размеру с транзакциями по сабмиту предложений, т.е ~200-250 байт на транзакцию (как пример - http://explorer.dash.org/tx/1c3d23b7a442956c6feeda899b1761dae23e63428ba1868f2910da37d5be37e2). 3500 х 250 byte = 875 Kb на одно предложение, то бишь почти блок, но голосовать мастерноды будут более-менее "размазано" во времени, так что в ближайшей перспективе проблем доставить это не должно. Из доп. плюсов - все голоса навсегда записаны, что круто. Из минусов - что-то подобное мы обсуждали, но я не помню, почему мы отказались от такого варианта :D
 

SnowHater

Active Member
Dec 25, 2015
299
221
113
Филосовское: Not making a choice is a choice. :rolleyes:

Общее: Сама идея "подтолкнуть" владельцев мастернод к более активному участию вызывает у меня противоречивые чувства - я хотел бы, чтобы владельцы мастернод были поактивнее, но я не верю в силу принудиловки для нормального эффективного развития, я верю только в инициативу (в том числе экономически подкрепленную). С этой же точки зрения на инициативу мне кажется довольно странным (более сильное) наказание победивших. И наконец, пункт 4 вовсе противоречит логике первоначального предложения, имхо, поскольку он фактически дает более сильную инициативу "молчунам".
Забыл написать, но мне интересен именно пункт "общее", поэтому в технические детали я стараюсь не лезть. В моей схеме все голосующие наказываются налогом. Это угнетает общую голосовательную активность, согласен, и это, ИМХО, основной минус системы.

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

Формально, наказание для победивших и проигравших одинаковое. Т.е., если 30 мастернод проголосовало "За", а 20 - "Против", то с каждой мастерноды возьмут одинаковый налог T=1/( (30-20) * (30+20) )=0,002. Однако, если всеми выигравшими 30 мастернодами владеет один человек, а каждой проигравшей - разный, то для победителя суммарная цена победы будет 30*0,002=0,06, тогда как для каждого проигравшего - всего 0,002.

ИМХО, моя схема в долгосрочной перспективе направлена на стимулирование равномерного распределения мастернод по пользователям. Также она должна делать лоббирование ДАШкитами своих личных интересов более сложной задачей.
 

UdjinM6

Official Dash Dev
Dash Core Group
May 20, 2014
3,639
3,537
1,183
...
Формально, наказание для победивших и проигравших одинаковое. Т.е., если 30 мастернод проголосовало "За", а 20 - "Против", то с каждой мастерноды возьмут одинаковый налог T=1/( (30-20) * (30+20) )=0,002. Однако, если всеми выигравшими 30 мастернодами владеет один человек, а каждой проигравшей - разный, то для победителя суммарная цена победы будет 30*0,002=0,06, тогда как для каждого проигравшего - всего 0,002.
...
А, ок, так стало более понятно. А что с теми 50-ю, которые промолчали в данном случае?

EDIT: Я вспомнил, что было не так в "технике" - данных гораздо больше, чем в транзакции "сжигания" 5 DASH т.е.
1) они тупо не влезали в отведенное поле/скрипт (хардфорк)
2) мои расчеты выше надо умножить примерно на 2-3-4, т.е. несколько Мб на каждое предложение (без учета возможности переголосования "да -> нет" и наоборот)
 
Last edited by a moderator:

SnowHater

Active Member
Dec 25, 2015
299
221
113
А, ок, так стало более понятно. А что с теми 50-ю, которые промолчали в данном случае?
А с ними ничего, сколько у них было монет, столько и останется.

Еще одна интересная формула для налога может быть такой T=y/1000, где y - это суммарное число мастернод-победителей. Тогда, получается что-то вроде квадратичного голосования (Quadratic voting).

Рассмотрим характерные случаи с минимальным, средним и максимальным налогом:
1) если за предложение проголосовало 10 мастернод, а против - 0 (90 - воздержались), то налог будет равен T=10/1000=0,01, это минимально возможный налог, суммарно победители заплатят 10*0,01=0,1, проигравшие - 0*0,01=0;
2) если за предложение проголосовало 30 мастернод, а против - 20 (50 воздержались), то налог будет равен T=30/1000=0,03, это средний налог, суммарно победители заплатят 30*0,03=0,9, проигравшие - 20*0,03=0,6;
3) если за предложение проголосовало 50 мастернод, а против - 40 (10 воздержались), то налог будет равен T=50/1000=0,05, это почти максимальный налог, суммарно победители заплатят 50*0,05=2,5, проигравшие - 40*0,05=2,0;

В такой системе победитель будет сначала голосовать минимальным для победы десятипроцентным числом мастернод. Если нет никаких возражений, то он выигрывает голосование с минимальным суммарным налогом. Если же начинают появляться некоторое количество мастернод, голосующих против победителя, то победитель будет вынужден повышать свое число голосующих мастернод, квадратично повышая тем самым суммарный налог с участников голосования (в. т.ч. проигравших). Снова добившись минимального перевеса, он остановится, т.к. лишние налоги ему ни к чему. Дальше оппоненты думают, продолжать ли эту битву, платя еще больший налог и т.д. Интересным моментом тут является тот факт, что победитель всегда проигрывает сильнее от повышения ставок, нежели проигравший. Например, в указанных выше трех случаях, налог для програвших растет от нуля, до 0,6 и 2,0 (дельта 0,6 и 1,4), тогда как налог для победителя растет от 0,1 до 0,9 и 2,5 (дельта 0,8 и 1,6). Таким образом, для победителя рациональной является попытка убедить оппонентов по-хорошему, приводя логические доводы в пользу своего решения, нежели вступать с ними в открытое столкновение.

Для предотвращения изменения голосов (игр голосами) перед самым концом бюджетного месяца, можно облагать налогом всякую смену голосов. Налог при смене голоса может быть равен текущему налогу для данного предложения.
 
Last edited by a moderator:

SnowHater

Active Member
Dec 25, 2015
299
221
113
Еще очень интересным вариантом (без всяких налогов) является сравнение во время голосования не разницы Y - X > 10, где Y - кол-во голосов "За" (победителей), а X - кол-во голосов "Против" (проигравших), а разницы Y^n - X^n >10^n, где 0<n<1.

Если взять n=0,7, тогда условие выигрыша превратится в: Y^0,7 - X^0,7 >5.

Проанализируем характерные успешные голосования с минимальной достаточной разницей между Y и X:
За - 10, Против - 0, разница 10;
За - 13, Против - 1, разница 12;
За - 15, Против - 2, разница 13;
За - 20, Против - 5, разница 15;
За - 26, Против - 10, разница 16;
За - 40, Против - 20, разница 20;
За - 62, Против - 38, разница 24, воздержавшихся 0, голосовали все 100 мастернод.

upload_2016-3-11_12-22-8.png


Таким образом, из графика видно, что степень 0<n<1 приводит к интересному эффекту искусственного ограничения влияния одной или нескольких организованных лоббистких групп при голосовании. В случае малого суммарного числа оппонентов (когда есть риск принятия не достаточно взвешенного решения) потенциальным победителям выгоднее становится переубеждать своих оппонентов (быстро снижая X^0,7), чем банально привлекать больше своих сторонников (медленно увеличивая Y^0,7).

Степень 0,7 была выбрана из-за достижения знакомого всем "права Вето" (при 29 проголосовавших "Против", предложение можно протолкнуть только при 50+ проголосовавших "За), а также для удобства счета, так как 10^0,7 приблизительно равно 5.

В обычной модели (когда n=1), если предположить самый параноидальный расклад, когда один человек контролирует 45 мастернод, а остальные 55 контролируются 55 разными людьми, то практически 99% голосований будет выиграно одним ДАШкитом, т.к. по статистике из 55 неорганизованных человек проголосуют максимум 60%, т.е. 33 человека. Итого: 45-55*60%>10. В модели, где n=0,7 такая ситуация математически невозможна. Уже 41 неорганизованных мастерноды могут успешно отменять все голоса ДАШкита с 45 мастернодами, т.к. 45^0,7-(41*0,6)^0,7<5. А 50 неорганизованных мастернод справятся с любым ДАШкитом.

В качестве побочек для такой модели вижу только повышение числа неудачных предложений, которые будут висеть в серой зоне до конца месяца. Такие предложения не набирают достаточной разницы для утверждения или отклонения, что в общем-то согласуется с идеей консенсуса: если к согласию прийти не удалось, предложение необходимо исправить и перевынести на голосование с измененными условиями. После применения нового механизма, ни одно из текущих активных предложений не изменило бы своего статуса, т.к. все успешные предложения там имеют Y^0,7-X^0,7>5. UPD: Dash to Fiat Payment Processor не прошло бы, так ему нужно больше голосов.
 
Last edited by a moderator: