Как создать анонимную систему голосования на блокчейне с использованием доказательств с нулевым разглашением

Как создать анонимную систему голосования на блокчейне с использованием доказательств с нулевым разглашением

5 апреля 2022 г.

Бумажное голосование (как и выборы президента США) — дорогой и неоптимальный способ голосования. У меня нет точных данных, но это стоит миллиарды долларов. Управление процессом голосования и подсчет голосов требует действительно огромного количества человеческого труда. Можем ли мы сделать это лучше, дешевле и безопаснее? Ответ положительный. Стоимость системы голосования на основе блокчейна будет составлять лишь часть этих денег, и она будет намного безопаснее, чем нынешний бумажный метод. В этой статье я покажу, как будет работать эта система на основе блокчейна.


Метод бумажного голосования заключается в следующем:


  • После процесса идентификации вы получаете бюллетень, и сотрудник избирательного участка отмечает ваше имя в своем списке. Это гарантирует, что вы получите только один бюллетень.

  • Вы заполняете бюллетень и опускаете его в урну для голосования.

  • По окончании дня голосования работники избирательных участков подсчитывают голоса.

Это классический бумажный метод голосования. Это неплохой метод, и его не так просто обмануть, но он имеет несколько точек атаки. Если работники опроса мошеннические, то они могут пропустить бюллетени из подсчета или помочь злоумышленникам проголосовать большее количество раз и т. д. Еще одним недостатком этого метода является огромный объем человеческого труда, но технология блокчейн может решить эти проблемы.


Почему блокчейн?


Блокчейн — это общедоступная и неизменяемая база данных транзакций. Каждый может отслеживать метод голосования в режиме реального времени и обнаруживать любое злонамеренное поведение.


Когда кто-то голосует, система записывает его уникальный идентификатор (хэш водительского удостоверения, номер безопасности и т. д.) в блокчейн и проверяет, голосовал ли он уже, поэтому двойное голосование невозможно. Из-за неизменяемости удаление голосов также невозможно, а если список возможных избирателей записывается в блокчейн на этапе подготовки, то фальшивое голосование (голосование с несуществующей личностью) также невозможно.


Единственный способ обмануть систему — это если кто-то проголосует вместо кого-то другого, но мы можем предотвратить это разными способами:


  • настоящий избиратель может обнаружить злонамеренного избирателя, проверив блокчейн (поскольку данные общедоступны) и составив отчет

  • один или несколько свидетелей свидетельствуют о том, что избиратель использовал свою настоящую личность (ложные показания являются преступлением)

  • для голосования может быть сохранено удостоверение личности (например, видео, на котором избиратель показывает свои водительские права, чтобы подтвердить свою личность) — это можно использовать в качестве доказательства того, что свидетели были злонамеренными

При использовании этих методов голосование на основе блокчейна более безопасно, чем бумажный метод. Из-за неизменности и публичности метод голосования полностью поддается проверке, даже если голосование проходило онлайн через систему видеоконференцсвязи, что более удобно, чем бумажное голосование на избирательном участке.


Вопрос только в анонимности. Как эта система может обеспечить такую ​​же анонимность, как бумажное голосование?


Ответ — доказательство с нулевым разглашением


С доказательством с нулевым разглашением (ZKP) вы можете что-то доказать, не раскрывая никакой информации об этом. В случае анонимного голосования избиратель генерирует публичный и секретный токен. После идентификации он отправляет публичный токен в систему, которая записывает его в блокчейн. Когда он голосует, он использует секретный токен и ZKP, который доказывает, что секретный токен назначен одному из общедоступных токенов, не раскрывая общедоступный токен. Эта система гарантирует, что каждый зарегистрированный избиратель может проголосовать только один раз, но никто не может назначить избирателя своим голосом. Это делает систему анонимной, и эта анонимность математически доказуема! (У меня есть [полная статья о доказательствах с нулевым разглашением] (https://hackernoon.com/the-magic-of-zero-knowledge-proofs-through-the-source-code-of-tornado-cash). настоятельно рекомендуется прочитать его, чтобы понять, как работает ZKP.В статье общедоступный токен называется «обязательство», а секретный токен — «нуллификатор».)


Теперь у нас есть все, чтобы построить нашу систему голосования на основе блокчейна. Давайте посмотрим на процесс:


  • Вместо того, чтобы получить бюллетень, избиратель отправляет свой публичный токен работникам избирательных участков.

  • Работники опроса идентифицируют избирателя (используя его водительские права и т. д.) и записывают общедоступный токен в блокчейн с уникальным идентификатором избирателя и, возможно, доказательством проверки (например, видео, где избиратель идентифицирует себя).

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

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


Как видите, абсолютно возможно построить высокобезопасную и дешевую систему онлайн-голосования на основе блокчейна, которую можно использовать для президентских выборов, референдумов или в любом другом случае, когда необходимо голосование. Эту систему практически невозможно обмануть, поэтому больше нет веских причин использовать бумажное голосование…



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE