Мерриам-Вебстер определяет «голосование» как:

a : обычно формальное выражение мнения или воли в ответ на предложенное решение; особенно : указание на одобрение или неодобрение предложения, ходатайства или кандидата на должность.

b : общее количество таких выражений мнения, обнародованных за один раз (как на выборах).

c : выражение мнения или предпочтения, напоминающее голосование.

d : бюллетень

Обратите внимание, что это определение не включает ничего о том, что голосование в результате связано с результатами, требующими принятия мер, только это мнение выражается формальным образом. Согласно этому определению, BIP009 дает майнерам (или, точнее, майнинговым пулам) возможность голосовать за предложения биткойнов. Однако в настоящее время нет формальной возможности для голосования пользователей Биткойна.

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

Я считаю, что фундаментальная проблема с управлением Биткойном прямо сейчас связана с отсутствием способа точной количественной оценки настроений пользователей. Эта проблема усугубляется несколькими факторами:

  • Цензура основных каналов коммуникации (реальных или мнимых)
  • Китайские майнеры не используют те же каналы, что и большинство пользователей.
  • Больше внимания уделяется самым громким пользователям, а не самым крупным пользователям (культ личности, спам точек зрения, марионетки и т. Д.)
  • Неизмеримые, неагрегированные данные, полученные из этих сообщений, бесполезны для точного измерения настроений
  • Самостоятельный выбор каналов коммуникации, в которых подавляющее большинство подкрепляет мнения, искажая индивидуальное восприятие совокупной позиции (эхо-камеры)

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

К счастью, у нас уже есть платформа, устойчивая к цензуре, которая легко взвешивается по уплаченным комиссиям за транзакции - это сам блокчейн Биткойн. Функцию кошелька можно закодировать, чтобы разрешить хэш полностью или частично заполненного стандартизованного бюллетеня в качестве необязательного дополнительного OP_RETURN каждой транзакции, позволяя любому пользователю голосовать за или против любого количества предложений по своему выбору. Этот механизм голосования по выбору позволит пользователям сообщать свои предпочтения майнерам (и сообществу в целом) ясным, эффективным и поддающимся количественной оценке способом. Поскольку tx (опять же, необязательно) имеет дополнительный вывод, есть затраты, связанные с подачей голоса, что устраняет настроения спама. Поскольку это мнение может быть взвешено с помощью уплаченного комиссионного вознаграждения, довольно просто определить, что думает основная масса не апатичных активных пользователей сети по любому вопросу ... включая коммерческих субъектов.

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

Воздействие на сеть

«Стандартная» транзакция хеширования открытого ключа с одним входом и двумя выходами составляет 226 байт. Этот новый механизм голосования по выбору добавит около 10% (20–30 байт) к размеру этой транзакции. Если бы все транзакции в блоке были этого типа и в них были включены голоса, это уменьшило бы эффективный размер блока примерно на 10%. Это наихудший сценарий. Не все транзакции имеют размер 226 байт, поэтому эффективное уменьшение размера блока может достигать 10%. Это небольшая плата за возможность надежно и точно сигнализировать майнерам. Программное обеспечение кошелька можно легко настроить для добавления этого результата голосования, а большинство программного обеспечения полного узла Биткойна можно настроить так, чтобы эти данные удалялись постфактум.

Манипуляции с голосами майнеров

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

Майнер может попытаться подвергнуть цензуре транзакцию, выражающую то, с чем он не согласен, но это будет стоить ему разницы в комиссиях между этим транзакцией и следующей наиболее прибыльной транзакцией. Кроме того, цензурированная транзакция по-прежнему будет видна в мемпуле и засчитывается как голос независимо от того, принята она в блоке или нет; на самом деле, учитывая временное окно, попытка цензуры голосования таким образом приведет к его подсчету только за более длительный период времени. Распространение спама в мемпуле с низкой комиссией также окажется бесполезным, поскольку голосование взвешивается по комиссии за передачу, и все, что ниже порогового значения, чтобы не подтверждаться, можно безопасно игнорировать (и, вероятно, исключить из мемпула).

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

Заключение

Конечно, майнеры (и все остальные в этом отношении) не обязаны следовать этим предпочтениям, но, по крайней мере, все будут знать о них, прямо сейчас это полная игра в угадывание. Люк Дэш-младший недавно фактически поднял соломинку. Он считает, что результат недействителен из-за манипуляций, которые почти наверняка произошли в той или иной степени с обеих сторон. Это не прочная основа для принятия решений майнерами, разработчиками или кем-либо еще. Аналогичным образом, подсчет узлов полностью уязвим для Сибил, как было доказано. Транзакционное голосование позволяет тем, кто участвует в системе, выражать свое мнение проверяемым, пропорционально взвешенным образом.

Есть еще детали, которые нужно выяснить. Кто будет контролировать любой список избирательных бюллетеней? Как можно было бы беспристрастно распределить мнения по иерархическим категориям для агрегирования? (например, Bigger Blocks - ›Hard Fork -› BU vs. Bigger Blocks - ›Soft Fork -› SegWit) Будет ли достаточно системы тегов? А как насчет проблем с переводом на несколько языков? Я уверен, что эти вещи могут быть и будут воплощены в целостную систему выражения мнений, которая позволит более легко разрешать споры о направлении протокола. Если кто-то еще захочет поработать над созданием BIP, включающего эту функциональность, я буду приветствовать это.

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