Писал давно статью, про оптимальную схему реализации удаленного голосования. Сейчас используется аббревиатура ДЭГ (дистанционное электронное голосование). Нужно сказать, что в текущей системе ДЭГ соблюдаются, описанные мной принципы, кроме одного, но очень важного.
1. На данный момент голосующий может проверить свой голос(по хэшу транзакции). Это хорошо.
2. На данный момент зарегистрировавшийся в системе участник, но не принимавший участие в голосовании, может проверить, был ли выдан ему бюллетень (по voter_id). Это тоже хорошо.
3. На данный момент не реализована возможность узнать свой voter_id, если человек не подавал заявление на голосование, а за него подал кто-то другой. Пока это большая дыра. Это плохо.
Итак, минусы текущей реализации системы ДЭГ:
— Человек, который не подавал заявки на ДЭГ, не может проверить, что за него не проголосовал злоумышленник. Оппоненты заявляли, что никто не может проголосовать, так как нельзя подавать две заявки на одного человека, а вдруг человек в последний момент захочет создать заявку, и будет коллизия? Однако здесь есть нюанс, время зашифрованное в заявке — это время создания заявки. И никто не мешает злоумышленникам задержать в очереди свою заявку. После того как время регистрации заявок пройдет и человек на тот момент не зарегистрирует заявку, можно создать транзакцию в блокчейне своей фальшивой заявки. Время создания транзакции уже значения не имеет. И из выгрузки дампа БД его определить нельзя. Скорее всего так и были сделаны манипуляции на выборах в Госдуму 2021.
— костыль в виде переголосовки, который никто не знает как реализован и является совсем непрозрачным.
— использование блокчейна, выборка напрямую из которого затруднительна. Нужно работать с выгрузкой, которой доверяешь(очередной тонкий момент).
— большие избирательные участки, которые усложняют определение вбросов.
Конечно можно так же сделать трудоемкие вбросы, где будут задействовано много людей:
- при сравнении списка, имеющих возможность голосовать и зарегистрированных на ДЭГ (это сравнение сейчас ручное и непрозрачное).
— на неконтролируемых участках, где можно сделать фейковые голоса (мертвые души). Такие фальсификации отследить нельзя так как они строятся на доверии локальным БД. Например, в БД ДЭГ и/или БД ЕСИА создали тысячу фейковых личностей, они подали заявки, проголосовали, и их быстро удалили/спрятали от проверяющих.
По поводу подсчета голосов на прошедших выборах, есть интересная статья на хабре: https://habr.com/ru/post/579350/.