Здравствуйте, Shmj, Вы писали:
S>Вопрос такой, может кто в теме.
S>Уже придумали ли алгоритм, чтобы:
S>1. Соблюдалась анонимность. Т.е. чтобы никто не мог узнать за кого проголосовал тот или иной человек, желательно чтобы даже имеющие доступ к базе. Иначе могут быть расправы. Ну ОК, пусть имеющие доступ к баз знают, но хотя бы соседи чтобы не могли узнать.
S>2. Была возможность проверить свой голос, чтобы знать правильно ли он учтен. Но при этом желательно чтобы ты мог одурачить тех, кто требует от тебя доказательств что ты проголосовал за нужного кандидата (т.е., к примеру, если тебе дают денег — ты на телефоне показал — вот я проголосовал за Кривдина, давайте деньги — а сам проголосовал за Правдина). Т.е. чтобы ты мог проверить но так же и мог само одурачить других — тогда подкуп не имеет смысла.
S>3. Была возможность как-то проконтролировать общую картину — знать число избирателей, знать что нет мертвых душ — т.е. чтобы была общедоступная инфа по адресам — какой номер дома и квартира в принципе голосовала а кто не голосовал. Тогда можно проверить — вот, я не голосовал а меня записали. Или проверить — вот, у нас на улице 50 домов а в списке почему-то 500.
S>4. Была бы возможность вычислить итоговый результат, не зная результата каждого отдельного человека (кроме себя самого). Вроде есть алгоритмы.
S>Есть ли такое? Решены ли данные вопросы?
Что-то мне подсказывает, что без обмена открытыми ключами здесь не обойтись, а ключи требуют подтверждения принадлежности, а для этого нужен удостоверяющий центр(ы), которому доверяют все, а это все в корне меняет, так как позволяет выпустить ключи и голосовать ими как надо. Избиратель конечно может возмутиться и сказать, что он проверил результаты и подпись его голосования не совпадает, на что ему ответят, что он просто мошенник и этот ключ ему ни кто не подписывал. Удостоверяющий центр можно заменить неким "коллективным центром" используя например технологию блокчейн, но это просто усложняет процесс обмана но не полностью его исключает.