Обзор системы дистанционного электронного голосования ЦИК РФ
31 августа 2020 состоялся публичный тест системы дистанционного электронного голосования (далее ДЭГ) с применением технологии блокчейн, разрабатываемой по заказу ЦИК РФ.
Для знакомства с новой системой электронного голосования и понимания того, какую роль в ней играет технология блокчейн и какие еще компоненты используются, мы начинаем серию публикаций, посвященных основным техническим решениям, применяемым в системе. Начать предлагаем по порядку — с требований к системе и функциям участников процесса
Требования к системе
Основные требования, которые предъявляются к любой системе для голосования, в целом одинаковы и для традиционного очного голосования, и для дистанционного электронного голосования, и определены Федеральным законом от 12.06.2002 N 67-ФЗ (ред. от 31.07.2020) «Об основных гарантиях избирательных прав и права на участие в референдуме граждан Российской Федерации».
- Голосование на выборах и референдуме является тайным, исключающим возможность какого-либо контроля за волеизъявлением гражданина (ст.7).
- Возможность голосования должна быть предоставлена только лицам, обладающим активным избирательным правом на этом голосовании.
- Один избиратель – один голос, не допускается «двойное» голосование.
- Процесс голосования должен быть открытым и гласным для избирателей и наблюдателей.
- Должна обеспечиваться неизменность поданного голоса.
- Должна отсутствовать возможность подсчитать промежуточные итоги голосования до его завершения.
Итак, у нас три участника: избиратель, избирательная комиссия и наблюдатель, между которыми определен порядок взаимодействия. Еще можно выделить четвертого участника – органы, осуществляющие регистрационный учет граждан на территории (прежде всего, органы МВД, а также другие органы исполнительной власти), поскольку активное избирательное право связано с гражданством и местом регистрации.
Все эти участники взаимодействуют друг с другом.
Протокол взаимодействия
Рассмотрим процесс голосования на традиционном участке, с урной и бумажными бюллетенями. В общем упрощенном виде он выглядит так: избиратель приходит на участок и предъявляет документ, удостоверяющий личность (паспорт). На участке работает участковая избирательная комиссия, член которой проверяет личность избирателя и наличие его в списке избирателей, который был составлен ранее. Если избиратель найден, член комиссии выдает избирателю бюллетень, а избиратель расписывается в получении бюллетеня. После этого избиратель отправляется в кабинку для голосования, заполняет бюллетень, и опускает его в урну. Чтобы все процедуры соблюдались строго по закону, за всем этим следят наблюдатели (представители кандидатов, общественных институтов наблюдения). После завершения голосования избирательная комиссия в присутствии наблюдателей производит подсчет голосов и устанавливает итоги голосования.
Необходимые для проведения голосования свойства в традиционной системе голосования обеспечиваются организационными мерами и установленным порядком взаимодействия участников: проверкой паспортов избирателей, личной росписью за бюллетени, использованием кабинок для голосования и опечатанных урн для бюллетеней, порядком подсчета голосов и т.д.
Для информационной системы, которой является система дистанционного электронного голосования, этот порядок взаимодействия называется протоколом. Поскольку все взаимодействие у нас становится цифровым, этот протокол может рассматриваться как алгоритм, который реализуют отдельные компоненты системы, и комплекс организационно-технических мероприятий, выполняемых пользователями.
Цифровое взаимодействие накладывает определенные требования к реализуемым алгоритмам. Давайте рассмотрим действия, выполняемые на традиционном участке, в терминах информационных систем и то, как это реализовано в рассматриваемой нами системе ДЭГ.
Сразу скажем – технология блокчейн не является здесь «серебряной пулей», которая решает все вопросы. Для создания подобной системы потребовалось разработать большое количество программных и аппаратных компонентов, отвечающих за разные задачи, и связать их единым процессом и протоколом. Но при этом все эти компоненты взаимодействуют с блокчейн-платформой.
Компоненты системы
С технической точки зрения система ДЭГ представляет из себя программно-технический комплекс (далее ПТК), объединяющий набор компонентов для обеспечения взаимодействия участников избирательного процесса в единой информационной среде.
Схема взаимодействия компонентов и участников системы ПТК ДЭГ приведена ниже на рисунке.
Кликабельно
Процесс дистанционного голосования
Теперь подробно рассмотрим процесс дистанционного электронного голосования и его реализацию компонентами ПТК ДЭГ.
Согласно Порядку дистанционного электронного голосования, для включения в список участников дистанционного электронного голосования избирателю необходимо подать заявление на портале Госуслуг. При этом подать такое заявление могут только те пользователи, которые имеют подтвержденную учетную запись и успешно сопоставлены с регистром избирателей, участников референдума системы ГАС «Выборы». После получения заявления данные избирателя еще раз проходят проверку в ЦИК России и загружаются в компонент «Список избирателей» ПТК ДЭГ. Процесс загрузки сопровождается записью уникальных идентификаторов в блокчейн. Доступ к просмотру списка имеют члены избирательной комиссии и наблюдатели с помощью специального АРМ, размещенного в помещении избирательной комиссии.
При визите избирателя на участок происходит его аутентификация (сопоставление с данными паспорта) и идентификация в списке избирателей, а также проверка того, что этот избиратель ранее еще не получал бюллетень. Здесь важный момент – невозможно установить, опустил ли избиратель полученный бюллетень в урну или нет, только факт того, что бюллетень уже выдавался ранее. В случае ПТК ДЭГ визит избирателя представляет собой обращение пользователя на Портал ДЭГ – это сайт, расположенный по адресу vybory.gov.ru Как и на традиционном участке, на сайте размещены информационные материалы о проводимых избирательных кампаниях, сведения о кандидатах и другая информация. Для проведения идентификации и аутентификации используется ЕСИА Портала Госуслуг. Таким образом, сохраняется общая схема идентификации как при подаче заявления, так и при участии в голосовании.
После этого начинается процедура анонимизации – избирателю выдается бюллетень, который не содержит никаких идентификационных отметок: у него нет номера, он никак не связан с избирателем, которому он был выдан. Интересно рассмотреть вариант, когда участок оборудован комплексами электронного голосования – в этом случае анонимизация выполняется следующим образом: вместо бумажного бюллетеня избирателю предлагается выбрать из стопки любую карточку со штрих-кодом, с которой он подойдет к устройству для голосования. На карточке нет никаких данных об избирателе, только код, определяющий, какой бюллетень должен быть предоставлен устройством при предъявлении такой карточки. При полностью цифровом взаимодействии основная задача – реализовать такой алгоритм анонимизации, чтобы, с одной стороны, невозможно было установить никакие идентификационные данные пользователя, а с другой стороны – предоставить возможность голосования только тем пользователем, кто ранее был идентифицирован в списке. Для ее решения в ПТК ДЭГ применяется криптографический алгоритм, известный в профессиональной среде как «слепая электронная подпись». Мы подробно расскажем о нем в следующих публикациях, а также опубликуем исходный код, вы тоже можете собрать дополнительную информацию из публикаций в интернете по ключевым словам – «криптографические протоколы тайного голосования» или «слепая подпись»
Затем избиратель заполняет бюллетень в месте, где невозможно увидеть сделанный выбор (закрытая кабинка) – если в нашей информационной системе избиратель голосует дистанционно, то единственное такое место – это личное устройство пользователя. Для этого пользователь сначала переводится на другой домен – в анонимную зону. Перед переходом можно поднять VPN-соединение и сменить IP-адрес. На этом домене и происходит отображение бюллетеня и обработка выбора пользователя. Исходный код, который исполняется на устройстве пользователя, изначально открыт – его можно увидеть в браузере.
После того как выбор сделан, бюллетень зашифровывается на устройстве пользователя с применением специальной схемы шифрования, отправляется и записывается в компонент «Распределенное хранение и подсчет голосов», построенный на базе блокчейн-платформы.
Одна из важнейших характеристик протокола – это невозможность узнать итоги голосования до его завершения. На традиционном участке это обеспечивается опечатыванием избирательной урны и контролем со стороны наблюдателей. В цифровом взаимодействии лучшим решением является шифрование выбора избирателя. Используемый алгоритм шифрования исключает возможность раскрытия результатов до завершения голосования. Для этого используется схема с двумя ключами: одним (открытым) ключом, который известен всем участникам, производится шифрование голоса. Расшифровать его этим же ключом нельзя, нужен второй (закрытый) ключ. Закрытый же ключ разделен между участниками избирательного процесса (членами избирательных комиссий, общественной палаты, операторами серверов подсчета, и так далее) таким образом, что каждая отдельная часть ключа бесполезна. Приступить к расшифровке можно только после того, как закрытый ключ будет собран. В рассматриваемой системе процедура разделения ключей включает в себя несколько этапов: разделение части ключа внутри системы, разделение ключа вне системы и формирование общего публичного ключа. Мы подробно покажем процесс шифрования и работы с криптографическими ключами в следующих публикациях.
После того как ключ собран и загружен, начинается подсчет итогов для их дальнейшей фиксации в блокчейне и последующего оглашения. Особенностью рассматриваемой системы является использование технологии гомоморфного шифрования. Мы подробно опишем этот алгоритм в следующих публикациях и расскажем о том, почему эта технология широко используется для создания систем голосования. А сейчас отметим ее основную особенность: записанные в систему учета зашифрованные бюллетени можно без расшифрования скомбинировать таким образом, что результатом расшифровки такого комбинированного шифротекста будет суммированное значение по каждому варианту выбора в бюллетенях. При этом в системе, конечно, реализованы математические доказательства корректности такого расчета, которые также записываются в систему учета и могут быть проверены наблюдателями.
Ниже приведена схема процесса голосования.
Кликабельно
Блокчейн-платформа
Теперь, когда мы разобрали основные особенности реализации системы дистанционного электронного голосования, ответим на вопрос, с которого начинали – а какую роль в этом играет технология блокчейн и какие задачи она позволяет решить?
В реализованной системе дистанционного голосования технология блокчейн решает определенный круг задач.
- Базовая задача – обеспечение неизменности информации в рамках голосования, и, в первую очередь, голосов избирателей.
- Обеспечение прозрачности исполнения и неизменности программного кода, реализуемого в виде смарт-контрактов.
- Обеспечение защиты и неизменности данных, используемых в процессе голосования: списка избирателей, ключах, используемых для шифрования бюллетеней на различных этапах криптографического протокола, и так далее.
- Обеспечение децентрализованного хранения данных, при этом каждый участник имеет абсолютно идентичную со всеми копию, подтвержденную свойствами консенсуса в сети.
- Возможность просматривать транзакции и отслеживать ход голосования, полностью отражающегося в цепочках блоков, от его начала до записи рассчитанных итогов.
Таких образом, мы видим, что без использования данной технологии добиться наличия в системе голосования необходимых свойств, как и доверия к ней, практически невозможно.
Функциональность применяемой блокчейн-платформы обогащена использованием смарт-контрактов. Смарт-контракты проверяют каждую транзакцию с зашифрованными бюллетенями на подлинность электронной и «слепой» подписей, а также проводят базовые проверки корректности заполнения зашифрованного бюллетеня.
При этом в рассматриваемой системе дистанционного электронного голосования компонент «Распределенное хранение и подсчет голосов» не ограничивается только блокчейн-узлами. Для каждого узла может быть развернут отдельный сервер, который реализует основные криптографические функции протокола голосования – серверы подсчета.
Серверы подсчета
Это децентрализованные компоненты, обеспечивающие процедуру распределенной генерации ключа шифрования бюллетеней, а также расшифрование и подсчет итогов голосования. В их задачи входит:
- Обеспечение распределённой генерации части ключа шифрования бюллетеней. Процедура генерации ключа будет рассмотрена в следующих статьях;
- Проверка корректности зашифрованного бюллетеня (без его расшифрования);
- Обработка бюллетеней в зашифрованном виде для формирования итогового шифротекста;
- Распределенное расшифрование итоговых результатов.
Каждый этап исполнения криптографического протокола фиксируется в блокчейн-платформе и может быть проверен на корректность наблюдателями.
Для придания системе необходимых свойств на различных этапах процесса голосования используются следующие криптографические алгоритмы:
- Электронная подпись;
- Слепая подпись публичного ключа избирателя;
- Схема шифрования Эль-Гамаля на эллиптических кривых;
- Доказательства с нулевым разглашением;
- Протокол DKG (Distributed Key Generation) Pedersen 91;
- Протокол разделения закрытого ключа по схеме Шамира.
Более подробно криптографический сервис будет рассмотрен в следующих статьях.
Итоги
Давайте подведем некий промежуточный итог рассмотрения системы дистанционного электронного голосования. Мы кратко описали процесс и основные компоненты, которые его реализуют, а также определи средства достижения необходимых для любой системы голосования свойств:
- Верифицируемость избирателей. Система принимает голоса только от верифицированных избирателей. Это свойство обеспечивается с помощью идентификации и аутентификации голосующих, а также фиксации списка избирателей и факта предоставления доступа к бюллетеню в блокчейн.
- Анонимность. Система обеспечивает тайну голосования, закрепленную в законодательстве РФ, личность голосующего невозможно определить по зашифрованному бюллетеню. Реализовано с помощью алгоритма «слепой подписи» и анонимной зоны для заполнения и отправки бюллетеня.
- Конфиденциальность голосов. Организаторы и другие участники голосования не могут узнать результат голосования до его окончания, подсчета голосов и расшифрования итоговых результатов. Конфиденциальность достигается за счет шифрования бюллетеней и невозможности расшифрования до окончания голосования.
- Неизменность данных. Данные о волеизъявлении избирателей не могут быть изменены или удалены. Неизменное хранение данных обеспечивается блокчейн-платформой.
- Проверяемость. Наблюдатель может проверить, что подсчет голосов осуществлялся корректным образом.
- Надежность. В основе архитектуры системы лежат принципы децентрализации, обеспечивающие отсутствие единой «точки отказа».