Проверяемые выборы

8 Фев
2012

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

Первый способ


Существует центральный сервер (ЦС), он заполняет таблицу приращений голосов (ТПГ) со структурой: {уникальный ID, номер партии}. Еще ЦС имеет утвержденный список ключей голосования (КГ), ключи которого рассылаются на разные избирательные участки в необходимых количествах.
Избирателя мы будем рассматривать и как человека и как человека, оснащенного ЭВМ способной соединяться с ЦС. Скорее всего эта ЭВМ должна находиться в кабинке голосования, иметь ограниченный функционал и называться терминалом голосования.
Существуют серверы-наблюдатели заполняющие таблицу возможных соответствий (ТВС) со структурой: {серия паспорта, хеш-сумма}.

Процесс голосования по действиям

Избиратель, придя на избирательный участок показывает паспорт, расписывается в списке, получает(вытягивает) конверт со специальным КГ необходимым для соединения с ЦС.
При помощи КГ, избиратель требует создать новую запись в ТПГ с заданным номером партии. В ответ ему приходит уникальный ID этой записи.
Избиратель запрашивает анонимно у ЦС из ТПГ по одной(можно больше) случайной записи для каждой партии.
Избиратель составляет для каждого номера партии такие записи:
<серия паспорта, пароль, номер партии, уникальный ID записи в ТПГ>
где для предпочитаемой партии записывается уникальный ID записи созданной по КГ, а для остальных — случайные(но партия должна совпадать) уникальные ID из ТПГ, созданные другими избирателями ранее. Нужно отметить, что в запись для каждого из кандидатов — избиратель может внести новый пароль. Каждая из этих записей подвергается хешированию, и хеш-суммы отправляются в таблицы ТВС на сервера всех наблюдателей вместе с серией паспорта избирателя (возможно необходимо отправить копию на ЦС).
По окончании голосования ЦС публикует в общий доступ ТПГ, из которой явно следует количество голосов набранное каждой партией.

Проверки

Когда голосование заканчивается — все сервера-наблюдатели имеют в своих ТВС список всех проголосовавших. Если эти данные слишком часто расходятся даже у авторитетных наблюдателей — вероятны фальсификации.
Итак, избиратель может проверить свой голос таким способом:
Вспоминает, какой пароль соответствует какой партии и за какую партию он голосовал.
На основе этих знаний записывает строку:
<серия паспорта, пароль, номер партии, уникальный ID записи в ТПГ>
Прогоняет запись через хеш-функцию, проверяет наличие данной хеш-суммы в ТВС и её соответствие серии паспорта избирателя.
Если избиратель забыл уникальный ID записи в ТПГ, возможно создать хеш-суммы для каждого из зарегистрированных ID в ТПГ.
Избирателя сложно проверить — за кого именно он голосовал, ведь он может вспомнить и записать любую из внесенных в ТВС записей.
Уверен, что большинство проблем и недостатков данной схемы много, но их можно исправить, кроме одной. Если мы опросили большое кол-во своих избирателей (узнали их пароли) и уверенны, что они проголосовали за нашу партию, то велика вероятность того, что попытка избирателя соврать нам о своем выборе — приведет к уникальному ID записи в ТПГ, записанной на счет нашего однопартийца.

Второй способ (метод от противного)


Каждая избираемая партия публикует список действительных бюллетеней за себя в количестве равном количеству допущенных к выборам избирателей, у каждой бюллетени есть уникальный(для бюллетеней всех партий) ID.
Избиратель предъявив паспорт и расписавшись получает по одной бюллетени для каждой партии. Избиратель запоминает уникальный ID бюллетеней каждой партии. Заходит в кабинку, сообщает серверам-наблюдателям ID бюллетеней, которые он не выбирает. При этом сервер может отвечать ему — какую партию он только что отверг (спорно). Про предпочитаемую бюллетень избиратель молчит, но номер её помнит.
В итоге, по количеству отвергнутых бюллетеней — каждый наблюдающий сервер — имеет представление о числе избирателей (делит кол-во отвергнутых бюллетеней на кол-во кандидатов минус 1). И может установить какое количество бюллетеней за каждую партию было оставлено. Если у большинства авторитетных наблюдателей цифры сходятся (почти сходятся) — выборы были честные.
Избиратель в свою очередь может проверить на серверах наблюдателей — действительно ли отвергнутые им ID принадлежали другим партиям, а не отвергнутый бюллетень — остался не отвергнутым.
Можно дополнить этот(второй) способ дополнительными методами контроля, слишком много и слишком разных идей на эту тему.

P.S.

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



загрузка...

Комментарии:

Наверх