- Предыстория и перспективы дистанционного электронного голосования в России
- Тайна голосования
- Кто за что отвечает в ДЭГ
- Шаг 2. Формирование ключей и замков
- Московская платформа
- От каменного лототрона до перфокарт
- Федеральная платформа
- Безопасность федеральной платформы
- От компьютеров к дистанционному голосованию
- Отличия федеральной платформы от московской
- Протокол взаимодействия
- Шаг 4. Секретное шифрование
- Блокчейн-платформа
- Серверы подсчета
- Как устроена федеральная система дистанционного электронного голосования в России
- Исходная архитектура WE.Vote
- Изменения для федерального ДЭГ
- Оптимизация пропускной способности
- Мониторинг всей системы ДЭГ
- Мониторинг блокчейн-сети
- Прозрачность системы
- Выводы
- Зарубежный опыт
- Шаг 3. Голосование
- Интернет-голосование в других странах
- Кто за что отвечает в ДЭГ
Предыстория и перспективы дистанционного электронного голосования в России
Платформа для удаленного голосования, разработанная в Москве, также использовалась во время голосования по поправкам к конституции, которое проходило с 25 июня до 1 июля 2020 года: система применялась в Москве и в Нижегородской области. Остальные регионы ЦИК тогда сочла недостаточно подготовленными. Кроме того, московскую платформу применяли на довыборах муниципальных депутатов в сентябре 2020 года.
В сентябре формат онлайн-голосования испытали также на довыборах в Госдуму в Курской и Ярославской областях. А в декабре 2020 года председатель ЦИК Элла Памфилова заявила, что к 2024 году электронное голосование на выборах могут внедрить по всей стране.
Вместе с тем, перед выборами в сентябре 2021 года Элла Памфилова дала большое интервью «Ведомостям», в котором заявляла, что ЦИК пока не спешит с дополнительным расширением дистанционного голосования.
Тайна голосования
В ЦИК заявили TAdviser, что не разделяют утверждения о наличии проблемы в данном случае.
А утверждения и допущения, что у «Ростелекома» есть голоса, поданные в последовательности, и есть возможность понять, какой выбор был сделан конкретным пользователем, в ЦИК считают некорректными. Реализация приведенных допущений теоретически возможна в случае:
- Получения избыточной идентифицирующей информации от устройств участника голосования — однако, в системе ДЭГ устройство и передаваемая с него информация находится под контролем самого участника голосования; кроме того, участник голосования на произвольном шаге процедуры ДЭГ может воспользоваться дополнительными средствами анонимизации, в том числе сервисами прокси, виртуальных частных сетей и др.;
- Обладания и свободного использования ключей расшифрования некими заинтересованными лицами — но в системе ДЭГ ключи расшифрования, носители их частей и технические средства их формирования, деления и сборки находятся под контролем избирательной комиссии дистанционного электронного голосования и определенных ей лиц, а зависимые от них ключи узлов ПТК ДЭГ — в неизвлекаемой форме в аппаратных средствах шифрования;
- Создания вместо ПТК ДЭГ иной системы, задачей которой являлся бы контроль над волеизъявлением участников голосования — запись и обработка избыточной идентифицирующей информации об участниках голосования, произвольный подсчету и расшифрование промежуточных итогов голосования или отдельных бюллетеней. При этом в отношении такой системы было бы невозможно выполнение уже реализованных мер доверия.
Также в качестве мер доверия к ПТК ДЭГ доступ к одному из узлов системы предоставлен группе технического наблюдения Общественной палаты РФ, что позволяет ей контролировать процесс поступления и записи зашифрованных результатов волеизъявления, подведения и расшифрования итогов голосования во всем ПТК ДЭГ. Одновременно в отношении ПТК ДЭГ проведены аттестационные и контрольные испытания, предусматривающие проверку соответствия комплекса рабочей документации и направление отчетной документации по результатам испытаний в уполномоченные госорганы.
Зампред территориальной избирательной комиссии дистанционного электронного голосования (ТИК ДЭГ) Олег Артамонов утверждает, что система технически выстроена таким образом, чтобы никто не имел доступа к информации, кто именно какой бюллетень заполнял. За этим стоит сложная математика и криптография. Электронный бюллетень формируется на устройстве пользователя, а не на каких-то серверах, и в неизменном виде поступает в систему. При голосовании в браузер пользователя загружается приложение – протокол «слепой подписи», которое обрабатывает бюллетень таким образом, что система, знающая, кому она выдала бюллетень, не знает, как он заполнен. А система, которая получила заполненный бюллетень, не знает, кому этот бюллетень был выдан. У бюллетеня есть признак, никак с конкретным пользователем не идентифицируемый, не сопоставляемый, поясняет Артамонов.
А сравнивать все по логам, на серверах – это технически крайне сложная задача, хотя не сказать, что нереализуемая, добавил Олег Артамонов.
Он также указал, что в 2020 году на голосовании по поправкам в конституцию дистанционного голосовали более 1 млн человек, и не было ни одного свидетельства того, что кого-то потом вызвал начальник за «неправильное» голосование при том, что подобные случаи обычно быстро становятся достоянием общественности.
Кто за что отвечает в ДЭГ
Минцифры и ЦИК России выступают заказчиками проекта, в рамках которого «Ростелеком» отвечает за инфраструктуру и прикладной слой федеральной системы ДЭГ. А избиратели Москвы, как уже упоминалось выше, используют платформу, предоставляемую правительством Москвы. Ниже разберем подробно роли участников в федеральной системе ДЭГ.
Первым звеном для доступа к ДЭГ является портал госуслуг. Он реализует функцию информирования и подачи заявлений для участия в ДЭГ, а также идентификацию и аутентификацию граждан. Оператором портала госуслуг является Минцифры.
За ДЭГ отвечает ЦИК России – независимый федеральный государственный орган с исключительными полномочиями в сфере подготовки и проведения выборов. Все основные функции – от проверки наличия избирателя в списках участников ДЭГ, предоставления ему возможности проголосовать по конкретным бюллетеням, до учета волеизъявлений, подсчета голосов и подведения итогов голосования, реализуются с использованием программно-технического комплекса ДЭГ.
Программно-технический комплекс ДЭГ отделен от портала госуслуг и инфраструктуры электронного правительства.
Шаг 2. Формирование ключей и замков
Также до выборов ДИТ формирует часть замка и один из двух ключей. Этот ключ нужен для получения итоговых результатов выборов и до конца голосования он остается у организаторов выборов. Другую часть замка и второй ключ формирует браузер избирателя непосредственно во время голосования.

На самом деле, там чуть сложнее, но суть одна — этот ключ формируется и находится у представителей власти.
В 2022 году ключ разделили на пять частей. Перед подведением итогов голосования его соединяют обратно.
Хранителями пяти частей ключа стали:
• Руководитель Общественного штаба по наблюдению Вадим Ковалев
• Секретарь Мосгоризбиркома Владимир Попов
• Председатель Мосгордумы Алексей Шапошников
• Член ЦИК РФ Антон Лопатин
• Глава городского округа Троицк Владимир Дудочкин.
Почему именно они? Потому что
Московская платформа
А в мае 2021 года «Лаборатории Касперского» достался подряд на развитие системы столичного дистанционного электронного голосования через интернет. За 160 календарных дней, на которые рассчитан срок работ, компания получит около 270 млн рублей.
Основными задачами работ, как следует из ТЗ, стали обеспечение процесса подачи гражданами заявлений на участие в ДЭГ, автоматизация рассмотрения заявлений на участие в ДЭГ и уведомление заявителей о его ходе, обеспечение формирования списков граждан, допущенных к ДЭГ, обеспечение тайны и анонимность волеизъявления, автоматизация взаимодействия между пользователями системы.
Также целями заявлены автоматизация предоставления информации о ходе ДЭГ для общественных наблюдателей, процесса получения информации об обращениях и жалобах граждан, процесса формирования статистики о ходе ДЭГ.
«Лаборатория Касперского» располагает собственной блокчейн-платформой на Ethereum для голосований под названием Polys. Кроме того, компания разрабатывает новый продукт для голосований — «Polys.ГОСТ». Но в мае 2021-го в «Лаборатории Касперского» говорили, что в рамках исполнения нового договора с ДИТ для развития системы ни Polys, ни «Polys.ГОСТ» применяться не будут.
От каменного лототрона до перфокарт
Первую попытку автоматизировать выборный процесс историки относят к IV веку до нашей эры. В древнегреческих полисах должности среди кандидатов разыгрывались по жребию, а вершило судьбы устройство под названием «клеротерион». По сути, это примерно то же самое, что и лототрон, только с шарами разного цвета: если выпадает черный, значит кандидату не повезло, а если белый, то слава и почет, — он избран.

После этого к развитию идеи человечество вернулось только в XIX веке. Выступавшие за всеобщее избирательное право и тайное голосование представители Народной хартии Англии предложили в 1839 году конструкцию особой машины для выборов в парламент. Вновь не обошлось без шаров, правда теперь латунных. Каждый избиратель опускал его в отверстие, соответствующее конкретному кандидату, а встроенный счетчик фиксировал плюс один голос. Неподалеку должны были сидеть судьи, которые пристально следят за счетчиком, чтобы никто не подложил лишний шар.
В 1892 году на выборах в Нью-Йорке дебютировала первая в мире механическая машина для голосования с рычагами. Избиратель заходил в кабинку и опускал вниз маленький рычаг возле таблички нужного кандидата. Затем машина блокировалась и нужно было подтвердить выбор поворотом большого рычага, после чего шторы кабинки открывались. Механизмы здорово облегчали подсчет и быстро стали популярны, но и недостатков у них хватало. Во-первых, конструкции с огромным количеством подвижных элементов постоянно ломались. Во-вторых, они не дублировали подсчет на бумаге, что оставляло простор для махинаций. И, наконец, их могли легко «взломать» обслуживающие техники. Все это, впрочем, не помешало им пройти множество «апгрейдов» и просуществовать до 1982 года.

С 1960-х в США в выборный процесс пришли компьютерные технологии. Вместо бюллетеня человек получал перфокарту, на которой иглой нужно было отметить своего кандидата, а электронное устройство считывало информацию и вело итоговый подсчет. Без проблем не обошлось и тут: случайные углубления и проколы сканер мог засчитать как голос за другого человека. В 2000 году дело даже дошло до скандала: на выборах во Флориде из-за неудачной верстки перфокарты многие люди ошибочно голосовали не за тех, за кого планировали.
Федеральная платформа
Федеральную платформу для онлайн-голосования – ПТК ДЭГ – разработал «Ростелеком». Детальное ее описание доступно по ссылке.
В 2020 году ЦИК сообщала, что «Ростелеком» разрабатывает систему по ее заданию. В ЦИК пояснили TAdviser, что «Ростелеком» с 2019 года в соответствии с поручением президента определен правительством единственным исполнителем заказываемых ЦИК работ по цифровизации избирательного процесса, предоставлению цифровых сервисов для участников избирательного процесса и созданию цифровой платформы реализации основных гарантий избирательных прав и права на участие в референдуме граждан РФ.
В ЦИК говорят, что в декабре 2019 года с «Ростелекомом» был заключен контракт на выполнение научно-исследовательских работ в области поиска, обоснования и апробирования организационно-технических решений по дистанционному электронному голосованию, в феврале 2021 года — контракт на выполнение работ по созданию программно-технического комплекса дистанционного электронного голосования (ПТК ДЭГ), в том числе по технической эксплуатации и сопровождению при проведении тренировок и публичного тестирования, а также на выборах 17-19 сентября.
Финансирование работ по указанным контрактам осуществляется в пределах бюджетных ассигнований, выделенных ЦИК России на реализацию результатов федерального проекта «Цифровое государственное управление» нацпрограммы «Цифровая экономика РФ» по предоставлению цифровых сервисов для участников избирательного процесса.
Итоговые суммы контрактов с «Ростелекомом» в ЦИК не раскрыли, и на портале госзакупок эта информация отсутствует. В плане закупок ЦИК на 2019-2021 гг., однако, указано, что совокупно на цифровизацию избирательного процесса в рамках нацпрограммы «Цифровая экономика РФ» изначально предусматривалось финансирование порядка 433,6 млн рублей, из них около 110 млн рублей – на разработку и апробирование комплекса организационно-технических решений.
Инфраструктура федеральной системы ДЭГ на выборах в сентябре 2021 года включала 4 ЦОДа: площадки «Ростелекома» и два дополнительных дата-центра. Система построена с возможностью масштабирования: первые три ЦОДа разворачивались на период голосования, а 4-й ЦОД остался в ведении ЦИК и сохранился и после завершения голосования. При этом у ЦИК остаются и все данные голосования.


Также в состав инфраструктуры входят магистральные сети связи «Ростелекома», ИТ-оборудование, в котором в общем случае выделяется несколько слоев: сети передачи данных, хранения, виртуализации, контейнеризации, информационной безопасности и операционных систем. Дальше начинается сфера прикладного ПО.
В «Ростелекоме» говорят, что значительная часть инфраструктуры ДЭГ построена на оборудовании, которое находится в реестре отечественной продукции. По сравнению с пилотным проектом ДЭГ, который был реализован в 2020 году, доля такого оборудования и ПО заметно выросла, утверждают в компании. Это и средства информационной безопасности, и сетевое оборудование, а также вычислительная аппаратура и СХД.
В мае 2021 г. проводилась всероссийская тренировка по использованию ДЭГ (в преддверии единого дня голосования 19 сентября). Основной ее целью было нагрузочное тестирование ДЭГ – проверка системы на прочность, а также безопасность, удобство и функционал. На участие в тренировке было подано 2,5 млн заявлений, проголосовали 1,2 млн избирателей, система ДЭГ обработала более 5 млн транзакций. После сборки ключей итоги голосования были подведены менее чем за 15 минут. Разработчик системы заявляет, что время проведения голосования сбои не были зафиксированы, в пиковые нагрузки система работала устойчиво.
А затем по итогам общероссийской тренировки на заседании ЦИК России 25 мая 2021 года были определены семь регионов, где система ДЭГ будет применяться в единый день голосования 19 сентября 2021.
Безопасность федеральной платформы
В «Ростелекоме» и ЦИК уверяют, что система надежно защищена от кибератак, надежна и обеспечивает тайну голосования. Федеральная система ДЭГ использует отечественную блокчейн-платформу Waves Enterprise с применением российских криптографических алгоритмов и средств защиты. Блокчейн позволяет хранить зашифрованные голоса избирателей в неизменном виде.
Шифрование информации производится с помощью специального ключа, загруженного в блокчейн в ходе специальной процедуры, которая проходит в ТИК ДЭГ до начала голосования. Для расшифровки нужен другой специальный ключ, который создается и разделяется на несколько частей в ходе той же процедуры, а собирается только при подведении итогов. Части ключа расшифрования записываются на защищенные носители и передаются на хранение независимым «держателям» до окончания голосования. Одна из частей ключа также хранится в модуле информационной безопасности (Hardware Security Module, HSM) и оттуда не извлекается. Криптографический алгоритм позволяет проводить математические операции с зашифрованными данными, поэтому для подведения итогов расшифровывается суммарный зашифрованный бюллетень. Сами непосредственно бюллетени избирателей не расшифровывается ни во время, ни после установления итогов.
Пытливый и хотя бы немного технически подкованный избиратель сможет проверить, что его голос в блокчейне есть, и что итоговая сумма голосов получена именно на этих данных — тоже. Для этого разработчики предусмотрели ряд технических инструментов для наблюдения за голосованием. При этом расшифровать конкретный бюллетень и посмотреть, за кого он отдан, избиратель не сможет.
Это своего рода компромисс между предоставлением избирателю возможности проверить, что его голос учтён, и опасением, что это будет использоваться на местах для подтверждения голосования под давлением или продажи голосов.
В ЦИК заявили TAdviser, что доверие к ПТК ДЭГ и реализуемым им алгоритмам обработки информации о результатах волеизъявления участников голосования обеспечивается следующими основными мерами:
- раскрытием информации о реализуемом ПТК ДЭГ протоколе дистанционного электронного голосования, используемых в нем криптографических алгоритмах и их параметрах;
- контролем участника голосования над ПО, выполняющемся на его устройстве, а также раскрытием его исходного кода (образцов исходного кода) и интерфейсов его взаимодействия с ПТК ДЭГ;
- контролем избирательной комиссии дистанционного электронного голосования над техническими средствами и выполняющимся на них программным обеспечением формирования, деления и сборки ключей шифрования, контролем над носителями частей ключей шифрования;
- предоставлению неограниченному кругу лиц в ходе голосования, при и после подведения итогов голосования информации о поступивших в ПТК ДЭГ зашифрованных результатах волеизъявления участников голосования, а также программного обеспечения с исходными кодами для проверки полноты, целостности и неизменности результатов волеизъявления и корректности подсчета голосов.
Юрий Сатиров, главный архитектор платформы ДЭГ «Ростелекома», утверждает, что в последнее время было принято очень много дополнительных мер, направленных на повышение безопасности учетных записей на портале госуслуг. И многое зависит непосредственно от самого пользователя.
А в ЦИК считают некорректным допущение, что кто-то может изменить номер телефона для получения СМС-кода, который используется для подтверждения личности избирателя. Внесение таких изменений требует обладания мобильным телефоном, ранее указанным в учетной записи, либо внесение таких изменений подтверждается способом, аналогичным подтверждению учетной записи, говорят в ЦИК.
От компьютеров к дистанционному голосованию
Следующим этапом автоматизации стало внедрение DRE-систем (Direct Recording Electronic, в переводе — прямая электронная запись) для голосования. По сути, это терминал с дисплеем и кнопками или сенсорным экраном. После подтверждения личности он записывает результат выбора (причем его потом можно проверить), а к концу выборов выдает общий результат в электронном и бумажном виде. Впервые такие решения появились в 1980-х, но по-настоящему массовыми стали в Бразилии с 1996 года.

Сейчас мир все еще находится на этапе оценки эффективности как раз таких машин. Сдерживающих их распространение факторов предостаточно.
- Электронное голосование — это дорого, и позволить себе эксперименты с ним могут только достаточно богатые страны.
- В некоторых частях мира препятствием для его развития выступает отсутствие инфраструктуры: например, в странах Африки.
- Некоторые эксперименты официально признаны неудачными. Например, в Нидерландах, Ирландии и Италии. А в Германии электронные машины для голосования Конституционный суд запретил еще в 2009 году. Основной причиной стала непрозрачность процессов для всех людей: даже если компьютерная система и работает хорошо, не обладающие специальными знаниями граждане все равно не могут проверить корректность ее действий, а это нарушает их избирательное право.
Но некоторые страны пошли дальше простого электронного голосования и с распространением интернета перешли на уровень выше: к дистанционному электронному голосованию (ДЭГ). Пионерами в этой области выступают две страны: с 2005 года интернет-голосование работает в Эстонии, а с 2019 года в России. Суть заключается в том, что избирателю не нужно идти на участок. Вместо этого он открывает специальную программу или сайт на компьютере, планшете или смартфоне, проходит авторизацию и отдает голос за своего кандидата, не выходя из дома, или вообще делает это из другой страны.
- В выборах становится удобнее участвовать, потому что не нужно никуда идти.
- Систему ДЭГ дорого внедрять в начале, но затем она начинает экономить деньги, потому что «дистанционные выборы» дешевле.
- ДЭГ решает проблему досрочного голосования и голосования на дому.
- ДЭГ делает работу избирательных комиссий быстрее и точнее: увеличивается скорость подсчета голосов и сокращается вероятность человеческой ошибки.
- Во время эпидемии ни у кого нет риска заразиться на переполненном участке.
- Любая электронная система потенциально уязвима, и ДЭГ — не исключение. Один из главных рисков — утечка персональных данных.
- ДЭГ — очень сложная система, и многие не доверяют ей, потому что не понимают, как она работает.
- Для участия в ДЭГ требуется пройти процедуру верификации, которая делает возможной деанонимизацию человека: в теории появляется, пусть и небольшой, шанс узнать, за кого именно он отдал голос.
- Электронными системами сложно пользоваться людям старшего поколения.
- Требуется обучение работников избирательных комиссий.
- Нужен совершенно иной подход к процедуре наблюдения за выборами: по мнению наблюдателей, выборы с ДЭГ становятся менее прозрачными.
Отличия федеральной платформы от московской
Функционально московская система голосования на платформе mos.ru, пожалуй, в первую отличается от голосования на портале госуслуг тем, что московский избиратель может несколько раз переголосовать. В других регионах этой опции пока не предусмотрено. Переголосование означает, что избиратель имеет возможность снова получить электронные бюллетени и поменять свой выбор (или повторить его) через три часа после предыдущего голосования. В итоге будет засчитан последний выбор. Официально это называется «отложенным голосованием».
Обе системы используют блокчейн и смарт-контракты. Но одно из технических ключевых отличий – в московской системе при подсчете голосов сначала предполагается расшифровка бюллетеней, после чего их в расшифрованном виде сгруппируют и определят результаты. А в федеральном ПТК ДЭГ отдельные бюллетени не расшифровываются. Они сначала сгруппировываются в зашифрованном виде, а потом происходит расшифровка суммарного бюллетеня. Это возможно благодаря использованию технологии гомоморфного шифрования.
Также в федеральной системе используется специальный криптографический алгоритм для анонимизации избирателей, который называется «слепая подпись». Этот алгоритм в системе ДЭГ, позволяющий отделить персональные данные избирателя, по которым он получает бюллетень, от идентификатора с которым бюллетень будет записан в систему, достаточно хорошо исследован мировым криптографическим сообществом. В Московской системе используется механизм анонимизации собственной разработки.
Примечательно, что после окончания процедуры голосования ЦИК 17-19 сентября опубликовал результаты ДЭГ из всех регионов, кроме московского – они появились с существенной задержкой днем 20 сентября. При том что ранее после голосования по поправкам к конституции итоги электронного голосования стали известны уже через час.
Протокол взаимодействия
Рассмотрим процесс голосования на традиционном участке, с урной и бумажными бюллетенями. В общем упрощенном виде он выглядит так: избиратель приходит на участок и предъявляет документ, удостоверяющий личность (паспорт). На участке работает участковая избирательная комиссия, член которой проверяет личность избирателя и наличие его в списке избирателей, который был составлен ранее. Если избиратель найден, член комиссии выдает избирателю бюллетень, а избиратель расписывается в получении бюллетеня. После этого избиратель отправляется в кабинку для голосования, заполняет бюллетень, и опускает его в урну. Чтобы все процедуры соблюдались строго по закону, за всем этим следят наблюдатели (представители кандидатов, общественных институтов наблюдения). После завершения голосования избирательная комиссия в присутствии наблюдателей производит подсчет голосов и устанавливает итоги голосования.
Необходимые для проведения голосования свойства в традиционной системе голосования обеспечиваются организационными мерами и установленным порядком взаимодействия участников: проверкой паспортов избирателей, личной росписью за бюллетени, использованием кабинок для голосования и опечатанных урн для бюллетеней, порядком подсчета голосов и т.д.
Для информационной системы, которой является система дистанционного электронного голосования, этот порядок взаимодействия называется протоколом. Поскольку все взаимодействие у нас становится цифровым, этот протокол может рассматриваться как алгоритм, который реализуют отдельные компоненты системы, и комплекс организационно-технических мероприятий, выполняемых пользователями.
Цифровое взаимодействие накладывает определенные требования к реализуемым алгоритмам. Давайте рассмотрим действия, выполняемые на традиционном участке, в терминах информационных систем и то, как это реализовано в рассматриваемой нами системе ДЭГ.
Сразу скажем – технология блокчейн не является здесь «серебряной пулей», которая решает все вопросы. Для создания подобной системы потребовалось разработать большое количество программных и аппаратных компонентов, отвечающих за разные задачи, и связать их единым процессом и протоколом. Но при этом все эти компоненты взаимодействуют с блокчейн-платформой.
Шаг 4. Секретное шифрование

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

Блокчейн-платформа
Теперь, когда мы разобрали основные особенности реализации системы дистанционного электронного голосования, ответим на вопрос, с которого начинали – а какую роль в этом играет технология блокчейн и какие задачи она позволяет решить?
В реализованной системе дистанционного голосования технология блокчейн решает определенный круг задач.
- Базовая задача – обеспечение неизменности информации в рамках голосования, и, в первую очередь, голосов избирателей.
- Обеспечение прозрачности исполнения и неизменности программного кода, реализуемого в виде смарт-контрактов.
- Обеспечение защиты и неизменности данных, используемых в процессе голосования: списка избирателей, ключах, используемых для шифрования бюллетеней на различных этапах криптографического протокола, и так далее.
- Обеспечение децентрализованного хранения данных, при этом каждый участник имеет абсолютно идентичную со всеми копию, подтвержденную свойствами консенсуса в сети.
- Возможность просматривать транзакции и отслеживать ход голосования, полностью отражающегося в цепочках блоков, от его начала до записи рассчитанных итогов.
Таких образом, мы видим, что без использования данной технологии добиться наличия в системе голосования необходимых свойств, как и доверия к ней, практически невозможно.
Функциональность применяемой блокчейн-платформы обогащена использованием смарт-контрактов. Смарт-контракты проверяют каждую транзакцию с зашифрованными бюллетенями на подлинность электронной и «слепой» подписей, а также проводят базовые проверки корректности заполнения зашифрованного бюллетеня.
При этом в рассматриваемой системе дистанционного электронного голосования компонент «Распределенное хранение и подсчет голосов» не ограничивается только блокчейн-узлами. Для каждого узла может быть развернут отдельный сервер, который реализует основные криптографические функции протокола голосования – серверы подсчета.
Серверы подсчета
Это децентрализованные компоненты, обеспечивающие процедуру распределенной генерации ключа шифрования бюллетеней, а также расшифрование и подсчет итогов голосования. В их задачи входит:
- Обеспечение распределённой генерации части ключа шифрования бюллетеней. Процедура генерации ключа будет рассмотрена в следующих статьях;
- Проверка корректности зашифрованного бюллетеня (без его расшифрования);
- Обработка бюллетеней в зашифрованном виде для формирования итогового шифротекста;
- Распределенное расшифрование итоговых результатов.
Каждый этап исполнения криптографического протокола фиксируется в блокчейн-платформе и может быть проверен на корректность наблюдателями.
Для придания системе необходимых свойств на различных этапах процесса голосования используются следующие криптографические алгоритмы:
- Электронная подпись;
- Слепая подпись публичного ключа избирателя;
- Схема шифрования Эль-Гамаля на эллиптических кривых;
- Доказательства с нулевым разглашением;
- Протокол DKG (Distributed Key Generation) Pedersen 91;
- Протокол разделения закрытого ключа по схеме Шамира.
Более подробно криптографический сервис будет рассмотрен в следующих статьях.
Как устроена федеральная система дистанционного электронного голосования в России
В 2019 году к нам обратился «Ростелеком» с предложением принять участие в разработке бэкенда федеральной системы дистанционного электронного голосования (ДЭГ) на основе блокчейна. По сравнению с обычным голосованием ДЭГ на блокчейне явно дешевле и быстрее для подсчета голосов; оно также может обеспечить большую явку. Но при этом для большинства людей блокчейн-голосование — это черный ящик, а в голосованиях такого уровня ящик все-таки должен быть прозрачным. О том, как мы добились этого и выполнили другие требования заказчика, я расскажу далее в посте.

Требования к системе ДЭГ формировала Центральная избирательная комиссия. Вот их исходный список на 2019 год.
Запуск более 1000 голосований одновременно. Забегая вперед, скажу, что в 2021 году, пока что самом нагруженном для системы, мы одновременно запустили около 1700 голосований.
Обработка 10 млн голосов за 12 часов, то есть примерно 230 tps (транзакций в секунду). Впоследствии минимально допустимая скорость выросла в два раза, поскольку, на каждый голос пришлось отправлять дополнительную транзакцию — подтверждающую факт выдачи слепой подписи, то есть выдачи бюллетеня.
Гарантированный учет всех голосов.
Защита тайны голосования.
Защита промежуточных результатов голосования.
Защита итогов голосования.
Возможность проверки того, как все эти требования соблюдены.
К началу проекта у нас уже был готовый криптографический протокол и собственная блокчейн-платформа Waves Enterprise. Через смарт-контракты в ней можно было сразу развернуть всю необходимую логику и защитить данные в соответствии с требованиями. Но были нюансы.
Производительность (пропускная способность). Мы всегда уделяли ей внимание, но к 500 tps с ходу на смарт-контрактах были не готовы.
Гарантия исполнения транзакций. По умолчанию блокчейн очень старается исполнять все транзакции, но не гарантирует этого — принцип best effort basis. Для голосования так не пойдет, нужны железные гарантии.
Далее я в общем виде опишу, как работает наша блокчейн платформа WE.Vote для дистанционных голосований, а затем то, как мы ее изменили для ДЭГ, чтобы соответствовать требованиям к федеральной системе.
Исходная архитектура WE.Vote

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

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

Третьим идет классический клиент-серверный слой — веб-интерфейсы администратора и участника голосования, а также некоторые вспомогательные сервисы. Администратор управляет запуском/остановкой голосований через взаимодействие с криптосервисами. Участник отправляет бюллетень напрямую в ноду.
Изменения для федерального ДЭГ
Исходная архитектура нашей платформы голосования соответствовала требованиям ЦИК частично. Вот что мы сделали, чтобы закрыть оставшиеся вопросы.
В нашей платформе создание ключа голосования было полностью автоматизировано. В ЦИК нас попросили сделать его более наглядным и отделенным от ядра системы — чтобы члены избирательных комиссий непосредственно участвовали в запуске и проведении голосований, создавая таким образом дополнительный барьер для злоумышленников.
В рамках федерального ДЭГ создание ключей частично вынесено в офлайн. У избирательной комиссии есть ноутбук со специальной утилитой, которая создает ключ. Затем по схеме разделения секрета Шамира ключ разбивают на несколько частей и на съемных носителях раздают держателям ключа. После завершения голосования ключ снова собирают. Имея ключ системы и собранный ключ комиссии, можно расшифровать итоги голосования. Благодаря распределенному хранению, злоумышленник не сможет манипулировать ключами, даже попав в контур голосования.

Следующий шаг — интеграция с компонентами, разработанными «Ростелекомом». Здесь мы создали очередь сообщений. В этой части системы нет ни особых нагрузок, ни секретных данных, сделано это только для упрощения интеграции.

Вторая часть пайплайна — это анонимная зона, где избиратель отправляет транзакцию с голосом. Адаптер слушает очередь и отправляет транзакции оттуда в нашу часть системы, которую я описывал выше, а затем проверяет, что голос был успешно принят блокчейном.
Со стороны блокчейна параллельно этому адаптеру работает еще один, исходящий адаптер — очередь обратной связи. Он считывает все, что было получено в блокчейне, и сообщает об этом заинтересованным сервисам — в том числе первому адаптеру, вне блокчейна. Эта информация поступает также и на портал наблюдателя, где можно получать информацию о принятых голосах одновременно с основной системой.
В зависимости от предполагаемой нагрузки на дистанционное голосование, эта архитектура каждый год реплицируется на несколько ЦОД. Теперь — о том, как мы работали с «нюансами», отмеченными в начале поста.
Оптимизация пропускной способности
Пропускная способность — одна из основных и самых интересных метрик в блокчейне. Маркетологи любят заявлять о десятках тысяч транзакций в секунду, но обычно в таких замерах смысла нет, поскольку они проводятся на минимальных по объему транзакциях проверки подписей, которые не несут никакой прикладной логики. Тесты, которые проводят инженеры на нормальных транзакциях, дают гораздо меньше транзакций в секунду, и от конкретных сценариев здесь зависит очень многое — единой методики замеров пока не существует.
К началу проекта ДЭГ собственная платформа, мейннет Waves Enterprise, обеспечивал всего 10–20 транзакций в секунду. Предстояла большая работа, и мы начали исследование.
Число транзакций в секунду обратно пропорционально размеру транзакции. На размер транзакции мы повлиять не можем, так как бюллетени предоставляет заказчик. Поэтому мы взяли за стандарт бюллетень с выбором одной партии из восьми и сосредоточились на оптимизации. Перевели транзакции в бинарный вид, научили ноды сериализовывать Protobuf и перекодировали криптографические константы в HEX. Ноды получили дополнительную нагрузку в связи с введением сериализации/десериализации, но в итоге пропускная способность выросла примерно в 10 раз.

Затем мы начали разбирать ноду блокчейна. Она состоит из модулей, которые выполняют различные функции — это сетевые интерфейсы, модули для криптоопераций, запуска и исполнения смарт-контрактов, обработки внешних запросов и не только. При глубокой автоматизации их надо рассматривать независимо. Мы стали изучать, какой компонент тормозит больше всего, и неожиданно обнаружили, что нода не умеет работать со смарт-контрактами в параллельном режиме — пришлось ее этому научить. Это дало хороший прирост производительности.
Затем мы изучили возможность специализации для нод, выход за пределы одноранговой сети, когда каждая нода имеет отдельную функцию. Здесь потенциала для роста производительности не обнаружили — сеть осталась одноранговой.
Попробовали подойти к вопросу через железо. В итоге на самых мощных стендах добивались 500–600 tps. В целом влияние процессора и памяти оказалось не таким значительным, как мы предполагали, так что развивать эту тему мы не стали. Однако с помощью инструментов профилирования мы также нашли пару багов, и после фикса ноды стали работать быстрее.

Еще один простой путь ускорения блокчейна — кластеризация. Разбивая систему, мы кратно увеличиваем ее пропускную способность. Данные, которые мы отправляем в разные шарды, не должны быть связаны между собой, чтобы их можно было обрабатывать независимо. Таким образом мы тоже получили хороший прирост. Оставим этот способ на будущее, для возможного масштабирования системы.
Я писал выше, что блокчейн сам по себе не гарантирует, что все транзакции будут проведены. Нашим спасением здесь стала Kafka, с помощью которой мы создали очередь на обработку голосов. Другой сценарий для Kafka здесь — убежище при перезагрузке системы для данных, которые нода не приняла в блокчейн. По умолчанию данные хранятся только в оперативной памяти ноды и при перезагрузке уничтожаются. В этой роли Kafka, к счастью, нам не пригодилась, но перестраховаться стоило. Третий сценарий Kafka — это троттлинг нагрузки для пиковых часов. 40–50% избирателей приходят голосовать в первые часы работы ДЭГ, и Kafka позволяет эту нагрузку сглаживать.
Также ДЭГ стала первым проектом, где мы развернули свою версию CFT-консенсуса, который не приводит к роллбэкам. Когда мы начинали с PoS, роллбэки усложняли взаимодействие компонентов и нам приходилось объяснять, что это не мы выкинули голоса из системы, а потом что-то обратно записали, а это технологическая особенность. Если интересно узнать о нашем CFT-консенсусе подробнее, напишите в комментариях.
На самом масштабном голосовании на данный момент, в 2021 году, мы не потеряли ни одну из 1,5 млн транзакций. Но один голосов пришлось все-таки отклонить — он не прошел проверку ZKP.
Мониторинг всей системы ДЭГ
Фронтенд системы, как я уже писал, был в зоне ответственности «Ростелекома». Нам осталось протестировать только бэкенд — по сути, большую трубу, которая должна обеспечить на выходе столько же голосов, сколько и на входе.

Для тестов мы разработали утилиту нагрузки; она умела создавать голосования пачками и прожигать систему как следует. На каждом участке мы повесили счетчики транзакций и стали ждать ошибок майнинга и валидации.


Если у нас увеличивается число голосов со статусом pending — «было отправлено на ноду, но не обработано» — мы понимаем, что нода не справляется и есть какие-то проблемы. Аналогично мы можем отслеживать и другие этапы. Grafana может мониторить и Kafka: сколько голосов через нее было отправлено, какой лаг вычитки.
Помимо подсчета голосов, мы должны распределить ресурсы по компонентам «трубы» так, чтобы не возникало ботлнеков. Поэтому у каждого компонента предусмотрен мониторинг ресурсов. Удивительно, но инструмент мониторинга местами сам требовал больше ресурсов, чем отдельные компоненты системы, обрабатывающие голоса. Так что счетчики мы повесили и на мониторинг.
Мониторинг блокчейн-сети
Через Grafana мы развернули мониторинг майнинга. Если высота блокчейна на графике равномерно растет, значит, ноды майнят и все работает как надо:

Если ноды обрабатывают блоки неравномерно, то сеть начинает разъезжаться и надо принимать меры:

Здесь мы столкнулись только с одним интересным эпизодом, на тестовом прогоне. На скорости 200 tps безопасники по ошибке отключили доступ по сети. После восстановления и перезапуска метода отправки все ноды в течение 5–10 минут собрались, синхронизировались и обработали все транзакции из UTX-пула — а их накопилось около полутора тысяч. В итоге не потеряли ни одной.
Тестировали мы в двух профилях нагрузки. В первом, пиковом, утилита пыталась пропихнуть определенное число бюллетеней в максимально короткий срок, что имитирует наплыв участников в первые часы голосования.
Во втором режиме предусмотрена длительная нагрузка, когда голоса генерируются и отправляются в обработку постоянно. Так мы можем тестировать вторую метрику — живучесть системы при наполнении баз голосами и пользователями. Эти тесты мы проводили на слабых стендах, в результате чего поймали несколько деградирующих процессов, когда запросы к БД начинали выполняться слишком долго и приводили к остановке.
Если говорить о боевых метриках, то в этом году голосование было менее масштабным по сравнению с прошлым годом, когда показатели доходили до 120 tps. И у нас всегда имелся большой запас по производительности.
Прозрачность системы
Напоследок — о том, что легко упустить в процессе разработки. Обычно, если для задачи заказчика у нас есть работающее решение, то дело в шляпе. Но в проекте национальных выборов очень важно, чтобы решение было еще и прозрачным. В этом направлении мы ведем активную работу.
В прошлом году за нашей системой ДЭГ следили всего пять наблюдателей, а в этом их их стало уже 109. Для них был разработан портал наблюдения, который подключен к очереди обратной связи и получает данные одновременно с остальными компонентами системы. Выгрузки с этого портала наблюдатели могли загружать в дополнительно разработанную нами open-source утилиту. Сравнивая данные, прозрачно обработанные этой утилитой, и данные блокчейна голосования, наблюдатели могли убедиться, что всё обрабатывается одинаково.
Кроме того, к системе были подключены ноды в режиме наблюдения. Они не обрабатывают транзакции и не синхронизируют UTX, а просто получают данные из блокчейна и применяют их к стейту. Наблюдатели могли подключить к таким нодам свои инструменты мониторинга, сравнить их с общедоступными данными и убедиться, что все совпадает.
Выводы
На основе проекта федеральной системы ДЭГ можно сделать несколько выводов с точки зрения технологии.
Производительность блокчейна — это не то, что заявляет маркетинг, а то, что выявляется при крупном промышленном внедрении. Это стоит учитывать в реальных проектах.
Блокчейн — это не самая удобная технология, но при правильной обвязке и внедрении на ее основе можно строить масштабные системы, не теряя уникальные преимущества.
Эффективность блокчейна зависит от его места в общей архитектуре. Он помогает обеспечить прозрачность, но производительность его ограничена. Поэтому есть смысл фиксировать в блокчейне только ключевые точки бизнес-процессов. Здесь важно уметь положить сквозной процесс на блокчейн, но при этом не положить сам блокчейн.
Для дальнейшего погружения советую свой предыдущий пост о том, как работает дистанционное голосование на блокчейне. Также в сети выходили отчеты независимых наблюдателей о нашей с «Ростелекомом» системе по итогам голосования 2021 и 2022 гг. На Youtube можно посмотреть видеоверсию этого поста.
Зарубежный опыт
Ряд стран уже более 10 лет ведут разработки в области систем ДЭГ, однако к масштабному их использованию пока практически никто не перешел. Это связано и с технической сложностью реализации необходимых для голосования требований, в числе которых конфиденциальность волеизъявления, открытость и прозрачность голосования, защита от вмешательства извне, и с особенностями местных выборных законодательств.
Толчок к развитию таких систем дало появление технологии распределенного реестра – блокчейна. Она позволяет закрыть ряд проблемных участков, имеющих отношение к безопасности и прозрачности. Теперь блокчейн используется в качестве основного элемента ДЭГ.
Первой страной в мире, использовавшей систему электронного голосования на республиканских выборах, является Эстония. Собственно, она на данный момент – единственная страна, где полномасштабно применяется дистанционное электронное голосование. Эта опция доступна для всех избирателей в стране.
В Норвегии, к примеру, система ДЭГ разрабатывается с 2008 года. Впервые она использовалась на парламентских выборах в 2011 году. А в 2013 году отдельной группе избирателей в качестве эксперимента разрешили голосовать через интернет в период досрочного голосования. Но в полном масштабе система пока не используется на выборах, так как остались нерешенными до конца вопросы, связанные с обеспечением тайны голосования, а также с защитой от внешних и внутренних угроз.
Шаг 3. Голосование

Избирателю в браузер от ДИТа приходит список кандидатов с их номером и половина замка. Но номера кандидатов не те, что были заявлены публично и лежат в витрине. Они заменены по какому-то внутреннему алгоритму, какому именно — никто не знает, так как открытого кода нигде нет. Видимо, у них внутри есть секретная табличка связей реального номера кандидата и подставного.

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

Интернет-голосование в других странах
Если в Эстонии и России возможности ДЭГ распространяются на всю страну, что во втором случае приобретает особенно серьезные количественные масштабы, то в других странах интернет-голосование чаще всего пока ограничивается только небольшой территорией или тестовыми программами. Швейцария на ограниченных выборках тестировала ДЭГ с 2002 года, а в 2019 году правительство страны взяло курс на полную переработку системы, использование которой временно заморожено. Норвегия отказалась от интернет-выборов после испытаний в 2011 и 2013 годах.
В США дистанционное голосование используется только в одном штате — это Гавайи. Там через интернет может проголосовать любой гражданин страны. Примечательно, что в 2020 году он стал единственным в стране, где уровень явки не превысил отметку в 50%. В штате Айдахо есть теоретическая возможность голосовать по электронной почте или факсу, но только в случае объявления режима ЧС или военного положения. А в Луизиане и Юте голосовать онлайн могут люди с инвалидностью, если она официально подтверждена. Кроме того, с помощью интернета свои голоса за кандидатов отдают моряки Военного и Торгового флотов США.
В Австралии система ДЭГ называется iVote: впервые ее применили в 2011 году в штате Новый Южный Уэльс. Тогда воспользоваться ею мог только ограниченный круг граждан, но это был 1% от всех избирателей или 50 тыс. человек. В 2015 году эксперимент в том же штате продолжился, но из-за сбоя в iVote из списков пропали две зарегистрированные партии, что вызвало большой скандал. Затем ДЭГ использовали в 2019 году без особых проблем, но в 2021-м случился новый скандал. После пандемии поток желающих голосовать сильно увеличился, и это просто «обрушило» всю систему, что привело к полной заморозке проекта в штате. Помимо Нового Южного Уэльса iVote также в тестовом режиме применялась в штате Западная Австралия в 2017 году.
В Великобритании ДЭГ впервые протестировали в 2003 году с целью увеличить явку, но замеры показали, что ее рост не превысил 5%. Затем было еще несколько экспериментов, по итогам которых министр конституционных реформ в 2016 году объявил, что страна отказывается от экспериментов с ДЭГ. Во Франции проголосовать по Сети могут проживающие за рубежом граждане страны, обычно их количество не превышает 2% от общего числа избирателей, но в 2017 году его отменили из-за высокого риска киберугроз.
Кто за что отвечает в ДЭГ
Минцифры и ЦИК России выступают заказчиками проекта, в рамках которого «Ростелеком» отвечает за инфраструктуру и прикладной слой федеральной системы ДЭГ. А избиратели Москвы, как уже упоминалось выше, используют платформу, предоставляемую правительством Москвы. Ниже разберем подробно роли участников в федеральной системе ДЭГ.
Первым звеном для доступа к ДЭГ является портал госуслуг. Он реализует функцию информирования и подачи заявлений для участия в ДЭГ, а также идентификацию и аутентификацию граждан. Оператором портала госуслуг является Минцифры.
За ДЭГ отвечает ЦИК России – независимый федеральный государственный орган с исключительными полномочиями в сфере подготовки и проведения выборов. Все основные функции – от проверки наличия избирателя в списках участников ДЭГ, предоставления ему возможности проголосовать по конкретным бюллетеням, до учета волеизъявлений, подсчета голосов и подведения итогов голосования, реализуются с использованием программно-технического комплекса ДЭГ.
Программно-технический комплекс ДЭГ отделен от портала госуслуг и инфраструктуры электронного правительства.



