Анна Топалиди: "Участник голосования должен иметь возможность убедиться, что его голос учтен правильно"

В сентябре на выборах в Госдуму будет использоваться дистанционное электронное голосование. Оно пройдет в 33 регионах, где зарегистрировано 48,4 млн избирателей. Анна Топалиди – старший член IEEE и основной разработчик модуля голосований в открытой платформе Decidim, которую используют мэрии, кооперативы, политические партии и правительства от Барселоны и Нью-Йорка до Мехико и Бразилии. На примере модуля, который она разрабатывает, Анна рассказала, как в системах электронного голосования проверяют право на участие, дают возможность изменить выбор и считают результат.

— Вы основной разработчик модуля голосований для платформы Decidim, которую используют более чем в 30 странах мира. Он отвечает за список участников, подачу и изменение голоса, подсчет результата и работу организатора. Какие задачи оказались самыми сложными при создании и поддержке модуля и как вы их решали?

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

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

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

— Вы также разрабатывали часть модуля, которая позволяет переголосовать. Если человек передумал, его предыдущий выбор должен безошибочно заменяться новым, а сам участник — видеть, какой вариант засчитан. Как вы реализовали эту задачу?

— Возможность передумать важнее, чем кажется. Решение люди меняют редко, но сама мысль, что изменить ничего нельзя, заставляет нервничать, особенно когда голосуешь с телефона, в спешке, и не уверен, что нажал то, что хотел. Я сделала так, что до окончания голосования можно проголосовать заново, так что предыдущий выбор заменяется новым. Замена происходит одномоментно: в системе всегда существует только один актуальный голос и не возникает ситуации, когда голос на время теряется или учитываются сразу два. В противном случае начинается то, что портит любое голосование: люди на всякий случай голосуют еще раз, потом еще, потому что не уверены, что первое сработало. Я сделала так, что система четко показывает, какой вариант на текущий момент засчитан. И конечно, передумать можно только пока голосование открыто. После закрытия изменить уже ничего нельзя — это как раз то, что делает результат результатом.

— Decidim — открытая платформа, которую используют очень разные организации. Например, в феврале этого года ваш модуль использовала на своих предварительных выборах политическая партия Barcelona en Comú. Как вам удается сделать одну систему голосования удобной для разных заказчиков и зачем в такой системе открытый код?

— Заказчики действительно очень разные: город, партия, кооператив, университет. Поэтому я каждый раз разбираюсь, чем очередное требование отличается от уже существующих, и делаю так, чтобы разница задавалась настройкой, а не переделкой общего кода. Этот общий код открыт, хотя "прочитать может любой" не значит "читают все". Важно другое: такая проверка в принципе возможна, и никто не может ее запретить. Есть еще одна рамка, жестче технической: проект работает на основе общественного договора. Это принципы, которые подписывают все, кто платформу использует и разрабатывает: например, что цифровая идентичность персональна и не передается другому человеку, а личные данные не уходят на сторону. Для меня это значит, что не всякое пожелание заказчика я могу выполнить. Если требование расходится с этими принципами, ответ будет "нет".

— Как вы пришли в проекты, связанные с общественным участием, и что удерживает вас в этих проектах?

— Меня позвали как опытного разработчика. Согласилась я не сразу, но принципы, на которых проект основан, и люди, которые за ним стоят, меня убедили. В отличие от обычной работы, здесь нельзя выпустить и посмотреть, как пойдет: если день назначен, все должно работать именно в этот день. А удерживает то, что результат живет долго: мой код будет работать в организациях, о которых я никогда не услышу, еще много лет после того, как я перестану им заниматься.

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

— Сейчас я занимаюсь большим проектом, который затрагивает всю платформу и связан с требованиями европейского регулирования к безопасности. Если же говорить об электронном голосовании в целом, ему пока не хватает проверяемости. За редкими исключениями результат голосования может проверить человек с профильным образованием, но не обычный голосующий. Чтобы это изменить, необходимо встраивать опцию проверки в систему: каждый участник должен иметь возможность лично убедиться, что его голос учтен, и учтен верно. Первый шаг к этому я в своем модуле сделала: человек в любой момент видит, какой его голос засчитан. Но полная проверяемость результата — это задача следующего уровня, и она должна стать обязательной частью системы, а не приятным дополнением.

Показывать Pravda.Ru в сервисах Google

Автор Оксана Аникина
Оксана Аникина — журналист, литературный редактор, заместитель главного редактора Правда.Ру
Куратор Олег Артюков
Олег Артюков — журналист, обозреватель отдела политики Правды.Ру
Последние материалы