Технически честные выборы +

На модерации Отложенный

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


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

Далее идут электронные выборы.
Современные электронные выборы не рассматриваем, как исходно, в корне порочные, фальсифицируемые.
Недавно у нас появилась некая Партия Прямой Демократии, наверняка, завербованная силовиками, которая говорит о неких блокчейн выборах, при этом сразуже заявляет о необходимости доверия в этом деле неким известным личностям, лидерам этой партии, значит ... Наверное, очевидно, что такой вариант нас не устроит, как и откровенно провластный первый.


Однако, посмотрим, какими могут быть более надёжные электронные выборы. Главное в них - это распределённость, когда все данные хранятся на всех компьютерах и все операции делаются всеми компьютерами одинаково и одновременно.
Начнём с данных - это список избирателей. Если только у нас не маленький коллектив, где все знают друг друга, то здесь у нас простор для фальсификаций и проблема.
Первое, что нам нужно - это хранить историю: кто (ФИО), когда (время) и где (программа, имя, тип и адрес компьютера в сети и географический) добавил новых избирателей в список, дал им доступ к голосованию.
Далее - сам список, нам необходимо (для проверок) указывать какие-то личные данные, которые станут общедоступными, это обязательно Фамилия, Имя, Отчество и адрес проживания или прописки, может быть, с точностью до номера дома в городе или до улицы для деревни. Впрочем, в Хрущёвском СССР, были общедоступны телефонные справочники с адресами и ничего, никто не жаловался. Будет естественным ограничить право составления и редактирования этого списка одной уполномоченной организацией, в отличие от криптоденег, где каждый распоряжается ими самостоятельно.


Затем, в случае явного голосования, необходимо хранить историю голосов каждого участника, с указанием места (программа, имя, тип и адрес компьютера в сети и географический) и времени, когда он отдал свой голос.  А в случае тайного голосования, необходимо хранить время голоса и, может быть, надо хранить указание места региона (программа и адрес компьютера географического региона).
Далее, идут итоговые протоколы, где суммируются голоса избирателей. Для явного голосования там указывается личность, место, время и голос; а для тайного личность, может быть, место региона, и время для каждого участника и итоговые суммы с местом и временем их подсчёта.
Наконец, хранятся сообщения об ошибках, о несовпадениях данных на компьютерах избирателей.
Все эти данные должны одновременно рассылаться и одновременно храниться на всех компьютерах избирателей.
И наконец, сама программа голосования, расчёта и рассылки. Её исходный текст должен иметь ясные комментарии и должен быть открыт для всех и должен иметься, как в уполномоченной организации, так и на компьютере каждого избирателя. Каждый должен иметь возможность самостоятельно скомпилировать эту программу в исполняемый код для своего компьютера.


Задачи программы.
1. Идентифицировать избирателя, паролем и ещё как-то.
2. Информировать его о вопросе, о местах где возможно обсуждение, где есть экспертные оценки, о предлагаемых вариантах.
3. Принять голос избирателя и сохранить его в своей Личной Базе Данных и одновременно передать в Общие Базы Данных компьютеров всех избирателей и уполномоченной организации.
4. Принять голоса с других компьютеров избирателей и производить подсчёт голосов автоматически, по требованию избирателя и по окончанию периода голосования. После первого (или итогового) подсчёта, следует: или оставить свой голос в своей Личной Базе, или удалить из своей Личной Базы, в случае тайного голосования.
5. Сохранять промежуточный результат и конечный результаты у себя в Личной и в Общей Базе, а конечный результат передать на все компьютеры избирателей в Общие Базы. Принять конечные результаты со всех компьютеров в Общую Базу, сравнить их, сохранить результат и сообщить всем о совпадении или об ошибках.
6. По запросу своего избирателя сравнить свою Общую Базу с Общей Базой любого другого избирателя и сообщить всем о совпадении или об ошибках.

7. По запросу избирателя выдать информацию о списках в Базе Данных выборов, осуществлять сортировку и поиск в базе данных.
8. Запретить доступ к базе данных и программе выборов всем другим программам.