Дистанционное электронное голосование (ДЭГ) стало одним из самых спорных эпизодов прошедших выборов в Думу. Техническая группа Общественного штаба по наблюдению за выборами в Москве после первого аудита не нашла доказательств подделки результатов: эксперты сослались на недостаток данных для анализа. Коммунисты в знак протеста заявили о прекращении сотрудничества с Общественным штабом.

RTVI подробно изучил, как устроена столичная система ДЭГ, почему к ней возникли претензии у оппозиции, как на них ответили в мэрии и общественные аудиторы.

Как устроено электронное голосование

Электронное голосование в России на выборах 17-19 сентября 2021 года прошло в семи регионах на двух программных платформах.

В Москве — на технологии Департамента информационных технологий (ДИТ) Москвы и «Лаборатории Касперского».

В остальных регионах использовалась платформа от Ростелекома (это Курская, Мурманская, Нижегородская, Ростовская, Ярославская области и Севастополь).

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

Основное отличие московского подхода — в возможности переголосования (от 3 часов до суток после первого голосования). Для связи между бюллетенями одного пользователя создали два блокчейна.

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

По данным ДИТ, в закрытый блокчейн попало более 300 тыс. записей (их оставили 297 тыс. уникальных избирателей).

Перед началом голосования ключ шифрования блокчейна разделили на 7 частей.

В ДИТ заявили RTVI, что не существует никакого «мастер-ключа», которым можно тайно расшифровать блокчейн:

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

В Москве жаловались на принуждение бюджетников к ДЭГ. Из-за повышенной явки в столице появились «циклопические» УИКи

Согласно итоговым протоколам ЦИК, в ДЭГ участовалили 1,897 млн москвичей (общая явка в столице 3,79 млн).

Для сравнения, в Курской области из 380 тыс. избирателей только 62 тыс. зарегистрировались на ЭГ, в Нижегородской — 126 тыс. из 1,8 млн.

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

Электронных избирателей на выборах в Госдуму в Москве приписали к 15 УИК (по одному на избирательный округ.) Участки с номерами от 5001 до 5015 курировала одна территориальная комиссия (ТИК ДЭГ) в ЦИК.

В итоге в Москве появились циклопические участки для голосования (по 120 тыс. человек), которые не привязаны к конкретным территориям или учреждениям.

Голосование на электронных УИК трудно сравнивать с офлайном. В онлайне нет данных о распределении избирателей по территории, а в офлайне — почасовых данных о явке с результатом.

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

В дни голосования десятки пользователей не могли проголосовать онлайн. Глава Общественного штаба по наблюдению за выборами Алексей Венедиктов объяснил это большим наплывом желающих. ДИТ Москвы не сообщал о сбоях.

Итоги ДЭГ перевернули результаты выборов в столице, после чего многие кандидаты и штабы завалили ЦИК жалобами на манипуляции электронными голосами.

В результате Общественный штаб по наблюдению за выборами в Москве создал две группы для проверки ДЭГ – техническую групп для подсчёта голосов и группу общественного аудита, которая должна изучить, корректно ли работала система, чем были вызваны странности ДЭГ. Техническую группу возглавил Владимир Чернецкий из Общественной палаты Москвы. В неё также вошли член Общественной палаты Москвы, эксперт в сфере IT Дмитрий Кузнецов, электоральный эксперт Дмитрий Нестеров, координатор и сопредседатель движения «Голос»* Григорий Мельконьянц и программисты – Евгений Федин и Александр Хованский.

Итоги работы этой группы опубликовали в пятницу, 1 октября.

Группу общественного аудита возглавил Григорий Мельконьянц. До 1 октября она не начала свою работу и ее состав не был полностью определен.

В УИК жаловались на отключение ноды наблюдателя после закрытия участков. В ДИТ и общественном штабе не увидели проблем

Голосование остановили в 20 часов. В 21 час 19 сентября части ключа шифрования были соединены и началась процедура расшифровки блокчейна и подсчета голосов.

Согласно объяснению ДИТ, при подсчете голосов каждый бюллетень из публичного блокчейна сравнивался с каждой записью из закрытого блокчейна – это 600 млрд операций.

Эти операции, по версии ДИТ, заняли больше 10 часов (хотя перед расшифровкой в департаменте надеялись уложиться в 1 час 40 минут).

Наблюдатели и члены ТИК ДЭГ Денис Шендерович, Евгений Федин и Илья Сухоруков сообщили, что после окончания голосования, в 20 часов, они потеряли доступ к «ноде наблюдателя». Это рабочее место, подключенное к публичному блокчейну, на котором они могли с небольшой задержкой наблюдать за формированием записей в блокчейн.

Одной из задач рабочей группы штаба стало выяснение, что происходило с блокчейном с 20 до 21 часа — с окончания голосования до начала расшифровки. Для обратного подключения ноды, по словам Федина и Шендеровича, специалисты ДИТ консультировались с ФСБ.

По версии главы управления смарт-проектов ДИТ Артема Костырко, процесс расшифровки блокчейна и подсчета голосов изначально не предполагал подключения ноды наблюдателя. «В будущем мы учтем необходимость такого наблюдения», — уверил он в интервью «Эху Москвы».

Техгруппа Общественного штаба объяснила «провал» наблюдения записью в блокчейн пустых транзакций для контроля его целостности.

В рабочей группе добавили, что при обработке голосов по федеральному списку после расшифровки 1 млн голосов процесс замедлился из-за множества «переголосований». Для повышения скорости расшифровки между 22 и 23 часами отключили синхронизацию данных с observer.mos.ru и резервные ноды блокчейна.

В ДИТ заявили RTVI, что никакой проблемы в этой процедуре нет:

«Как и на всех предыдущих выборах, которые проходили с использованием ДЭГ, результаты голосования автоматически были сформированы в системе, после чего согласно требованиям ЦИК был сформирован итоговый протокол голосования. Члены УИК ДЭГ рассмотрели протокол, подписали его и направили в вышестоящие инстанции».

Власти выложили расшифрованную базу данных ДЭГ. Из нее не понять, какой именно бюллетень учтен при подсчете

ДИТ выкладывал на observer.mos.ru дамп (выгрузку) публичного блокчейна в виде файла базы данных. После окончания голосования ДИТ начал выкладывать расшифрованную базу записей.

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

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

«Блокчейн (ДЭГ — ИФ) доступен в интернете, через сайт, к нему в девять часов вечера 19 числа опубликован специальный ключ, который позволяет зайти в блокчейн любому человеку, который хоть немножко обладает навыками программиста, и расшифровать, и увидеть всю статистику реального голосования с 8 утра 17 сентября до 20 часов 19 сентября. Что собственно и сделали некоторые люди из различных партий», — сказал глава ДИТ на Youtube-канале «Соловьев LIVE».

Расшифровка базы ДЭГ действительно возможна: ее провели несколько исследовательских групп: штабы кандидатов и отдельные энтузиасты. Но она не позволяет «увидеть всю статистику», как заявил Лысенко, и пересчитать итоги.

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

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

В эфире радиостанции «Эхо Москвы» 21 сентября Артем Костырко заявил, что ДИТ «постарается найти возможность» опубликовать данные из него, однако этого сделано не было.

Но в ответе на вопросы RTVI 28 сентября в ДИТ заявили, что не нашли способа надежно анонимизировать пользователей.

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

Из графиков видно, что в отдельные периоды переголосований было намного (на 10-50%, судя по графику ДИТ) больше, чем в другие.

График 9

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

График 10

Разница между показателями — количество бюллетеней, которые сначала отдали за этого кандидата, а потом «переголосовали». Данные о цепочках переголосований ДИТ не раскрывает.

Вопросы, возникшие при разборе итогов голосования и базы данных голосов

Первые вопросы к организаторам голосования появились 20 сентября, после публикации итогов голосования по цифровым УИК. Результаты на них перевернули исход выборов по всей столице.

КПРФ без учета электронного голосования выигрывала по партийным спискам в столице, после учета электронного голосования — вышла на второе место.

Аналогично с одномандатными округами. В восьми округах без учета электронного голосования первые места занимали политики от КПРФ и другие кандидаты, которых поддержало «Умное голосование» Алексея Навального. Но с учетом ДЭГ на первые места во всех округах вышли кандидаты из списка мэрии.

График 6

«Перераспределение» голосов в пользу «Единой России» и системных кандидатов заставило проигравшие штабы и энтузиастов электоральной математики взяться за анализ блокчейна. Они опубликовали данные о выданных бюллетенях, регистрации избирателей и принятых бюллетенях с голосами за партии и кандидатов.

Выяснилось, что в некоторые периоды поведение избирателей «Единой России» и административных кандидатов серьёзно менялось и отличалось от избирателей других партий. В частности, начиная с 2 часов ночи 19 сентября количество голосов за «Единую Россию» и системных кандидатов (из «списка мэрии») резко увеличилось.

Например, в Ленинградском округе № 198 в воскресенье утром резко выросло количество голосов за Галину Хованскую. Голоса за «Единую Россию» в воскресенье также резко выросли.

График 4
График 5

Есть две версии случившегося.

Первую выдвинули штаб кандидата по Ленинградскому округу Анастасии Брюхановой и московский депутат Максим Гонгальский. Они предположили, что в блокчейн попали искусственные записи, то есть был «вброс» голосов.

Вторая версия: искусственные записи в блокчейн, которые поменяли голоса за оппозицию на голоса за административных кандидатов и ЕР.

В ОП объяснили предполагаемые «вбросы» на пиках голосования алгоритмом системы. Она досчитывает голоса с задержкой

Столичный математик, экс-преподаватель РАНХиГС Татьяна Михайлова предположила, что прибавка в голосах за системных кандидатов совпадает с их убылью у их ближайших соперников. Она и другие сторонники версии полагают, что в системе есть прореха, позволяющая делать записи в блокчейне в обход интерфейса избирателя.

В комментарии RTVI ДИТ исключил версию программного вмешательства в блокчейн:

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

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

График 11

В Общественном штабе заявили, что пики на графике показывают алгоритм системы, который не отражает голосование в реальном времени.

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

В эти моменты на графике и возникают пики транзакций, которые показывают время итогового попадания в блокчейн ранее выданных бюллетеней.

Записи о принятых бюллетенях в блокчейне имеют метки времени. В данных ДИТ они указаны с точностью до миллисекунд.

График 12

В каждую секунду может быть сделано несколько записей с одним и тем же временем. Вот посекундный график записей о приеме бюллетеней. На нем видно, что «пики» с минутного графика были не едиными крупными пакетами записей — каждый состоит из нескольких пакетов.

График 3

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

График 1

При анализе распределения записей техгруппа при Общественном штабе подчеркивает, что запись в блокчейн производится «в пакетном режиме» и может не соответствовать голосованию в моменте. А «пики» в отдельные минуты — это несколько идущих подряд крупных пакетов записи, происхождение которых вызвано особенностями работы системы записи данных.

Тем не менее разница в количестве голосов в отдельные часы очевидна.

График 2

Особенно выделяются резкие подъемы количества голосов в субботу вечером и в воскресенье, начиная с 7 утра.

В отчёте технической группы пики голосования объясняются рассылками от mos.ru избирателям и другими мобилизационными акциями. По версии источника RTVI в мэрии Москвы, резкое увеличение голосов 19 сентября за системных кандидатов объясняется мобилизацией бюджетников в столице. Работников УИК, мэрии и подведомственных учреждений начальство призывало скорее голосовать. Чтобы «догнать и перегнать» оппозиционных лидеров, системным кандидатам и «Единой России» потребовалось относительно немного голосов. В восьми одномандатных округах, где оппозиционные лидеры выигрывали офлайн и проиграли онлайн, они потеряли 200 тыс. электронных голосов.

При этом в воскресенье, 19 октября, — тот пик, который вызвал больше всего подозрений у оппозиции — перевес кандидатов из списка мэрии над своими оппонентами составил всего 26 тыс. бюллетеней.

Как объяснить всплески переголосований

В ответ на претензии об отсутствии данных о закрытом блокчейне с переголосованием ДИТ опубликовал на сайте Общественного штаба наблюдения новые графики.

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

Появилась версия о вмешательстве в блокчейн путем «переголосования» бюллетеней за оппозиционных кандидатов в пользу системных. Подозрения вызвал воскресный прирост переголосований у оппозиционных кандидатов.

На графиках по всем округам схожая картина: едва ли не каждый третий избиратель оппозиционных кандидатов и КПРФ голосует повторно, в то время как избиратели других кандидатов и партий так себя не ведут.

График 13
График 14

В итоге у системных кандидатов и оказалось гораздо меньше переголосований, чем у их оппонентов, и особенно, кандидатов от «Умного голосования».

График 7

По версии аналитиков и кандидатов, это может объясняться техническим вмешательством в блокчейн — голоса «забрали» у оппозиции и отдали «списку мэрии». Технических доказательств этого объяснения нет.

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

Рабочая группа Общественного штаба объяснила историю с переголосованиями поведением избирателей.

Комментарий технической группы при Общественном штабе:

«Возможны различные паттерны поведения избирателей при «переголосовании», в частности, избиратель мог поменять свой выбор как однократно, так и несколько раз, в том числе повторно проголосовать за одного и того же кандидата (причины такого поведения могут быть различны и связаны с различными социально-демографическими факторами).

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

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

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

Почему снижалась явка у отдельных блоков избирателей

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

Если в других блоках явка колеблется на уровне 96-97%, то в этих блоках она составляет 80%.

Штаб Брюхановой предположил, что это «виртуальные» избиратели для манипуляций с данными.

В рабочей группе Общественного штаба это объяснили разницей систем регистрации на ДЭГ. Одни регистрировались через mos.ru (учетная запись СУДИР), другие через gosuslugi.ru (ЕСИА).

Через Госуслуги избиратели попадали в блокчейн последовательно. У таких избирателей пониженная явка, поскольку они могли попытаться проголосовать через vybory.gov.ru, и не обнаружив там доступных голосований, в итоге отправиться на mos.ru.

Наконец, для пользователей mos.ru велась более активная информационная кампания.

Вывод технической группы: признаки нарушений не обнаружены, но для точных выводов нет данных

Техническая группа проверки ДЭГ пришла к выводу, что признаки нарушений в ДЭГ не обнаружены. С другой стороны, в докладе отмечается нехватка данных для точных выводов о наличии нарушений в ДЭГ, которые повлияли на результаты.

В своем Telegram-канале участник технической группы Общественного штаба Григорий Мельконьянц сделал несколько основных выводов:

  • большая часть претензий к ДЭГ связана с непониманием его устройства

  • для проверки корректности работы механизма «переголосования» данных для анализа недостаточно

  • для проверки «переголосования» группа предложила провести контрольный запуск системы

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

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

После заявления Общественного штаба о том, что техническая группа не нашла доказательств нарушениям в ДЭГ, представители КПРФ и программист Евгений Федин заявили о разрыве сотрудничества со штабом. Они считают, что такое заявление техническая группа не могла делать, поскольку ее работа сводилась к изучению файла с данными, который предоставил ДИТ, объяснил RTVI замглавы отдела КПРФ по выборам Николай Волков.

Но происхождение этого файла неизвестно, и нет доказательств, что он соответствует состоянию системы ДЭГ на момент окончания голосования, утверждает коммунист. А значит, нет уверенности в том, что информация, которую смотрела техгруппа, отражает реальный ход ЭГ.

Программист Евгений Федин, который участвовал в работе технической группы, в беседе с RTVI рассказал, что не согласен с отчетным текстом. Он считает, что на данном этапе нет данных, которые могли бы развеять сомнения в том, что в системе ДЭГ в Москве не было фальсификаций: «Система изначально спроектирована так, что она не была наблюдаемой в процессе. Я спрашивал доступ к серверной инфраструктуре, но в этом отказали. А сейчас, когда система уже отработала, степень доверия к данным будет гораздо меньше, даже если нам их предоставят. И ДИТ это понимает». КПРФ и Федин заявили, что не будут принимать участие в работе второй группы — по аудиту ДЭГ.

Как сообщил Григорий Мельконьянц, группа аудита при Общественном штабе начнет работу в начале октября. Она планирует до конца года провести анализ технического решения ДЭГ и полноты инструментов контроля. По итогам группа представит доклад со всеми выводами. *внесен Минюстом в реестр иностранных агентов.

Дарья Бурлакова, Владимир Дергачёв