По поводу решения проблемы тайных голосований при использовании делегирования пришла на ум такая мысль...
Проблема в том, что при отсутствии в БД связи между голосом делегата и самим делегатом, для тех, кто доверил ему свой голос возникает проблема проверки как-же именно проголосовал их делегат.
Кроме того, тут в полный рост встает проблема невозможности переголосования пользователем при несогласии с выбором делегата.
В принципе, я уже где-то предлагал решение первой проблемы. Можно сделать так, что-бы пользователь на нужное количество голосований заранее генерировал личный одноразовый код и подпись об участии в голосовании и передавал их делегату.
Но с этим связано несколько проблем. Первая - каким образом он сможет отозвать эти данные? Хотя, в принципе, можно завести в системе специальный список отозванных кодов и подписей и каждый раз при голосовании их проверять. Вторая - как и где хранить эти данные? В принципе, их можно хранить в БД, но зашифрованными ключем делегата. Однако, в этом случае вызывает вопрос технология их использования делегатом при голосовании. По идее, для каждой такой записи делегату придется вводить свою парольную фразу. И, кроме того, даже если найти способ не вводить ее каждый раз (это вполне возможно), по передаваемым к нему на компьютер данным делегат сможет легко определить количество имеющихся у него голосов. Что, в общем-то тоже довольно плохо.
Можно решить проблему, например, вот так:
Использовать одноразовое делегирование по каждому голосованию. Если голосующий видит что в данном вопросе он ничего не понимает, он выбирает себе делегата, которому он доверяет и отдает свой голос ему только на это голосование. Даже то, что данные о количестве голосов на одно голосование будут открыты, в какой-то степени, снизит риск давления на делегата, т.к. у него не будет постоянной группы тех, кто ему доверяет.
_________________ 7BF9BDC16428245B55CF04EF4A609CA44E0F6E68
|