Как проверить, проголосовал ли пользователь, но не видно за кого?

Блокчейн система голосования

Как работает текущая система

  • Пользователям разрешается голосовать после того, как их личность будет подтверждена уполномоченным органом.
  • Голоса собираются и подсчитываются уполномоченным органом.
  • Человек, набравший наибольшее количество голосов, имеет власть в течение ~ 4 лет, затем мы снова голосуем.

Проблемы

  • Избранное лицо может стать безответственным и коррумпированным в течение ~ 4 лет, и граждане ничего не могут с этим поделать, им просто нужно подождать, пока истечет ~ 4 года.
  • На предвыборные кампании тратятся большие деньги, потому что все пытаются получить власть уже ~4 года.

Как работает новая система

  • Пользователи могут голосовать после того, как их личность зарегистрирована в блокчейне и подтверждена уполномоченным органом.
  • Голоса хранятся анонимно в блокчейне.
  • Можно проверить, проголосовал ли пользователь, но невозможно проверить, за кого он отдал свой голос.
  • Голоса идут «в реальном времени» (каждые XX минут добывается новый блок) и могут отображаться на билборде в центре города, так что избранный человек будет смотреть его каждый день и усердно работать, чтобы поддерживать доверие людей.
  • Пользователи могут изменять свой голос каждую неделю (воскресенье).
  • Если пользователь не изменил или не обновил свой голос в течение X недель, срок его действия истекает и он удаляется. Таким образом горожане будут более активны (также это устраняет проблему с мертвыми пользователями).

Проблемы

  • Как реализовать: Можно проверить, проголосовал ли пользователь, но нельзя проверить, за кого он отдал свой голос?
  • Как внедрить пользователей?

    • Authentication: biometric or just a key give by an authority. It must be very simple and secure for non technical users.
    • Создание нового пользователя - новые люди, достигшие 18 лет
    • Любой должен иметь возможность проверить, является ли проголосовавший пользователь реальным человеком (предотвратите флуд со стороны коррумпированного центрального органа, который имеет возможность создавать новых пользователей)

https://gist.github.com/moldcraft/e2eb508e10b9ae7e70d1


person moldcraft    schedule 20.03.2016    source источник
comment
Знает ли центральная власть о голосовании, я имею в виду, знают ли они, за кого было отдано голосование? Если центральная власть знает об этой информации, то она может легко манипулировать голосами. Коррупция тесно связана с центральной властью. Я думаю, что это самая большая проблема здесь.   -  person devasia2112    schedule 23.03.2016


Ответы (1)


  1. Избиратель делает заявление о том, как он хочет голосовать.

  2. Избиратель ослепляет голос, прикрепляет ослепленный голос к удостоверению личности и подписывает его.

  3. Центральный орган получает слепое голосование и проверяет подпись. Если подпись верна, центральный орган подписывает слепое голосование.

  4. Избиратель снимает ослепление подписанного голоса и анонимно загружает его в репозиторий или добавляет в блокчейн.

  5. Центральная власть должна иметь возможность произвести один подписанный слепой голос на каждый произведенный неслепой голос. Таким образом, если собрано 50 000 голосов, подписанных центральной властью, центральная власть должна быть в состоянии произвести 50 000 слепых голосов, подписанных избирателями.

Подписанные слепые голоса показывают, кто голосовал. Неслепые голоса показывают, сколько голосов получил каждый кандидат или предложение. Невозможно сопоставить слепые голоса с незаслепленными, поэтому невозможно сказать, кто за что голосовал.

person David Schwartz    schedule 20.03.2016
comment
1. В блокчейне хранятся неслепые голоса, подписанные только центральным органом? 2. Как проверить, проголосовал ли пользователь и когда? - person moldcraft; 22.03.2016
comment
1. Правильно. 2. Центральный орган должен представить подписанный слепой голос по каждому неслепому голосу. Если вы хотите, чтобы это включало отметку времени, вы можете это сделать. Вы также можете потребовать от центрального органа немедленно опубликовать подписанные слепые голоса в блокчейне, если хотите. - person David Schwartz; 23.03.2016
comment
1. Таким образом, подпись центрального органа для слепого голосования может быть применена к незаслепленному голосованию? 2. Нет способа проверить, совпадает ли подпись центрального органа при незаслепленном голосовании с подписью под некоторым слепым голосованием, и установить связь между голосованием и пользователем? - person moldcraft; 05.04.2016
comment
@moldcraft Центральная власть подписывает слепое голосование. Затем избиратель снимает ослепление голоса, сохраняя подпись. Ни центральная власть, ни кто-либо другой, кроме избирателя, не может выяснить, какой незаслепленный голос соответствует какому слепому голосованию. Вот как работают слепые подписи — подписывающий не знает, что он подписывает. - person David Schwartz; 05.04.2016
comment
Центральный орган подписывает слепое голосование - в этот момент он знает, что подпись, скажем, b123...7f соответствует пользователю john smith. Теперь пользователь отправляет свой незаслепленный голос вместе с этой подписью b123...7f в блокчейне, и центральный орган знает, что этот незаслепленный голос принадлежит пользователю john smith. Или я что-то упускаю? - person moldcraft; 05.04.2016
comment
@moldcraft Внимательно прочитайте шаг 4 — он не отправляет голосование без слепого голосования вместе со слепой подписью. Это не сработает, поскольку слепая подпись означает слепое голосование. Он берет подписанный слепой голос и разоблачает его, и это то, что он представляет. Слепая подпись никогда не сочетается с открытым голосованием или открытой подписью. - person David Schwartz; 06.04.2016
comment
Я думал, что понял, как это работает, но теперь я застрял, я не знаю, как это реализовать. Слишком много, чтобы объяснить, раздел комментариев не достаточно. Постараюсь переформулировать и лучше описать проблему (с картинками). - person moldcraft; 17.11.2016