На онлайн-выборах в Москве был 16-часовой сбой: отчет о блокчейне выдавал ошибки. Его исправили задним числом

Фото: Александр Авилов / Агентство «Москва»

На региональных и муниципальных выборах, которые в этом году длились трое суток — с 11 по 13 сентября, в Москве снова использовалась система дистанционного электронного голосования (ДЭГ), разработанная департаментом информационных технологий Москвы (ДИТ), которая до этого применялась на выборах Мосгордумы осенью 2019 года, а также во время голосования по поправкам к Конституции. В этот раз онлайн-голосование в столице проходило 11 и 12 сентября на дополнительных выборах в Советы муниципальных депутатов округов Бабушкинский и Марьино, всего в нём приняли участие чуть менее 4500 избирателей.

По итогам голосования в муниципальные советы Бабушкинского и Марьино прошли «административные» кандидаты. Например, в Бабушкинском на довыборах победили глава местной управляющей компании Лидия Киселёва и бывший кандидат в депутаты Мосгордумы, баллотировавшийся от 13 округа, Илья Лифанцев. Если на обычных участках разрыв был небольшой (на 15−20% голосов больше, чем у соперников), то на онлайн-голосовании преимущество административных кандидатов составило от 30% до 35%, обратила внимание депутат Мосгордумы Елена Янчук.

Как выяснили «Открытые медиа», в системе наблюдения за ходом электронного голосования произошёл сбой, в результате которого ДИТ около 16 часов публиковал выписки из блокчейн-системы с искажёнными данными: пропущенными и неправильно записанными голосами. А когда голосование завершилось, ДИТ исправил эти отчёты, опубликовав вместо них новые, корректно заполненные файлы.

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

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

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

Онлайн-голосование в Москве началось в 8 утра 11 сентября и завершилось в 20:00 12 сентября, за это время на сайте для наблюдателей сформировалось около 80 выписок с голосами. ОМ скачали все опубликованные за этот промежуток файлы утром 13 сентября и обнаружили в них десятки аномальных записей. Ошибки в отчётах начали появляться ночью 11 сентября и чередовались в каждой выписке до 17:00 12 сентября, за несколько часов до окончания голосования — таким образом, около половины всех файлов, которые должны отображать «слепок блокчейна», содержали ошибки и пропущенные голоса.

Первая необычная запись появилась в выписке от 23:00 11 сентября, когда проголосовать успела большая часть онлайн-избирателей — 3910 человек. Позднее в выписках стали пропадать записи десятков голосов, а также появились номера голосов необычной длины — 33 934 и 44 104. Так, в файле от 17:00 12 сентября отсутствуют данные о записи около 120 голосов, а также неправильно записан голос номер 4312.

Данные из файла с зашифрованным голосами, сформированного 12 сентября в 17:00. Красным мы выделили строчки с голосами номер 4312 и 4325 — между ними пропущены 12 голосов, а запись голоса 4312 искажена. По разнице между последней записью голоса номер 4341 и количеством строк видно, что всего файл не записал 120 голосов. Скриншот: «Открытые медиа».
Такие аномалии с разной очерёдностью появлялись в каждой выписке из системы, начиная с 23:00 11 сентября и до 17:00 следующего дня — когда уже проголосовали 4341 избиратель из 4535, получивших бюллетени. При этом данные в разных файлах не совпадают, из них каждый раз пропадали разные группы голосов.

Затем, судя по сайту для наблюдения, организаторы голосования по очереди опубликовали 4 новых отчёта: в 17:02, 17:14, 17:18 и 17:19, хотя такие файлы автоматически формируются каждые полчаса, а следующий должен был появиться в 17:30.

На сайте для наблюдения за записью голосов начали формироваться нерегулярные выписки из системы. Красным выделены незапланированные отчёты между 17:00 и 17:30. Скриншот сайта observer2020.mos.ru 13 сентября, «Открытые медиа»
Начальник отдела систем электронного голосования в МГТУ им. Баумана Виктор Толстогузов, наблюдая за ходом голосования, также заметил, что выписки, сформированные после 6 утра 12 сентября в пять раз увеличились в размере, несмотря на то, что содержали примерно одни и те же данные — разработчики ДИТ на его вопрос об этом «обещали проверить», но не ответили, — рассказал Толстогузов. По его словам, исправление файлов в районе 17:00—17:30 началось после того, как он сообщил об искажённых записях сотрудникам ДИТ, которые пообещали «посмотреть», после чего и началась внеплановая публикация новых выписок.

Уже после 13 сентября, когда оригинальные выписки, сформированные во время голосования, ещё были доступны на сайте наблюдения, ДИТ без объяснения причин заменил их на новые. Сейчас на этом сайте, в частности, недоступны файлы, сформированные в 17:02, 17:14, 17:18 и 17:19, а все остальные файлы отличаются по содержанию от тех, что были доступны ранее, и больше не содержат искажений в записях.

Так, например, выглядят два разных файла с зашифрованными голосами избирателей от 16:30 12 сентября (1, 2) — первый файл корреспондент ОМ скачал с сайта для наблюдения утром 13 сентября, второй — тот, который доступен на сайте сейчас. Данные в них не совпадают, в обновлённом файле записаны 4333 голоса, в оригинальном — 4312. При этом в оригинальной выписке отсутствуют записи ровно 100 голосов, это видно из количества строк в таблице и голосов. Все оригинальные файлы, сформированные в период голосования 11 и 12 сентября, доступны здесь.

Данные из файла с зашифрованными голосами, сформированного 12 сентября в 16:30 (скачано 13 сентября). Красным выделены искажения в записи голоса 4282 и неполная запись голоса 4312. Скриншот: «Открытые медиа»

Данные из файла с зашифрованными голосами, сформированного 12 сентября в 17:00, который появился на сайте после 13 сентября и не содержит искажений. Скриншот: «Открытые медиа»
На вопрос, почему на сайте изменились выписки из системы, сформированные в ходе голосования, начальник управления смарт-проектов правительства Москвы Артём Костырко (основной куратор столичных онлайн-выборов) сказал «Открытым медиа», что файлы «не менялись ни в какой части». Он не смог объяснить, почему данные в файлах, скачанных 13 числа, отличаются от тех, что доступны на сайте сейчас, а также не ответил на вопрос, как с сайта пропали доступные ранее выписки от 17:02, 17:14, 17:18 и 17:19 12 сентября. По его словам, внеплановая запись этих файлов произошла из-за перезапуска библиотеки, не уточнив, по какой причине. В результате, говорит Костырко, данные в файлах не расходятся: «Это не новые записи или изменённые, это всё нормальные записи, которые просто переставлены местами по времени».

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

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

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

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

Федеральный закон об основных гарантиях избирательных прав не прописывает процедуру ДЭГ, а содержит лишь упоминание о том, что это «голосование без использования бумажного бюллетеня», — напоминает член Центральной избирательной комиссии Евгений Колюшин: «А здесь с одной стороны технические вопросы, в которых организаторы голосования ничего не понимают, а с другой — тайна голосования и доступ к информации. Всё это должно регулироваться законом, но этого нет. Поэтому никакой ответственности за то, что они что-то подменили, быть не может».

По словам члена ЦИК, подобную замену документации можно назвать подлогом. «Но юридически это никак не квалифицируешь, так как это всё равно не противоречит закону, потому что никакого правового регулирования этой процедуры нет. То, что происходит, не повышает доверия к выборам», — заключает Колюшин.

Разблокировать push-уведомления

Следуйте инструкциям, чтобы активировать push-уведомления