Я в группе с несколькими десятками членов. Я написал систему веб-голосования quickie, и я в такой момент, когда хочу добавить к ней некоторые элементы «безопасности». Я стараюсь быть как можно более голой. То, что я сделал, сделано так, что пользователь должен вводить секретную строку (например, GUID) при голосовании, который я сохранил в базе данных для каждого избирателя.Anonymous-ish Online Voting System
Наиболее безопасные средства, которые я думал о распространении секретов для пользователей, заключались в том, чтобы создать кучу секретов в базе данных, распечатать их и доставить их на собрание, а люди вытащить секрет из шляпы. Таким образом, я считаю, что получаю два основных преимущества: (1) я, как автор системы голосования, не смог бы определить, какие люди голосовали за то, что (и никому еще, если на то пошло, только держатель тайны может тянуть видеть/изменять то, на что голосует этот секрет), и (2) не «только кто-то» мог пойти и подавать голоса, так как достоверные секреты известны априори.
Существует ли разумный способ подражать этому физически присутствующему процессу «ничья-от-шляпы» практически без ущерба для основных преимуществ, изложенных выше. Возможно, это невозможно сделать, и в какой-то момент должно быть доверие, или я должен настаивать на физическом присутствии, чтобы кто-то «зачеркнул» секрет (пока я записываю тех людей, которым была предоставлена личная тайна).
Я также не знаю, что делать, если кто-то утверждает, что потерял свой секрет, поскольку, если они нечестны, и я просто заставляю их нарисовать новый секрет, у них будет фактически два голоса. Без следа, к чему «потерял» секрет, я не могу войти и удалить связанные с ним голоса, если они есть.
Где я нахожусь, я думаю, что мой лучший вариант состоит в том, чтобы в основном люди привлекали новые секреты для каждого голоса, которое имеет место и распространяет секреты через физическое присутствие. Есть ли более элегантные/автоматизированные средства достижения тех же преимуществ, что и выше, о которых я еще не знаю?
Настоящая схема не похожа ни на что, а на действительно сумасшедшую версию пользователя/прохода без каких-либо дополнительных преимуществ (за исключением того, что не нужно писать код, который обрабатывает действие пользователя с паролем). Более элегантным будет обычная схема пользователя/прохода. – Cheekysoft
@Cheekysoft Я не хочу, чтобы голоса были прослеживаемыми для пользователей, но я хочу, чтобы пользователи могли менять свои голоса - вид уловки 22 ... схема, изложенная также позволяет избежать «входа в систему», что может поставить под сомнение анонимность голосования. – vicatcu
Наверное, лучше настроить вопрос, чтобы указать, что вы хотите (что-то близкое) к полностью анонимному механизму голосования. Просто беспорядочно риффы, но компромисс может заключаться в том, чтобы временно записывать каждый голос против своего пользователя, пока не выполнит «блокировку», которая затем удалит отношения и запретит любые изменения ума. – Cheekysoft