Open mardy opened 5 years ago
A centralized electronic voting system can not be secure because administrators can easily perform Sybil and other attacks and it is practically impossible to perform public audit of such system.
From various media reports it follows that they will run voting using a private blockchain, which amounts to a centralized system and therefore also not secure.
Secure electronic voting on public blockhain is possible in theory, but the technology stack is not developed yet. For one-person-one-vote voting schemes the missing piece is a decentralized Sybil-resistant identity system.
позволю себе написать на русском, хотя и не стоило бы
теоретически блокчейн был бы действительно надежнее, особенно в вопросе избирательного права. однако есть два момента: 1) выборы должны вызывать доверие. системы, которые разрабатываются по госзаказам (особенно в россии) доверия на данный момент не вызывают. 2) с точки зрания законодательства России, голосование должно быть приватным. а в дополнение к этому еще и тайным (то есть не должно быть известно до конца выборов). это противоречит технологии блокчейна как таковой.
я не знаю, если честно, может я где-то не прав?
@ololosha228, @xuhcc : Проблема в том, что в электронном голосование нам требуется доверять:
Кто даёт избирателю гарантию, что программа работает именно так, как она должна? Если государство хочет, оно легко может изменять голосы или результаты. Поэтому, в конце концов, я не вижу, как блокчейн нас помогает.
@mardy
В случае использования приватного блокчейна - почти никак не помогает, потому что при этом узлы сети контролируются ограниченным кругом лиц, которые могут быть в сговоре между собой, которые могут быть подкуплены, либо на них может оказываться давление.
Голосование с использованием публичного блокчейна, при условии правильной реализации, лучше защищено от подобных атак. Поскольку исходные тексты всего программного комплекса открыты и доступны для исследования, и поскольку каждый может стать узлом сети, то избирателю нужно доверять только собственному устройству. Алгоритм консенсуса даст уверенность в том, что все операции с голосами проведены верно.
Однако, как я писал выше, при этом нерешённой остаётся проблема идентификации избирателей. Если идентификация проводится централизованной сущностью (например, по паспорту), то именно она становится вектором атаки. Центр идентификации может создать неограниченное количество поддельных личностей и тем самым манипулировать результатами голосования.
Поэтому на сегодняшний день никакая система электронного голосования по схеме "один человек - один голос" не может считаться надёжной, стоимость атаки на неё значительно ниже, чем стоимость атаки на традиционную систему голосования (где у наблюдателей больше возможностей контроля).
@ololosha228
Тайное голосование на блокчейне возможно, если значения голосов зашифрованы лично избирателем перед отправкой транзакции. Подсчёт зашифрованных голосов - технически сложная, но решаемая задача. О том, как это реализовано в данной системе, надеюсь, расскажут сами разработчики.
Чтобы результаты не стали известны до конца голосования, их можно дополнительно шифровать известным публичным ключом. Это всё хранится в блокчейне и обновляется в реальном времени. После окончания голосования публикуется приватный ключ и вся база расшифровывается. Недоверчивые люди могут сравнить результат расшифровки с зашифрованной версией (которая уже лежит в блокчейне и никуда не денется). Для каждого голосования генерится новая пара ключей.
Но как правильно указано выше, при отсутствии у большинства голосователей айдишек с крипточипом, результаты подкручиваются ещё проще (причём намного проще!), чем при использовании бумажных бюллетеней. И даже если у всех есть айдишки, никто не мешает человеку, имеющему доступ к узлу ввода информации, сгенерить произвольное количество фейковых ключей и добавить нужное количество "правильных" голосов в общий массив. Возможно, в этом и есть смысл инициативы? Вот уже и приватный блокчейн нарисовался, что как бы намекает на то, как всё будет честно и прозрачно.
Сдаётся мне, что задача не то что честных выборов, а даже честного голосования в России не решаема в принципе. Политическая проблема не решается техническими средствами.
But how do you manipulate the results then? Was that the reason for the weak keys?
Guys touched good subject, electronic voting. Looks like here a lot of unsolved issues for now. Does anybody knows good theoretical research for the subject, how it is possible to create anonymous and trustworthy voting?
I guess while the majority (or even a small but big enough group) is allowed to vote offline, it's possible to generate artificial votes on paper. Then the electronic ones look good, but are merged with votes that then give the desired results. I think common methods in Russia are having a group of people vote at several poll stations, or have e.g. soldiers vote offline and in advance.
@abramov231
For on-chain voting to be fully anonymous we need a privacy-preserving computation techniques. As far as I know, no production-ready solution exists, but this field of research is rapidly advancing:
Another requirement for on-chain voting is a robust decentralized identity system. This problem remains unsolved, but there is interesting approach that involves peer-to-peer verifications and subsequent analysis of social graph:
I would also recommend these articles about on-chain voting in general
For electronic voting, a centralized system is much more efficient, simpler and secure than what a blockchain can provide.