Основная проблема голосований (выборов и референдумов) в том, что они фальсифицируемы. Не важно, пользуется кто-нибудь этой возможностью или нет. Предлагаю рассмотреть возможность организации голосований таким образом, чтобы вмешаться в подсчёт результатов было невозможно. По крайней мере таким образом, чтобы это не было очевидно.
Невозможно фальсифицировать открытое голосование. Голос каждого избирателя заносится в таблицу, после чего каждый может проверить, что лично его голос учтён верно. Чтобы сохранить проверяемость результатов и сохранить тайну голосования предлагается воспользоваться методикой хэширования данных. Будем хэшировать данные об избирателях и выбранных ими кандидатах.
Предлагаю рассмотреть алгоритм хэш-выборов на простом примере. В небольшом городе Большие Волки проходят выборы мэра. На должность претендуют 2 кандидата: Иванов и Сидоров. Население города 30 тысяч человек, из них 20 тысяч избирателей. Голосование полностью электронное.
Чтобы проголосовать каждый избиратель должен скачать специальное ПО (с открытым исходным кодом). В интерфейсе ПО следует ввести личные данные, выбрать кандидата и придумать пин код. ПО на основе личных данных и пин кода генерирует уникальную хэш строку, которую вместе с выбранным кандидатом передаёт на сервер. Также ПО передает на Госуслуги информацию о том, что избиратель проголосовал.
Наличие пин кода гарантирует, что из хэш-строки невозможно будет получить информацию об избирателе. Основным требованием к алгоритму будет отсутствие коллизий, то есть алгоритм не должен генерировать одинаковые хэш-строки для разных избирателей.
После завершения выборов таблицы 2 и 3 будут опубликованы в общем доступе. Каждый избиратель сможет проверить свой голос, зная личную хэш-строку. Человек видит, что его голос опубликован верно, все его друзья, коллеги, родственники и знакомые подтверждают правильность подсчёта голосов. После этого человек доверяет выборам (референдуму) и уверен, что результат не фальсифицирован.
Единственным способом вмешаться в результаты голосования будет добавить в таблицу 3 хэш-строки, не соответствующие реальным избирателям. Чтобы исключить подобные манипуляции заполняется и публикуется таблица 2. В ней содержится список жителей города, имеющих право голосовать, и информация о том, кто из них голосовал. Содержимое таблицы также может быть проверено любым жителем города, а количество голосовавших людей должно совпасть с количеством хэш-строк в таблице 3.
Предложенный алгоритм голосования обойдется бюджету гораздо дешевле классического, позволит повысить доверие избирателей и создаст высококвалифицированные рабочие места. Вбросы, карусели и ошибки в подсчётах будут исключены. Минусом является невозможность сохранить в тайне сам факт голосования, что кажется вполне адекватной ценой.
Комментарии (55)
Politura
05.02.2022 00:49+7Пинкод если короткий - всегда можно путем перебора будет его подобрать и узнать как проголосовал если длинный - большой процент позабывших его будут утверждать, что их голоса пропали.
Человек желающий дискредитировать выборы легко проголосует с одним пин-кодом, а потом начнет орать во всех сми, что смотрите, у меня вот-такой пинкод (отличающийся от реального), вот такой хеш, но его нету в системе, злой мэр удалил и заменил своим, на кол его.
Мэр города Большие Волки может легко собрать списки тех, кто обычно не голосует, нагенерить хеши для них и проголосовать вместо них за себя любимого.
Это то, что навскидку пришло в голову во время прочтения.
zzzzzzzzzzzz
05.02.2022 17:36Первый пункт решается длинным паролем, который генерит клиентское ПО и сохраняет на локальной машине.
Второй решается тем, что организатор выборов должен криптографически подписать присланный хэш и отправить подпись избирателю (а клиентское ПО, опять же, должно его сохранить).
Меня вот больше всего смущает, что непонятно, как обеспечить тайну голосования. Но интуитивно кажется, что это можно решить, хоть и не так просто, как хотелось бы автору. Другое дело, что без нормально работающего государства (как минимум, судебной системы) это всё не взлетит.
navferty
05.02.2022 01:04+24Очередная попытка решить нетехническую проблему техническими методами. В современной России честное электронное голосование только облегчит махинации с результатами, потому что нет доверия к его организаторам. Даже если опубликовать весь исходный код системы, нет никаких гарантий, что на серверах исполняется именно он.
Наилучший вариант, в таких условиях - старое доброе голосование на избирательных участках с бумажными бюллетенями, когда есть (или хотя бы могут быть) наблюдатели. Конечно, практика показывает, что и этот вариант не защищает от массовых фальсификаций, но по крайней мере делает их дорогостоящими для организаторов.
Zolg
05.02.2022 12:22+1Здесь вы не совсем правы: проблема тайного подсчёта голосов при отсутствии у голосующих доверия друг к другу и подсчитывающему вполне формализуется до технической задачи.
navferty
05.02.2022 12:30+2... до технической задачи, решать которую будут заинтересованные лица, которым мы не доверяем.
Zolg
05.02.2022 12:40+2Именно так.
Задача примерно из той же области, что и децентрализованные платежные системы:
Об успешном проведении фальшивых транзакций в bitcoin я не слышал, при этом максимум чему вам нужно доверять это локальному клиенту системы (кошельку), который вы можете лично собрать из исходников, предварительно их проверив (либо даже написав самостоятельно). Остальным участникам сети вы по умолчанию не доверяете.
bgBrother
05.02.2022 13:09Об успешном проведении фальшивых транзакций в bitcoin я не слышал
Может потому, что он действительно публичен и децентрализован, а не как с предыдущими выборами, когда один блокчейн централизован в руках власти, а второй не просто централизован, но и вообще был непубличен (открыли после подсчета голосов)?максимум чему вам нужно доверять это локальному клиенту системы (кошельку)
Вы доверяете закрытой иностранной системе и закрытым драйверам иностранных устройств?Zolg
05.02.2022 13:39когда один блокчейн централизован в руках власти, а второй не просто централизован,
Я говорю исключительно про возможность реализации электронной системы тайного голосования и перевода многих вопросов, считаемых сейчас административными в вопросы технические.
Про конкретные реализации системы я ничего не говорил. И на мой взгляд приведенные вами примеры вообще не являются полноценной реализацией какого-либо протокола тайного голосования.
Вы доверяете закрытой иностранной системе и закрытым драйверам иностранных усустройств
Во-первых вас никто не принуждает пользоваться иностранной закрытой системой: пользуйтесь отечественной/открытой/напишите свою.
Во-вторых какое это имеет отношение к голосованию?
bgBrother
05.02.2022 14:02Про конкретные реализации системы я ничего не говорил. И на мой взгляд приведенные вами примеры вообще не являются полноценной реализацией какого-либо протокола тайного голосования.
Вам выше прямым текстом написали «Очередная попытка решить нетехническую проблему техническими методами». Не будет вам идеальной технической реализации, когда во власти в этом не заинтересованы.
Теперь о техническом. У вас выбор из 3 вариантов: 1) централизовать в руках действующей власти; 2) централизовать в руках кандидатов и их представителей; 3) децентрализовать на всех граждан страны.
При первых двух вариантах высокий риск коррупции и фальсификации. При последнем — невозможно ограничить гражданами только одной страны, «шпионы», желающие провести атаку 51% для DOS'а всегда найдутся.Во-первых вас никто не принуждает пользоваться иностранной закрытой системой: пользуйтесь отечественной/открытой/напишите свою.
Вот когда напишите свою ОС и напечатаете свои устройства со своими драйверами без иностранного производства тогда и приходите. Не забудьте всех убедить не пользоваться иностранным.Во-вторых какое это имеет отношение к голосованию?
Прямое. Как кандидат/юрист/наблюдатель/избиратель, я не могу быть уверен, что в системе в день голосования не активизируется зловредное ПО для подделки голоса? На экране может быть отображено всё что угодно. Это не значит, что на самом деле голос ушёл за того кого я выбрал. Мониторинг трафика тоже может быть подделан вирусом на разных уровнях.
SadOcean
05.02.2022 12:42А проблема идентификации и аутентификации без полного физического участия всех - нет
Zolg
05.02.2022 13:28+1И да и нет:
Если я правильно понял о какой проблеме вы говорите, то она состоит из трёх частей:
1) у каждого законного избирателя должен быть "жетон" для голосования
2) ровно один
3) ни у кого кроме законных избирателей "жетонов" быть не должно
Естественно без доверия к структурам, ведущим учёт избирателей, как минимум первая не решается.
Но аналогичные проблемы есть и с голосованием традиционным. И, говорят, что с ними не все хорошо )
Обеспечить прозрачность электронных процедур на уровне не ниже процедур оффлайновых - вполне решаемая задача
bgBrother
05.02.2022 14:14+31) Кто будет производить жетоны? Иностранное государство?
2) Почему вы считаете, что генератор псевдослучайных чисел при иностранном или русском производстве не будет намеренно уязвим?
3) Вы уверенны, что ключевая пара в жетоне генерируется из рандома, а не из наперёд подготовленного списка?
4) Вы уверены, что предустановленный ключ в жетоне именно на нём генерировался, а не импортировался в жетон сотрудниками ФСБ ОПГ текущего «царя»?
5) Вы уверены, что каждый будет перегенировать пару на жетоне?
Если хоть на один вопрос вы не можете утвердительно ответить, то можете считать аутентификацию ненадёжной.Но аналогичные проблемы есть и с голосованием традиционным. И, говорят, что с ними не все хорошо
В традиционном голосовании есть неопровержимые доказательства свидетелями, камерами на участках (в РФ устранены), децентрализованными ответственными лицами, физическими наблюдателями.Обеспечить прозрачность электронных процедур на уровне не ниже процедур оффлайновых — вполне решаемая задача
Нет. В онлайне изменить принцип работы кода могут в любой момент через систему обновлений на разных уровнях (ОС, ПО, сети) и массово модифицировать логи. Сделать более надёжно чем в корректном офлайне — в ближайшие десятилетия не получится.
svob
05.02.2022 13:05Да не в этом проблема же.
Автобусами людей подвозят.
Открепительные заставляют брать.
Каруселят, когда в урну идет уже заранее заполненный бюллетень.
Платят деньги, если подтвердите верный выбор фото из кабинки.
Автор троллит, у него все статьи такие. Но комментаторы-то - куда?..
bgBrother
05.02.2022 02:34Невозможно фальсифицировать открытое голосование. Голос каждого избирателя заносится в таблицу, после чего каждый может проверить, что лично его голос учтён верно.
Три раза «ха». Кто будет проверять голоса виртуальных несуществующих «иммигрантов», которые якобы получили гражданство и были добавленны в демографический реестр + список избирателей?bgBrother
05.02.2022 02:37Голос каждого избирателя заносится в таблицу, после чего каждый может проверить
Предположим, что я проверил. Голос не обнаружен. Как мне доказать, что я действительно голосовал, а не отказался на последнем шаге? Не забываем о тайне голосования.
bgBrother
05.02.2022 02:39каждый избиратель должен скачать специальное ПО (с открытым исходным кодом)
Куда скачать? На личное устройство с предустановленными русскими приложениями в иностранной прошивке?
bgBrother
05.02.2022 02:43В интерфейсе ПО следует ввести личные данные, выбрать кандидата и придумать пин код.
Если возьмут слитые данные и от имени людей вобьют их вместе с кодом, то что делать? Отменять выборы, устраивать новые? Ожидать дос'а до бесконечности?
bgBrother
05.02.2022 02:50все его друзья, коллеги, родственники и знакомые подтверждают правильность подсчёта голосов. После этого человек доверяет выборам (референдуму) и уверен, что результат не фальсифицирован.
Что если окажется, что на гос. службе проверяли за кого ты проголосовал и увольняли? Что если отбирали телефон, устанавливали троян? Как подсчитать уровень значительности фальсификаций?alexxisr
05.02.2022 22:48Подобные вещи должны наказываться уголовкой с реальным сроком. Иначе никакие хеши и блокчейны не помогут сделать выборы честными.
iMedved2009
05.02.2022 03:28+3Текущая процедура выборов вполне допускает возможность выбирать тех кандидатов которые пользуются популярностью. Не происходит это потому что что ВСЕМ ПЛЕВАТЬ. Никто не ходит, не наблюдает, а если и наблюдатель и говорит о нарушениях то опять же таки ВСЕМ ПЛЕВАТЬ. И никаких хэши это не исправят.
Более того на правах старпера - в нашей стране какое-то время назад тоже молились на асу - типа решит все проблемы. Не решило
amazed
05.02.2022 10:09Очень надеюсь, что ошибиаюсь, но если нет, то самое интересное Россию ждет в следующем сезоне этого сериала. Когда наконец всем станет не плевать, окажется что важно только у кого в руках дубинка и ящик: по ящику говорят кто победил, дубинками переубеждают несогласных.
nktkz
05.02.2022 18:22а точно всем плевать?
а есть кандидаты не популисты? я проголосую за первого же кандидата который в какой то форме расскажет как именно (не общими словами) он будет решать те проблемы, которые существенны для страны. естественно если это будет разумно.
и желательно чтобы он не занимался лишь тем чтобы рассказывать о том какая плохая нынешняя власть.amazed
05.02.2022 19:45+2Это так не работает. Кандидат, который знает как решать проблемы и обладает достаточным авторитетом чтобы ему поверили уже будет встроен в систему. Не может же он все знать и уметь и при этом лежать на печке всю жизнь. И если он попробует против системы же пойти, то потеряет все еще до того как вы о нем узнаете. Поэтому противниками власти всегда будут выступать только мутные десиденты, для которых это профессия или которым нечего терять. И только поддерживая их можно заставить элиту призадуматься. Если ей есть чем думать.
nktkz
06.02.2022 01:56-1тогда нахер разогнать всех экономистов, политологов, юристов. если там не возможно хоть чему то научиться об общем понимании управления
wormball
07.02.2022 10:52Это ровно то, что власть хочет, чтобы вы думали. Тогда как на самом деле дело не в том, что нет толковых и честных людей, а в том, что им не дают прийти к власти.
iMedved2009
07.02.2022 22:29Да даже и если нет толковых людей, они появятся как только будут работать выборы. Лифты так и работают - сначала становятся как нибудь мелким муниципальным депутатом, там набираешься опыта, если есть мозги - растёшь дальше идёшь в главу муниципалитета, потом выше выше и выше. А если заткнуть все возможности то происходит наоборот деградация система, что мы легко можем наблюдать на примере нашей страны
А господин @nktkzтребует появления сеньоров управления сразу и без опыта работы, так имхо не бывает
iMedved2009
05.02.2022 22:00+1Точно. За 5 участий в качестве наблюдателя, члена тика, уика и прочей белиберды, я в этом уверился.
wormball
07.02.2022 10:48От кого участвовали?
iMedved2009
07.02.2022 22:17Я как Черчиль - менял партии, что бы не менять убеждения :). Первый раз как сми кажется. 2010 год. Потом СПР, потом от Прохорова. Я участвовал в гражданине наблюдателе, а они с кем могли с тем договаривались и выписывали направления.
wormball
07.02.2022 10:47На последних выборах были по меньшей мере Брюханова и Карманов. Это только из тех, кому удалось прорваться через заградительный барьер, созданный специально для того, чтобы все думали, что все одинаковые и что кроме путина никто об народе не думает. Причём означенные Брюханова и Карманов выиграли бумажное голосование, но против них вбросили голосов на "абсолютно идеальном" электронном голосовании.
Zolg
05.02.2022 04:59+6В криптографии изобретение собственного велосипеда часто не самая лучшая вещь: слишком много подводных камней и способов выстрелить в ногу.
Над вопросами криптографически защищённого голосования много умов билось, а идеального протокола так и не придумали до сих пор: в каждом есть свои не очень приятные особенности, не всегда очевидные.
https://ru.m.wikipedia.org/wiki/Протоколы_тайного_голосования
Это не значит, что не нужно стремиться сделать лучше. Но полагать, что вопрос решается соленым хэшем несколько наивно.
fedorro
05.02.2022 08:55+1Основным требованием к алгоритму будет отсутствие коллизий, то есть алгоритм не должен генерировать одинаковые хэш-строки для разных избирателей.
Отсюда поподробнее - что это за алгоритм такой? Вроде пока ещё не придумали хэш-функций с доказанным отсутствием коллизий.
Zolg
05.02.2022 12:18+2пока ещё не придумали хэш-функций с доказанным отсутствием коколлизий
Это и невозможно. Ну либо длина хэша должна быть не меньше длины хэшируемых данных.
Проблема с коллизиями не в том, что они есть, ав том, насколько их легко найти.
fedorro
05.02.2022 12:31Ну либо длина хэша должна быть не меньше длины хэшируемых данных.
Это необходимое, но не достаточное условие.
Проблема с коллизиями не в том, что они есть, ав том, насколько их легко найти.
Это и так понятно. Под проблемой я высказал то что автор предлагает хэш без коллизий.
svob
05.02.2022 09:37-3Это госфальсификаторы сгенерили идею и забрасывают удочки? Реакцию проверяют...
MaximRV
05.02.2022 15:05слишком наивный метод, учитывая что тут достаточно много статей и хороших обсуждений в их комментах по результатам тестирования и уже состоявшихся выборов с использованием электронного способа
UncleAndy
05.02.2022 09:56Добавляем во вторую таблицу кучу придуманных личностей и соответствующее количество хэшей в третью за нужного кандидата.
red_crocodile
05.02.2022 10:53+1На самом деле даже самое демократическое государство и самые честные выборы не могут противостоять кандидатам-спойлерам (кандидаты, перетягивающие часть голосов на себя и не имеющие цели победить) и разным моделям подсчёта голосов (по участкам, по городам, сразу всех...).
inkelyad
05.02.2022 18:10Если я понимаю таблички тут, некоторые варианты голосования к этому устойчивы. Independence of clones criterion - вроде как раз про это. Но у них другие проблемы.
ShadowTheAge
05.02.2022 11:23+2Этот вопрос уже обсасывался тут на хабре несколько раз, в т.ч. и с более сложными алгоритмами.
Не решены две проблемы:
- Отсутствия "мертвых душ". Ну да, мой голос тут есть. А как проверить что каждый голос в таблице принадлежит живому человеку? Как список всех жителей города тут поможет? В нем максимум можно увидеть что есть я.
- Отсутствия анонимности. А значит все люди, на которых есть хоть какое то давление (пенсионеры, армия, муниципалы) проголосуют "как надо" под страхом увольнения или типа того. Вам кажется что это адекватная цена, но это не так. Мы же говорим про систему которая должна работать в условиях недоверия к государсвенным институтам.
При этом обеспечить одновременно анонимность и проверяемость фактически невозможно. И текущая система электронного голосования в своей декларируемой сути обеспечивает это "хоть как-то", т.е. лучше чем описано в статье. Однако это не мешает крутить ее как хочется.
SergeKh
05.02.2022 21:01+1Теоретически возможно обеспечить анонимность и проверяемость, при наличии "электронных наблюдателей", которые в режиме онлайн вычисляют промежуточные результаты по примерно сотне избирателей на наблюдателя.
Проблемы в том что избирателей надо очень много и квалификации гораздо больше чем при оффлайновых выборах. При оффлайновых выборах наблюдатели не обязаны мониторить все, они мониторят выборочно, при онлайновых же должны мониторить все, т.к. возможно адресно сфальсифировать то что не мониторится.
Кроме того, при не достаточно большом числе наблюдателей, остается возможность при сговоре нескольких из них и массированном брутфорсе - вскрыть таки тайну голосования.Но чисто теоретически, при большом числе наблюдателей, таки возможно.
Mabu
05.02.2022 13:32+3Это всё избыточное усложнение.
Главную опасность для фальсификаторов на бумажных бюллетенях составляют независимые наблюдатели, а вовсе не хеши и возможности проверки учёта своего голоса.
И вместо того, чтобы подделывать результаты, избирательные комиссии предпочитают вообще не допускать, чтобы в бюллетене появлялись несогласованные фамилии, такими способами как:
ограничение пассивного избирательного права;
недопуск кандидатов:
-
снятие кандидатов.
Когда голосовать не за кого, то и фальсификации не нужны.
hecategram
05.02.2022 18:00Да вот только кто мешает сделать результаты свои, которые нужно организаторам? Ну а вам да по хешу выдадут результат вашего голоса. А вот как проголосовали остальные избиратели у вас информации не будет.
Конечно тут 99 и 146 процентов ЗА уже не сделать. Но процентов 10-15 против достаточно будет взять на всякий пожарный случай. Вдруг кто то там объеденится в проверки своих голосов.
MKMatriX
05.02.2022 22:17Невозможно совместить закрытое и не фальсифицируемое голосование. Не важно можно ли проверить свой голос, или даже голоса знакомых давших доступ к просмотру. Все равно как и описывали выше, всегда можно использовать многие человеческие факторы. Впрочем демократия вообще не очень устойчива перед атаками 51% и прочими прелестями. Но это не техническая проблема, а социально-культурная. Поэтому вместо поиска более честного голосования, лучше подумать как повысить доверие населения к любому голосованию. Впрочем пока никак, ждем-с перемен.
laatoo
06.02.2022 14:21+1Проблема не в технической плоскости. Представительная демократия, как модель, не работает.
Выбранный кандидат может не представлять ваши интересы, не выполнять обещанное, не решать беспокоящие вас проблемы, и ему ничего за это не будет.
Выбранный кандидат легко и просто может быть заменен на назначенного президентом (как хабаровского Фургала заменили на Дегтярёва), и вы ничего с этим не сможете сделать.
Все продолжит дорожать, здания ветшать, законы не представлять ваши интересы, процессы не работать или работать некорректно, итд итп. Выбранный вами специально для решения этих проблем кандидат, ваш представитель, не будет с этим ничего с этим делать. Вы ничего не будете с этим делать. И ваш сосед не будет.
Вот и всё.
iMedved2009
07.02.2022 23:10Наемный труд не работает. Нанятый работник может не выполнять ваши требования, не закрывать необходимые тикеты и ничего ему за это не будет.
Техдолг продолжит расти, прод падать, разрабатываемый функционал не отвечать вашим требованиям.
Вот и все
4ertovo4ka
Хорошо, например, я не проголосовала. Но за меня проголосовали. Хэш есть.
Я не проверяю таблицу. И то, что за меня был сделан "вброс" ни я ни другие не узнают.
Далее я проголосовала, но за меня переголосовали. Если хэш меняется при этом, а я его не сохранила, то проверить по хэшу за кого отдан мой голос я не могу.
Московский "эксперимент" с выборами в ГД достаточно показал, что данные, хранящиеся на серверах интересантов, "зашифрованные" только для конечных пользователей несколько не про прозрачность и объективность.
Bone
А как те, кто будет делать за вас "вброс" узнают заранее будете вы проверять таблицу или нет?
4ertovo4ka
Мы же про Россию говорим, а не про страны с работающими независимыми судами и полицией и законами?
Полагаю, что ответ очевиден: всем пофигу проверю я или нет. Даже в случае выявления фальсификации нет механизмов оспорить результаты выборов.
Но это уже не технический момент и этот баг в системе закрывается через систему прозрачных и реальных выборов.