![ДЭГ-шоу ДЭГ-шоу](/images/main/deg-shou-c4dc3f.jpg?from=https://novayagazeta.ru/static/records/ac3b9044ea3e43c6932090376edc650b.webp)
Петр Жижин. Фото из соцсетей
— Петр, несколько слов о вас. Вы кто?
— Я работаю программистом в Яндексе и занимаюсь распознаванием речи. Анализом ДЭГ я занялся случайно. Анализировать данные — это то, что я люблю. Я бы хотел подчеркнуть, что анализ ДЭГ — это не то, чем Яндекс занимается. Это не имеет отношения к моей работе. Это мое свободное время, моя личная инициатива.
— На каком этапе вы включились в выборы?
— Меня возмутила ситуация. Я решил, что надо проанализировать то, что случилось.
— То есть вы не состоите ни в чьем штабе?
— Я являюсь сторонником Анастасии Брюхановой и Петра Карманова (кандидаты Каца в Госдуму и Мосгордуму, — прим. Ю.Л.). Помогал им, волонтерил, перечислял им деньги.
— То есть вы — волонтер Брюхановой?
— Да.
Петр Жижин. Фото из соцсетей
— До конца выборов как вы относились к электронному голосованию?
— Я не доверял системе, но пока они не начали фальсифицировать, я не интересовался этим. Было что-то вроде чувства: «Ну, похоже, они пока нормально работают, может быть, к президентским подключат». И я понимал, что система настолько непрозрачная, что нужны специальные технические знания, чтобы понимать, как она функционирует. Вы, наверное, на себе почувствовали, как это сложно было все проанализировать.
— Я говорила с Виктором Толстогузовым. Он не просто программист, а разработчик систем электронного голосования. Он был один из немногих моих собеседников, который считал, что электронное голосование должно быть запрещено, и был его яростным критиком. Его после этой критики по требованию Венедиктова включили в экспертный совет по ДЭГ. Я начала нашу беседу со слов: «Я в этом ничего не понимаю», и он ответил: «Да, и это нарушение ваших прав как избирателя. Вы же понимаете, как устроена обычная урна? А тут понимают единицы. Значит, права избирателя нарушены».
— Да. У меня тоже такое чувство, что привычная система была заменена на волшебное слово «блокчейн», люди где-то его слышали, знали, что это криптовалюта, что это надежно, а что такое блокчейн — сколько знает?
— А вот кстати, объясните, что такое блокчейн, публике.
— Дисклеймер: я не специалист по блокчейну, но для анализа данных этого и не нужно знать. Там очень большой массив данных, которые можно анализировать, вовсе не зная, что такое блокчейн. Но в принципе блокчейн — это система записей, которая криптографически устроена так, что в систему можно добавить новую запись, а вот чтобы удалить старую, нужно привлечь очень много ресурсов. Но если вы зайдете на сайт observer.mos.ru, вы можете просто скачать sql.базу, распаковать и увидеть три таблицы: blocks, decrypted ballots и transactions. Перед нами — просто база данных, которую можно анализировать, ничего о блокчейне не зная. Просто, когда у вас есть обычная база данных или таблица в экселе — у вас нет никакой гарантии, что в какой-то момент злоумышленник не придет и не подменит ее. Блокчейн — это способ удостовериться, что эта таблица никогда не была подменена.
— Как я понимаю, для того, чтобы таблица не была подменена, все эти транзакции должны храниться на разных независимых серверах. Чтобы если у какого-то блока изменился хеш, то все другие сервера сказали бы: стоп! У нас другое записано.
— Да. И в Москве этого нет. Там все эти ноды — сервера — все равно контролируются кодом, который собрал ДИТ Москвы из своих исходников. Были эксперты, которые приходили и просили подключить независимые компании как отдельную ноду. Но этого нет, есть только сайт observer.mos.ru, куда транзакции выгружаются каждые 30 мин. Разработчики говорят независимым наблюдателям: вы можете зайти туда и скачать.
— Виктор Толстогузов сказал мне одну очень огорчительную вещь. Он сказал, что, поскольку все ноды контролируются ДИТом, то в принципе в эти полчаса можно откатить блокчейн и заменить реальные транзакции нарисованными.
Он мне объяснял так, — извините, тут я это для читателей объясню то, что мне самой только что объяснили, — что любой блок в блокчейне включает в себя саму запись о транзакции плюс хеш, — уникальный набор символов, который ее характеризует. Следующий блок включает в себя запись о новой транзакции и новый уникальный хеш, который получается из предыдушего блока.
При этом существует технология отката блокчейна, она совершенно легальна и необходима, когда, например, на каком-то из серверов возникла ошибка, — один сервер, скажем, считает, что биткойн принадлежит Пете, а другой — что он принадлежит Мише. И тогда откатывают всю цепочку и смотрят, где произошла ошибка. Но это происходит открыто, об этом знают все сервера. А если все сервера стоят в ДИТе, то так каждые полчаса в промежутках между дампами можно откатывать всю цепочку и записывать совершенно фиктивные выборы, и никто вообще никогда ничего не узнает.
Виктор Толстогузов. Фото из соцсетей
— Еще раз: я не эксперт по блокчейну. Но я легко могу представить, что когда у нас немного нод, мы за полчаса все можем перезаписать. У меня, к сожалению, возникли проблемы, когда я писал пост — найти людей, которые состояние блокчейна записывали не после конца выборов, а во время. Я скачал базу первый раз, когда итоги выборов уже подвели.
— Когда именно вы базу скачали?
— Ночью. Около трех часов ночи. Я ее скачал и увидел, что там не расшифровано 700 тыс. голосов. Тогда я попросил своего знакомого настроить скачку каждые полчаса, чтобы проследить за процессом дорасшифровки. Но после подведения итогов этот дамп не менялся. И эти 700 тыс. голосов еще нерасшифрованы. Расшифрованы только 1 миллион 300 тыс голосов. Если точнее: 1319943.
— Стоп! Вот отсюда — поподробней. Это как? Проголосовали два миллиона, транзакций с типом «прием бюллетеня» в базе два миллиона, расшифрованы миллион триста, а итоги подведены. Это как? Это что?!
— Вот! Это меня сильно возмутило, я надеялся, что ночью они базу обновят. Нет! И дальше у меня встал вопрос —
если расшифровано только 70 процентов голосов, то что в остальных 30? Может, они все за оппозицию?
Я скачал исходный код с гитхаба московского ДИТа. Тут надо отметить, что ДИТ утверждает, что весь код открыт. Это действительно так, но то, как он лежит — это издевательство над программистами. Обычно исходные коды публикуются в виде текстовых файлов в репозитории. С полной историей изменения кода и с комментариями разработчиков. Но ДИТ опубликовал в репозитории архивы, внутри которых лежит исходный код. Слушайте, я в 10 классе научился работать не в виде архивов, а в виде репозитория. Сейчас 2021 год!
— Гм. Я очень плохо сейчас представляю себе, о чем вы говорите, и боюсь, что большинство читателей — тоже. Давайте вернемся к тому, что, возмутившись, вы написали программу для расшифровки результатов голосования.
— Ну, это громко сказано — программу. Я просто вытащил кусок исходного кода, немного причесал его и выложил его в виде отдельной утилиты. Меня уже потом поправили эксперты по блокчейну, что все можно было сделать гораздо проще. Но я не знал, как с этим работать, и потратил почти весь понедельник. И еще код был написан на Rust, с которым я никогда не работал.
— Просто обхохочешься, как просто. Итак, вы вытащили кусок кода, сделали из него утилиту по расшифровке голосов, и?
— И за полчаса он у меня все расшифровал.
— Все два миллиона?
— Да. Вы знаете, что теоретически избиратель может узнать, как он проголосовал?
— Мне так объяснили, что все сделано, чтобы это было очень трудно. Но если человек голосует и записывает при этом хеши голосования, то потом он может проверить, как учли его голос.
— Да. Я кликнул клич: «кто записал хеши» и мне отвечает один человек: «у меня есть хеш, и я зашел на сайт, и мой голос до сих пор не расшифрован». Смешно, да? Меня избиратели спрашивают: «проверьте, мой голос не расшифрован». И мне приходится помогать избирателю понять, как система учла его голос. Учла его, кстати, правильно.
Фото: Евгений Одиноков / РИА Новости
— Стоп-стоп. Еще раз. Вот переведем то, что вы сказали, на понятный читателю пример с бумажным голосованием и урной. Есть участок. На нем проголосвали 2 миллиона избирателей. Их голоса лежат в урнах. Выборы кончились, начался подчет. Миллион триста голосов вывалили из урн, посчитали. Потом сказали: «стоп». И перестали считать. Так если они перестали считать, как они объявили результат?!!
— Давайте тогда с самого начала. Действительно, представьте себе, что вы пришли наблюдать на участке электронного голосования, как если бы это был бумажный участок. Что первое делает наблюдатель? Он проверяет книги избирателей. И тут мы замечаем, что у нас на участке книги странные. Там нет фамилии-отчества, а вместо него — уникальный идентификатор. Сайт госуслуг этого избирателя знает, а мы — нет. Вы видите в книге, что у вас в системе 2 млн. избирателей. Но вы находитесь на участке 5003. И вы хотите знать, не сколько их всего, а сколько их конкретно в этом округе и на этом участке? И этого нет. Там внутри транзакции «Регистрация избирателей» внутри одной транзакции — до 100 регистраций разных voter_id. Но при этом в них не указан округ, где избиратель зарегистрирован.
Я считаю, это странный способ вести книгу избирателей.
— То есть наблюдатель не видит, сколько электронных избирателей в данном округе?
— Из книги электронных избирателей — не видит.
— Это мозг выносит. Максим Гонгальский от «Яблока», глава муниципального округа «Раменки», который тоже в штабе Брюхановой, мне сказал удивительную вещь. Он сказал, что у них вообще не было списков избирателей, в которых был указан их адрес. И то же самое мне подтвердила потом Анна Лобонок, наблюдатель от КПРФ. Она сказала, что у них в списках избирателей не был указан их адрес. И что с участков у них была жалоба. Приходит человек голосовать, и видит, что в его квартире прописаны еще двое человек, и эти двое ему неизвестных выписаны на ДЭГ. У меня просто крышу снесло.
— Я не знаю, как устроена система живого наблюдения. Я могу однознрачно сказать по сайту observer.mos.ru Транзакции с типом «регистрация избирателей» — в них не указано, по какому округу он голосует.
— А как же это понять?!
— Потом во время голосования выдавались бюллетени, и в транзакции на выдачу бюллетеня было написано: данный voter_id получил бюллетень по заданному округу. Если кто-то из ДИТа мне пояснит, как проверить, что избиратель не может проголосовать не по своему округу, я буду рад, потому что у меня не получилось этого сделать, так же как и не получилось найти в исходном ходе защиту от того, чтобы данный voter_id не проголосовал не в своем округе, но опять же я буду рад, если кто-то из ДИТ пояснит.
— Стоп-стоп! Вы помните праймериз «Единой России»? Когда чуть ли не 10 млн человек отъединороссили электронно? Зашли в их записи на госуслугах, изменили место прописки, и проголосовали за них на праймериз в ЕР в городе Усть-Заколдобинске N-cкой области?
— Я не в курсе. Меня это не интересовало, пока у моего кандидата не украли мандат.
— Итак, мы выяснили, что на нашем условном участке 5003 нету книги избирателей с адресами. Что открывает захыватывающие перспективы для ботов.
— Пока выглядит так, да, но буду рад, если кто-то пояснит, может это я и ошибаюсь. Итак, продолжим. Избирательная комиссия начинает выдавать бюллетени. За выдачу бюллетеней отвечает транзакация, которая так и называется: «выдача бюллетеня». Внутри нее написано, что данный voter_id голосует по такому-то округу и может проголосовать с таким-то ключом. Избиратель начинает голосовать. Он ставит галочку в бюллетене. И так как избиратель не хочет, чтобы кто-то раньше времени узнал, как он проголосовал, он цифровым образом эту галочку замазывает.
— Выданным ему личным ключом шифрования?
— Да, по нашей аналогии с обычным бумажным округом, считайте, что это замазка. Но, — и это очень важно — когда я уже получил бюллетень, заполнил и замазал, — я не имею уже привязки бюллетеня к идентификатору голосующего.
— Ну и что?
— А то, что на выборах в Москве была введена система переголосования. И по факту она устроена так. Если ты решил, что твой кандидат тебе не подходит, то ты через 3 часа можешь прийти на участок, вытащить из-за пазухи готовый бюллетень и опять замазать галочку. То есть когда я получил бюллетень, мне его выдали. А если я пришел переголосовать, то я материализовал его из-под полы. У нас нет никакой публичной информации, как эти бюллетени связаны друг с другом.
Фото: Владимир Федоренко / РИА Новости
— Стоп! То есть они взяли сейф, положили туда два миллиона голосов, сказали: «сейф надежный, блокчейн, все дела», а потом рядом повесили на гвоздь 300 тыс?
— Я бы сказал так, — пользуясь нашей аналогией с бумажным участком.
В конце дня мы подводим итоги голосования. И я вижу, что в урне
лежит 133 тыс. бюллетеней с замазанной галочкой. И мне говорят: а
посчитаем мы из них только вот эти 120 тыс». И спрашиваю: как же
так получилось? На каком основании? И председатель ОИКа тогда
говорит: «Ах, ну знаете, у нас тут в ДИТе был второй непубличный
блокчейн, в нем-то и записано, что вот эти 13 тыс. мы считать не
будем».
ПРОДОЛЖЕНИЕ
|
</> |