Kuguar писал(а):
Андрей писал(а):
Возможность контролировать свой голос при тайном голосовании - вполне нормально реализуется и даже уже реализовано.
Проблема возникает при делегировании.
О том и речь. Проблема не техническая, а чисто логическая.
Если голосование тайное, то должно быть тайно и голосование пакетом голосов. Ведь если кто либо узнает как сыграл хотя бы один голос из пакета, то он узнает как проголосовал весь пакет и для голосовавшего пакетом оно перестанет быть тайным.
Приведу еще раз решение этой проблемы.
Когда пользователь хочет доверить определенному делегату проголосовать в определенном голосовании, он формирует пакет из всех возможных ответов по данному голосованию, шифрует их ключем делегата и отправляет ему через систему.
Программный агент делегата расшифровывает все варианты всех пользователей (вероятно, с использованием кэширования ключевой фразы делегата для удобства), и отправляет определенный вариант на сервер как ответы самих голосующих.
В таком варианте никто не сможет определить какой голос был делегирован, а какой проголосовал напрямую. Главная проблема такого решения - невозможность проверить голосующим как именно проголосовал их делегат.
Однако, с другой стороны, если он разрешает делегату распоряжаться своим голосом, это подразумевает что делегат может делать с ним все что угодно. Так что может быть проблема и не настолько серьезна.
Еще один недостаток этого варианта - пользователь может доверить свой голос делегату только когда соответствующее голосование уже будет сформировано.