Pull to refresh

Comments 321

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

Через десять дней мы можем говорить что угодно об ошибках в системе — изменить будет уже ничего нельзя.

У нас получается 78К лишних голосов, которые могли бы ошибочно быть учтены (избыток 4%),
так же 702К не расшифрованных публично и .... 14М лишних голосов по версии Шпилькина, из которых ну вычтут несколько десятков участков и все.
По статистике же Шпилькина только каждому пятому не нравится текущий курс, остальным все равно (не пошли), все нравится (за), не нравится, но хочется работать (за)

остальным все равно (не пошли)


Нет, не всё равно. Но голосованием сегодняшняя проблема не решается.

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

Вы опрометчиво приравниваете неучастие в выборах нежеланием прилагать усилия.

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

При наличии УмГ, о которой звонят из каждого утюга, неучастие никак не можно назвать "активной гражданской позицией", скорее пофигизмом

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

Тем не менее, пофигисты, которых тоже в достатке, не имеют ничего общего со сторонниками демонстративного бойкота в плане прилагаемых усилий.

UFO just landed and posted this here
Изменения надо начинать с другого. Не с выборов. Ничего вы не сможете решить просто проголосовав.

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

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

Без этого твоим голосам подотрутся и ты ничего с этим сделать не сможешь. Единственное что ты сможешь выбрать это кто будет тебя обирать — Петя или Вася.
Вы бы посмотрели комментарии только на Хабре в околополитических постах, там куча сторонников бойкота есть.

Системы координат надо очищать от ошибок, значит. Для одномандатных округов в РФ бойкотирование невозмжоно в принципе (если просто кандидат придёт и проголосует за себя -- выборы состоятся).
Математически любая неявка избирателя на выборы в ГД РФ -- голос за Едро (за любого победителя, но последние 15 лет это Едро). Испорченные бюллетени, дописывание своих кандидатов -- голоса за Едро.

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

Люди, которые не готовы приложить даже минимальные усилия (пусть и с минимальным выхлопом) — проголосовать

В Белоруссии проголосовали, ну и что, поменяли власть?

Ну вообще-то да. Они заменили легитимного Лукашенко на нелегитимного, со всеми вытекающими.

когда не приходят 2/3, вбросы сделать проще всего бюллетени есть свободные, если бы пришли 3/4, то пришлось бы уже править цифры, т.е. посчитали одно, а написали другое.

да не нужно никаких вбросов, даже в идеально честных подсчетах мнения большинства будет нужный результат, всё контролируется СМИ, которые формируют информационное поле, и тут они сами создают тот зоопарк партий для каждой целевой аудитории, зацепив их своим "нарисованным" имиджом, чтоб предоставить интересы этих таргет групп, это как мальчиковая попгруппа, где есть "романтик", "плохиш" и тд.. не особо важно кто там из них победит. важно что большинство в контролируемом информационном поле. зато люди думают что от них что то зависит)) а на деле зависит только кто будет новым ведущим шоу, в новом сезоне. Как вообще большинство может выбрать различного уровня управленцев, только по их имиджу сформированным СМИ?. повторюсь, но это как главу академии наук выбирать по имиджу и их предвыборным роликам, тогда какие нибудь Петрики или Фоменко уже давно стали бы ее возглавлять (конечно же сильно утрировано) но .. конечно главных редакторов шоу есть конкуренция, но имея административный ресурс всё инакомыслие быстро выпиливается, и этим занимается не ведущий шоу, он максимум только озвучивает что ему говорит главред, а у того вообще не известно заказчики)) так что голосуй - не голосуй... отсюда просто не желание тратить время на такие шарады в иллюзию выбора

Вы не понимаете как устроены выборы, что такое федеральный округ и что такое округ одномандатный, отсюда ваша глупая реплика

Прекрасно понимаю, текущая система позволяет воровать из этих 225 мест, что и показали результаты при накрученных 49% взяли 198 из 225 мест одномандатных, по ним даже порога в 50% не нужно и не какого второго тура, в таких условиях это подарок для кандидата от основной партии. Причём не так давно были просто по спискам выборы, но сейчас бы не набрали конституционное большинство.

Немалая часть одномандатников вышла в думу, набрав у себя в округе 25-35%. Официально. Пример, Санкт-Петербург.

ну без второго тура это не выборы, т.е. надо набрать хотя бы 25% и быть первым, и так везде, а мнение остальных 75% игнорируется.

Одномандатники вполне нормальная практике при двух-партийной системе, а при многопартийной это 198/225 "честных мест"

вы говорите что 78к в голосов в мск ничего не значат из-за 14М вробшенных по рф
это совершенная глупость
эти 78к вероятно решают судьбу 15 мандатов из 450

ок, а как появились другие 183 мандатов вам не интересно?

Что весомее 15 из 450, или 183 из 450?

А сейчас ещё что-то можно изменить? Есть надежда на справедливый суд, только подать жалобу нужно успеть за 10 дней? Вот потому у оппозиции с народом и не получается контакт - они просто инопланетяне.

Есть хороший разбор от Каца - https://www.youtube.com/watch?v=4ffEHROI8WI - на обеденном перерыве фальсификаторы палятся легко. Но есть подозрение, что те голоса были собраны с людей в ручном порядке. Люди просто сдавали пароли. Отдать пароль - это тоже политическая позиция. Так что народ сказал своё слово - хотят царя, своему голосу не доверяют.

Оппозиции пора бы понять уже суть проблемы.

У оппозиции с народом не получается контакт ))
Xорошо сказали. ))

Тот факт, что между сохранением рабочего места и участием в борьбе престолонаследников люди выбирают первое, вовсе не делает их сторонниками монархии. Фальшивость такого выбора ещё в фильме 1939 года была ясно разжевана:

Имхо самое главное что не так с электронным голосованием - его наличие, в условиях недоверия к его организаторам. Как бы ни был прозрачно опубликован код, мы не сможем узнать, что для формирования транзакций/подсчёта голосов используется именно он. Мы не можем быть уверены, что до голосования не добавили несколько сотен тысяч учётных записей в госуслугах (а если можем - как быть с сохранением тайны голосования). Да и "блокчейн", в данном случае - какой в нём смысл, если все узлы контролируются одним лицом.

ну ок, мы не верим идем ногами, кто то верит и либо отдает свой голос ЕР, либо за него это делают, по вашей логике, ну и кто виноват?

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

А в 2020 не боялись?

Между тем результаты онлайн и офлайн были почти одинаковые в Москве.

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

А вот то что среди людей, интересующихся новым и готовых голосовать в интернете, меньше людей, готовых голосовать за КПРФ - я как раз не очень удивлён.

там сомнительных всего 300К, но все сомнительные были решающими, есть даже случаи сомнительных за яблоко, что бы от КПРФ от УГ не прошел

ну какие 300к, вон в статье же написано, что в блокчейне побеждает ЕР, а проголосовало там порядка 2млн.

Сегодня выступал наблюдатель программист, аномальных там всего 300к голосов, остальные могут быть по указке, но это уже вообще не доказуемо, может и все 49% тоже по указке по федеральным спискам

Интересующихся новым - это вы про Единую Россию сейчас?) Все же знают, что самая популярная партия в интернете - это ЕР, да?)

Вообще, речь не только про КПРФ и ЕР - по одномандатным округам в Москве провластные кандидаты были не обязательно от ЕР а их главные соперники не только от КПРФ но это никак не меняло расклада.

Вот соотношения результатов голосования в Москве по спискам между ДЭГ и ногами:

ЕР: 1,49

КПРФ: 0.51

ЛДПР: 1.08

CР: 0.86

НЛ: 1.21

Не обращая внимания на КПРФ, как так получается, что "интересующиеся новым" больше поддерживают ЕР чем тех же СР или Новых Людей? ЕР более модные, молодежные?

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

UFO just landed and posted this here

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

Тем не менее, если убрать из электронного голосования аномальные всплески, типа ухода сторонников ЕР на обед (сторонники других партий при этом не уходят) или резкое прекращение сторонников ЕР голосовать в 14:30 в воскресенье (сторонники остальных партий при этом продолжают голосовать как обычно), то графики электронного и оффлайного голосования становятся примерно одинаковыми. Что и логично, так как все мы видели очереди из бюджетников в первый день, а также призывы голосовать электронно. То есть, у сторонников власти нет радикального перекоса в ту или иную систему голосования. Голосовали и там, и там.


Кроме того, если сторонники власти большинство голосовали в первый день, а противники в последний, то откуда у ЕР огромный всплеск в воскресенье, в последний день? И переголосования почему-то тоже добавили голоса в ЕР, это вообще как? И ВЦИОМ впервые в истории не стал публиковать экзитполы на оффлайн участках (где в большинстве победили кандидаты от УГ), почему?


На фоне этого более вероятным выглядит, что изначально в электронное голосование вбросили много мертвых душ. Поэтому бюджетников просили проголосовать в первый день, чтобы оценить реальное положение, чтобы под конец добавить нужное число голосов. Отсюда и всплеск у ЕР в воскресенье. Возможно, мертвых душ даже не хватило и админы переголосовали за обычных людей. Отсюда и аномальное число переголосования 300 тыс из 2 млн. Каждый шестой из двух миллионов независимых и не связанных между собой людей? Выглядит подозрительно. При этом в прессе не появлялось сообщений о массовых смс срочно голосовать в воскресенье утром, да и слухи о лотерее от числа голосований тоже не циркулировали массово. А проверить нет возможности, подсчет переголосований вёлся по тайному скрытому второму блокчейну (который так и не опубликован). Защиты от сброса государством несуществующих профилей там вообще нет в принципе. Да ещё и к округам не приписаны, чтобы проверить число избирателей по спискам в этих округах. Это вообще выглядит как диверсия.


В итоге недоверие противников к системе электронного голосования и призывы голосовать пешком в последний день только чётче выявило аномалии в нем. Имхо, недоверие к ЭГ преувеличено, электронно голосовать удобно и наверняка большинство противников так и сделали, кому лень идти на участок или вообще раньше не участвовал. А вот непрозрачность системы и аномалии в результатах это для электронного голосования прям огромный косяк, ставящий под сомнение его честность.

"Обед" это да, подозрительно.

Но надо заметить что совпадение всплесков голосов за оппозицию и за ер легко объясняется спущенными в бюджетные организации разнарядками: "чтоб к такому то времени все проголосовали", тогда и резкое прекращение сторонников ЕР голосовать объясняется: просто перестали требовать. Впрочем конечно возможно что у них был скрипт вбрасывающий голоса в зависимости от кол-ва голосующих, но это как то сомнительно, ибо зачем? К тому же тогда надо еще как то объяснить всплески голосов за оппозицию.

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


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

А ведь можно эту логику всё же и туда заложить. но...

Но если обычную БД стягивать в реальном времени, и если записи подписаны ЭЦП и имеют сквозную нумерацию, то же самое будет справедливо и без всяких блокчейнов же?

UFO just landed and posted this here

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


В общем, троллейбус из хлебушка сделать можно, но зачем?

UFO just landed and posted this here

Если CSV подписан ЭЦП оператора, сказать можно что угодно, но вот она подпись. Блокчейн для этого не требуется.

И чем это лучше чем готовый экзонум/эфир/...? Т.е. я не против, это можно сделать, просто разговор из разряда "зачем мне nginx если я tcplistener на порту открыл и погнал"… Ну просто потому что это уже рабочее коробочное решение, которое умеет всё, что нужно?..

… а в соседнем топике стыдили ФБК за то, что для сайта из одной страницы и одной формы ввода они развернули Kubernetes.

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

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

Тут же усложнение есть, а выгод нету.

Усложнение по сравнению с чем? Все ваши подписанные цсв и постгресы это как раз сложнее, чем простая математическая структура для которой есть проверенные временем реализации. Это как писать своё шифрование вместо использования openssl потому что оно там сложное, а значит будут векторы атаки, а своё простое как раз защищено

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

Будем теперь везде блокчейн использовать вместо обычной электронной подписи, просто потому что «есть проверенные временем реализации»? Зачем, чёрт побери?

Это ненужное переусложнение системы, затрудняющее её аудит и создающее ложное чувство безопасности. А любой инфобезник вам скажет, что false sense of security is worse than no security at all.

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

Ну покажите рабочее решение, гарантирующее неизменяемость данных, возможность подключения сторонних клиентов для синхронизации и чтобы это все быстро работало? А то опять в аналогиях потеряли лес. Вы сами написали про постгрес + какие-то подписи — если есть готовый продукт, то давайте название. Для эфира вот я говорю есть готовый продукт parity/geth — запустил и оно работает. Теперь вы — назовите имя продукта чтобы подключил и все нужные свойства есть.

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

Тупо сквозная нумерация и криптографическая подпись через приватные ключи. Качать записи по мере их поступления можно хоть WGET'ом, хотя тупенькое REST API и тривиальный скрипт на питоне получше бы смотрелись.


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

Аналогия корректная особенно потому, что клиенты ДЭГ шифруют трафик неким ГОСТ TLS, с кузнечиком видимо. Стандартный то TLS "не подходит".

Поэтому ни с какого Firefox или chrome никто голосовать не мог.

(испанский стыд)

Т.е. как? А откуда надо было голосовать? Из IE с ActiveX'ами что ль? 8-()

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

Но если мы сделаем БД с синхронизацией в реальном времени, подписями, сквозной нумерацией и всем осталньный… То мы как раз и получим блокчейн (или что-то похожее).


В том же и суть, что блокчейн != криптовалюта. По сути блокчейн это способ организовать персистентный журнал с историей и автоматической синхронизацией. Это идеальное решение для задач вроде электронных очередей, голосований и т.п. Единственный вопрос доверия. И вот с ним проблема, но в областях где уровень доверия выше (например ярмарки выходного дня на блокчейне) — это отличное решение, которые из коробки много чего умеет. Чем и хорошо.

UFO just landed and posted this here

Ну, дерево меркеля нам и обеспечивает по сути сквозную нумерацию.

UFO just landed and posted this here
Было аж три инструмента, любого одного из которых хватило бы для любого нужного результата: мёртвые души, переголосование, и подмена/откат публичного блокчейна.
UFO just landed and posted this here

Чем обычное оффлайн-голосование более тайное? Я точно так же прихожу с паспортом, и ничего не мешает мотивированному сотруднику избирательного участка запомнить связку "номер паспорта"-"номер бюллетеня", нарушая таким образом тайну в момент извлечения бюллетеня из урны для подсчёта.

Так и в онлайн-голосовании - достаточно разнести на разные сервера процедуру аутентификации с авторизацией (выдаёт сертификат "предъявителю можно голосовать") с процедурой заполнения бюллетеня (проверяет сертификат, в котором гражданин анонимизирован).

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

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

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

UFO just landed and posted this here
UFO just landed and posted this here

А где Вы увидели в Конституции тайное голосование? Тайное голосование предусмотрено на выборах Президента РФ (ч.1 ст.81), про выборы в Госдуму сказано, что всё определяется федеральными законами (ч.2 ст.96).

Федеральный закон "Об основных гарантиях избирательных прав и права на участие в референдуме граждан Российской Федерации" от 12.06.2002 N 67-ФЗ, статья 7.


Это вообще основополагающий закон о выборах и референдумах в РФ, с опытом наблюдения он заучивается наизусть :)

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

Да, я не понимаю, почему вас заминусовали, а меня заплюсовали. Я ведь дополнил ваш комментарий, согласившись с ним и указав конкретный ФЗ, а не опроверг его.

Однако надо сказать, что таким результатам в ГАС Выборах может быть и другое объяснение: например, что оппозиционные избиратели несколько раз переголосовывали за того же самого оппозиционного кандидата, а избиратели административных кандидатов этого не делали.


По некоторым данным(не скажу точно источник, но слух проскакивал) во время выборов ходила информация что шанс выиграть приз(в Москве «премировали» желающих проголосовать через ДЭГ) повышается с числом попыток переголосования — как раз могло повлиять на ситуацию когда переголосовывали за того же кандидата повторно :).

Песков что ли накрутил переголоса?

Хм… А только Песков в ДЭГ участвовал?

Я, например, с дачи проголосовал(за спойлера, а не за ЕР), и выиграл туже минималку — вот только список «партнёров» какой-то несолидный, даже сходу не знаю на что баллы потратить :). А когда начинают показывать выигравших главные призы, и кто-то вбрасывает что переголосование увеличивает шансы — не уж-то не найдутся те кто если и не поверит, то подумает «а вдруг?!»?

P.S. Переголосованием не занимался, правда в первую попытку(утром первого дня голосований) попал на нестабильную работу сервиса — бюллетеня ждать не стал, пошел в лес за белыми :). На следующий день проголосовал без тормозов.

Сейчас бы слухам верить.

Вред прививок, ковид выдумка тайного мирового правительства, вышки 5g убивают людей — и правда, кто в наше время верит слухам :).

Мое электронное голование было гораздо веселее.

Вначале голосование казалось традиционной легкой прогулкой, но ...

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

Ну думаю, бывает, перегруз, мало ли чего. Захожу через через другого провайдера ( через телефон ). Всё тоже, получил смс, только в конце выдала, что уже проголосовал и теперь могу поменять бюллетень через 3 часа. Интересно стало, это система сама заполнила бюллетень или приняла без единого голоса?

Через 3 часа опять та же ровно история, после нескольких "сайт перегружен, зайдите через 15 минут "так уверенно выдает "вам не доступна услуга оперативного изменения" ( не помню точно текст, просто противно пересматривать видео, второй то раунд с экрана мака записал ) и всё, выборы окончены ?!

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

Это как то очень кривые руки писали этот сервис, вот такое мое мнение.

P.S. очень интересно стало, может там бюллетень по умолчанию, ну, традиционный такой с поставленным чекбоксом ?

Я так понимаю они под "проголосовали" имели в виду, что бюллютень вам выдали, а бросили вы его или нет это уже не важно

Я вчера тоже пол ночи пытался понять как устроено переголосование. И ничего не смог найти в открытых источниках.

Без него все оч похоже на федеральные выборы, когда невозможно отследить голосовавшего(см https://habr.com/ru/post/574360/#comment_23408446, только комент а не статью, тк в статье скорее всего ошибка.)

Но если я могу переголосовать, то кто то уметь мачить мой старый голос и новый(те операции с типом 6, которые по очевидной причине не имеют voter_id)

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

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

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

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

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

Причем самим можно голосовать примерно равномерно на протяжении всего процесса голосования, и никто не проверит по пикам частоты выдачи бюллетеней.

Главное случайно не уйти на обед и не поставить процесс на паузу XD

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

Ну, допустим проще сделать хэши. Тогда, уж лучше вычислять хэш прямо во время голосования.

Или, сколько времени займёт поиск хэша по базе 2 миллиона? 20ms? За сколько отработает DISTINCT MAX?

И всё можно сделать встроенными средствами того же постгреса, к примеру.

Главное случайно не уйти на обед и не поставить процесс на паузу XD

А они и уходили в воскресенье днём.

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

Ну, допустим проще сделать хэши.

Допустим, в блокчейне записаны пары (хэш(фио), голос).
Что помешает начальнику Васи Пупкина вычислить хэш(«Вася Пупкин») и найти в блокчейне его голос?

Это если она неизвестна начальнику Васи Пупкина. А если известна (систему делали одни и те же люди), то легко вычислит и с ней.


В смысле, самому начальнику ничего не нужно вычислять. Ему просто от разработчиков системы придут списки сотрудников, кто неправильно проголосовал. Разработчики-то знают соль и легко сопоставят ФИО и голос в блокчейне.

Вы какие-то сложности выдумываете. Зачем там какая-то соль, что мешает между бекндом и блокчейном поставить эластик? Чай с клиента голоса не напрямую в блокчейн летят, а в mos.ru (или куда там), где с ним что угодно можно делать. Да и даже если в блокчейн, то между ним наверняка стоит реверс прокси, которая может логгировать все что душе угодно.

Операция 5 у вас не очень точно названа. В коде это add_voter_key. На фед выборах это по сути защита от переголосования. Потому что voter_key подписан сервером выдачи бюллетеней, но он его не знает, тк подписывал вслепую. Тк сервер приема голосов должен проверить что я не сдал один бюллетень два раза добавляется эта транзакция. Новый voter_key мне серевер выдачи бюллетеней не подпишет, тк он знает что Вася Пупкин уже получил бюллетень, а сервер приема полагается на уникальность ключа.

А вот какова его роль когда переголосовать можно не очень ясна.

Я верю:) Но иногда полезно глянуть в код:

#[interface_method(id = 5)]
fn add_voter_key(&self, ctx: Ctx, tx_args: TxAddVoterKey) -> Self::Output;

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

Я правильно понял, что они взяли готовую неплохую реализацию голосований на блокчейне, и потом гвоздями сбоку прибили переголосование в условную эксель-табличку, причём голос в эксель табличке имеет финальный приоритет? И, если так, зачем там тогда вообще блокчейн? 🤷🏻‍♂️🙂

Чтобы Веник мог во все уши кипятком разливать, что у нас блокчейн, всё чисто и прозрачно и подделать низзя

Беда в не подделать, беда в голосовании в пт на работе под присмотром.
А сколько потом стали заморачиваться дома раскрыто в этой статье - не много, еще и не понятно учлись ли их голоса, но даже если не учлись это не много, сильно меньше странных результатов по ЕР.

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

Если был бы некий чатик или опрос, в котором 1М ДЭГ проголосовал так то, то можно было бы сопоставить. А так, я и знакомые использовали ДЭГ и на этом все, ну результат то не 100%, вот мы то О-малое, которые не испугались ДЭГ, ну а дальше как у Трампа - не голосуйте по почте, а потом "данные по почте надо анулировать, т.к. мы там проиграли" .

Беда в не подделать

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

А потом по ситуации уж выбрать тот который больше нравится.

А еще же можно их просто заранее сформировать несколько штук и выбирать из них наиболее подходящий в текущей ситуации.

Там exonum, в нем есть анкоринг на биткойн от такой вот бухгалтерии. Но его предсказуемо не прикрутили.

Ключевой сотрудник "Газпром Медиа" в ключевой момент сработал в интересах собственников "Газпрома".

Для меня самое непонятное вот что - исходя из вот такого прецедента - https://habr.com/ru/news/t/561094/ - где гарантия что переголосовывали сами люди?


Как я понял, гарантия в sms-подтверждении (чтобы получить бюллетень, нужно ввести код из пришедшего sms).

СМС как защита от государства?

гарантии нет, но вероятность, что человек пойдет голосовать ногами или зайдет к себе в кабинет очень высока именно в Москве, и подставляться из за 1М голосов так явно очень странно, проще выгнать наблюдателей из УИК, что мы видели не раз из регионов.

Люди даже не голосовали многие сами (прошу прощения за желтушный заголовок видео)



И переголосовывали за них тоже "кто надо"

И неудивительно - много раз про это были публикации.

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

А в чем проблема? Они сами сознательно отдали свои пароли.

В том, что система ЭГ в принципе позволяет отдать свои пароли.

При бумажном голосовании такой проблемы нет.

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

Например, я ваши 500 рублей возьму, а с вашим заполненным бланком схожу в туалет.

«Предложить избирателю проголосовать определённым образом» != «проголосовать за избирателя самому».

Спасибо за ваш труд.

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

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

Находил вот такую картинку по динамике голосования в ДЭГ по 198 округу (Хованская/Брюханова)

И ещё несколько

В transactions.datetime, но по идее транзакция с некоторой задержкой совершается, что не критично

Я бы на всякий случай проверил - все ли "переголосования" попадают в 24 часовой лимит после первого голосования.

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

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

"переголосования" записываются в тот же блокчейн, но в нем нет отличий между первым голосом и переголосованием. А факт о том, что какой-то голос является "переголосованием" хранится в где-то в другом месте.

Но ведь более поздний добавленный в блокчейн блок и будет последним голосом... Кроме случаев, когда переголосование случилось сразу же и попало в один блок из 100 голосов, или сколько там в одном блоке, что должно происходить очень редко.

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

По-хорошему, с каждым голосом должен храниться идентификатор пользователя. Тогда можно использовать просто последний голос по времени. Но не простой идентификатор, а обезличенный. По которому невозможно вас найти. Например, это можно сделать так: вы авторизуетесь на госуслугах, получаете с них свое имя и фамилию. Потом зашифровываете их как MD5 хэш. Отправляете его второй независимой стороне, которая снова берет хэш от вашего хэша по неизвестному для госуслуг алгоритму (новый MD5 хэш с неизвестной солью). И возвращает новый хэш вам. А вы записываете его в блокчейн как свой идентификатор вместе с голосом. Этот идентификатор будет постоянным для всех ваших переголосований, что вместе с отметкой времени позволяет очень легко и быстро определить последнее переголосование.

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

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

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

>Но тогда прощай анонимность, так как после расшифровки будет ясно за кого именно он голосовал

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

Но связи между идентификатором пользователя и идентификатором бюллетеня с голосом нет
Может я чего-то не понимаю, но связь есть (посредством общего voting_id). Внутри транзакции “Выдача бюллетеня”:
{«voting_id»:«ea067e1ad71565daff55627e4b35340620d53d644820478ee798e125efe657c2»,
«voter_id»:«66226133256418595367941344536751838140319057399092269074519877057970658693635»,
«district_id»:197,
«seed»:«3877720680732874652»}
Внутри транзакции “Приём бюллетеня”:
{
«voting_id»:«ea067e1ad71565daff55627e4b35340620d53d644820478ee798e125efe657c2»,
«district_id»:199,
«encrypted_choice»:{
«encrypted_message»:«32f384b35b17816d0b227e240dbdd0405b03902bab8b547eb2»,
«nonce»:«5ca72f89ea94f8035e66e129cbad40e8f8154878b65e60af»,
«public_key»:«dae3d8a3863eded175fec99b6a4c78dfbf8f340c3d1a1ba8d481c615bf912303»
}}

Если всё так, то тайна голосования нарушена.

voting_id это идентификатор выборов, а идентификатором бюллетеня в этой транзакции является поле author (вне payload'а), значение которого равно voter_key, появляющееся в транзакции с типом 5 "Проверка доступа голосующего". Идентификатором избирателя является voter_id. Так вот связь между voter_id и voter_key в доступном блокчейне отсутствует.

От создателей алгоритма шифрования "ЛСДУЗ & ЙФЯУ9".

При поддержке дизайнеров шрифтов "Студии Лебедева"...

Новый многосерийный сериал

8ыь()pьi 2о2i

Базу, наверное, тоже обфусцировали, перед тем как выложить для скачивания

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

Команда Polys при «Лаборатории Касперского» разрабатывает систему электронного голосования, ориентированную на проведение государственных выборов и способную масштабироваться на неограниченное число избирателей. Особенностью «Polys.ГОСТ» является возможность гибкой подстройки криптозащиты под требования любого законодательства.

Это как, интересно? Для государства - NULL алгоритм, а остальным - Кузнечик?

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

Вывод +/- получили результаты именно какие и были, а доп время потратили на перепроверку, т.к. сами создатели не поверили в цифры, и вероятно, допустили воздействие из вне.

Забавно, что всех обувателей (тут речь, не про проделанную работу в рамках данной статьи) заботит судьба 2М голосов, а вот что партия набравшая всего 49%, в ГД получила более 70% мест уже мало кого волнует.

ИМХО одномандатники главное зло, а ЭГ нужно делать в один день, лучше в воскр, что бы голосовали не на работе.

Не очень понятно, как можно прийти к выводу про "результаты, какие и были", если это вообще никто (кроме каких-то секретных людей в ДИТ Москвы, которые вообще не члены избиркома) не может проверить.

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

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

сами создатели не поверили в цифры, и вероятно, допустили воздействие из вне.

Это создатели то не поверили в то, что по всем округам победили кто надо?) И еще и перепроверить решили, никогдаж такого не было, чудо.

Как сообщает Григорий Мельконьянц, на общественном штабе Москвы принято решение провести общественный пересчёт голосов интернет-голосования по скачанным наблюдателями файлам с сайта https://observer.mos.ru/.

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

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

На проводившихся в сентябре 2020-го года государственных выборах я скачивал эти файлы с доступной тогда периодичностью 30 минут и заметил в них ошибки и последующую подмену файлов. Моя публикация на эту тему (https://www.facebook.com/notes/786771108774083/) вызвала бурное негодование у ответственного за систему интернет-голосования города Москвы Артёма Костырко, который в своём блоге опубликовал мне ответ и неожиданно заявил, что я наблюдал не за тем, за чем оказывается нужно было наблюдать (https://echo.msk.ru/blog/kostyrko/2710137-echo/). Вот что он написал: "Один из членов технической рабочей группы, которого позвал Венедиктов, – сотрудник уважаемого МГТУ имени Баумана Виктор Толстогузов – опубликовал отчет о наблюдении за электронным голосованием 11-12 сентября. Для этих целей он решил пользоваться нашим обзервером, хотя учитывая его обширные технические знания мог бы пойти напрямую в блокчейн и выгружать данные напрямую оттуда. Прежде чем разобрать претензии, которые Виктор высказал в наш адрес, необходимо объяснить, чем обзервер отличается от блокчейна. Обзервер – это внешний интерфейс, который показывает всем, даже тем, кто первый раз слышит слово блокчейн, что процесс идет, что записываются блоки, что голосование не останавливается. Обзервер смотрит в блокчейн и отражает то, что процесс голосования идет. Файлы, которые формируются на сайте обзервера не равны блокчейну, потому что они отражают сайт, а не блокчейн."

То есть Артём Александрович заявил, что я, как и все ответственные наблюдатели следили, оказывается, совсем не за тем, что нужно, что файлы не равны блокчейну, поскольку они вообще относятся к сайту

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

Далее он пишет: “Файлы, которые генерируются каждые 30 минут на сайте observer2020.mos.ru, — это данные, выгруженные с этого самого сайта, а не из блокчейна. Мы называем это гордым словом парсинг. Таким образом, эти файлы – таблицы эксель – совершенно не равны и не являются блокчейном. Основной прием Виктора — это софистика. С его точки зрения, в блокчейне — зашифрованные голоса, в файлах— зашифрованные голоса, значит блокчейн равен файлам. Но это не так.” и “Строки в таблице – это не данные из блокчейна, это автоматически высосанное содержание сайта observer2020.mos.ru. Когда вы копируете текст из документа и вставляете его в другой документ, вы можете случайно не выделить последнее слово. Значит ли это, что в первоначальном документе что-то не так? Не значит. Когда вы открываете чек и случайно отрываете его криво, значит ли это, что банковская транзакция в аппарате прошла неверно? Не значит.”

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

Если в файлах будут найдены различия, то по мнению Артёма Костырко “Изменения в этих файлах не означат, что что бы то ни было изменилось в блокчейне, потому что в нем изменить ничего нельзя, невозможно изменить голос, невозможно вбросить голос в блокчейн.”

Заявления Артёма Александровича о том, что блокчейн нельзя изменить и что-то туда вбросить ничем не обосновываются. Место ввода данных с голосами избирателей в блокчейн закрыто от наблюдателей и членов комиссии. Также, вероятно, Артём не знает, что данные блокчейна, если он действительно есть в системе (за 2 года работы в технической рабочей группе нам так и не доказали использование технологии блокчейн в реализации ДИТ Москвы), может быть изменён путём отката цепочки блоков и записи их заново. Заметить это никто из наблюдателей не сможет, поскольку используемый блокчейн не распределен между участниками наблюдения, а скрыт ДИТ Москвы от посторонних глаз. Например, метод отката блокчейна и записи его заново использовался при работе системы интернет-голосования, разработанной компанией Ростелеком (https://habr.com/ru/company/rostelecom/blog/518928/) и этого никто из внешних наблюдателей не заметил. Тогда Ростелеком признался в содеянном сам.

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

Сегодня на сайте общественной палаты г. Москвы появилось сообщение, что “Члены технической рабочей группы, участвовавшие в обсуждении и разработке системы онлайн-голосования, смогут убедиться в правильности и корректности подсчета электронных голосов. Для этого руководитель Общественного штаба по наблюдению за выборами в Москве А. Венедиктов предложил им самостоятельно провести аудит результатов электронного голосования.” (https://opmoscow.ru/.../it-eksperty-smogut-ubeditsya-v...). Однако мы этого сделать должным образом не сможем (я являюсь членом ТРГ), потому что нет должной документации на систему, не разработаны методики проверки и не с чем сравнивать. За два года работы мы направили в ДИТ Москвы и общественную палату г. Москвы большое количество предложений, в том числе требования к содержанию технического задания, в которых указывалось о необходимости предоставления документации, разработки методик проверки, внедрения электронной подписи для документов, однако они не были реализованы. Направленные мной в ОП Москвы тревожные письма остались без ответа (прилагаю). В лучшем случае на наши предложения нам отвечали неофициально, после жалоб в ОП Москвы, например, следующим образом:

- “В среднесрочное ТЗ включены вопросы включенного контроля и наблюдения авторизованными наблюдателями за состоянием самой системы и транзакциями внутри нее.”;

- “В среднесрочное ТЗ внесены вопросы публикации на специальном портале документации, одобренной регуляторами.”;

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

- “По сути стоит отметить, что в среднесрочное ТЗ включены разделы, связанные :

- реализацией контрольного примера до и после начала электронного голосования,

- контроля соответствия исполняемого и исходного кода системы,

- функционала включенного технического наблюдения в ходе электронного голосования.”;

- “В среднесрочное ТЗ внесено 3 способа контрольного пересчета:

- на основе проверки случайного объема контрольных транзакций пользователями, согласившимися стать добровольными контролерами и раскрыть для комиссии анонимность своего голосования (но не тайну),

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

- на основе непосредственного доступа контролирующих уполномоченных к программно-техническим средствам ДЭГ.”.

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

Меня, как члена ТРГ, пока не уведомляли о предстоящем аудите и мне неизвестна его методика.

Аналогичные проблемы с наблюдением есть и в федеральной системе интернет-голосования, но об этом я напишу позднее.

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

UPD

Документы:

1.1. Письмо в ОП Москвы с предложениями, июнь 2020: https://disk.yandex.ru/i/Qw-hyfLWUY0hJQ

1.2. Приложение - разработанные технические требования к системе интернет-голосования: https://disk.yandex.ru/i/BM2zFLdOBshlSA

3. Ответ общественной палаты от 15.03.2021: https://disk.yandex.ru/i/yeyE7JzNmzfGNQ

4. Письмо о необходимости рассмотреть направленные требования от 24.05.2021 (осталось без ответа до сих пор): https://disk.yandex.ru/i/FnESO3B-lxsAbQ

Впервые в жизни видел проект качеством ниже чем можно встретить в аутсорсе. То что не бьются итоги нормально. Это не проблема шифрование или блокчейна. Это обычное дело для сетевой архитектуры а-ля спагетти. Она просто такая. Слишком слабосвязанная система. С множеством нюансов. Где непонятно что происходит и ничего нельзя протестировать на уровне "удовлетворительно". Я даже не говорю про то что не были обнародованы обязательные для таких систем тех документы. У нас вообще то ГОСТЫ есть. На ПО. На сами выборы честно скажу мне было все равно. Наблюдал из интереса к отрасли в которой работаю. Очень расстроен. Мы для людей и так как космонавты какие то. А теперь доверия может стать меньше. Просто потому что небыло времени протестировать. Написать методики ввода в эксплуатацию. Обоснования работы и надёжности. Сочувствую программистам. Представляю как выглядил процесс изнутри.

Я не уверен, стоит ли им сочувствовать. Я думаю, там все знали на что шли. Госзаказы такие госзаказы.

С другой стороны, я могу ошибаться. Поэтому я бы послушал рассказы очевидцев. Кто они? Есть ли они на хабре?

На хабре есть. Вот тут в комментариях Пост. Извините ссылка не ровно в начало получилась

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

Команда Polys при «Лаборатории Касперского» разрабатывает систему электронного голосования, ориентированную на проведение государственных выборов и способную масштабироваться на неограниченное число избирателей. Особенностью «Polys.ГОСТ» является возможность гибкой подстройки криптозащиты под требования любого законодательства.

В «Лаборатории Касперского» рассказали о подсчете голосов в системе ДЭГ

Функционал системы для онлайн-выборов был разработан специалистами «Лаборатории Касперского». Благодаря особенностям технологии блокчейна, программистам удалось реализовать возможность отложенного выбора, что позволило снизить риск «утраты» голоса избирателя из-за неполадок с интернетом.

Создатель «Лаборатории Касперского» оценил онлайн-голосование

Генеральный директор «Лаборатории Касперского» Евгений Касперский рассказал, как он оценивает техническую реализацию дистанционного электронного голосования в этом году

И ещё вопрос. Не могу понять, для чего вообще блокчейн здесь используется и от чего он защищает.

Его целостность должна подтверждаться скачиванием время от времени всеми желающими и сверкой? Но точно также можно подтверждать и целостность обычной БД, без всяких блокчейнов!

Если нужно подменить одну транзакцию, то в обычной БД подменяется только она, а в блокчейне придётся подменять все от неё до текущей, да. Но и то и другое палится скачиванием всей базы и сверкой!

Так зачем тут блокчейн? Ну, кроме заведомого усложнения, которое всех запутает.

Побуду кэпом. Только ради названия, чтобы широкая публика впечатлилась модным, но непонятным словом (ну, блокчейн, там что-то с биткоином связано, наверно надёжно).

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

Полностью согласен. Исключительно для хайпа и понтов. Так же как и вчера ростелеком с гордостью заявил что никто не смог взломать систему. Они конкурс объявляли. Нечего и некому было взламывать. Вначале впечатлившись суммой хотел присоединиться. Но почитав условия пошёл ТикТок дальше исследовать. Там точно платят)

Если есть возможность качать и проверять транзакции блокчейна в реальном времени, можно также и записи в обычную базу качать в реальном времени. Если транзакции заверены ЭЦП оператора, сказать «вы неправильно скачали» — не получится. Зачем блокчейн?

От того, что потом в оригинальной базе обнаружится 100к транзакций, которых у тебя нет (но заверенных ЭЦП, всё как положено), можно застраховаться сквозной нумерацией, опять-таки не ясно, зачем именно блокчейн как способ хранения вводить.

Я при этом ни в коем случае не хейтер идеи блокчейна, она сама по себе красивая и полезная. Просто зачем она конкретно здесь? Блокчейн, который никого ни от чего не защищает, это как в рассказе Пёстрая лента Конан Дойля: вентиляционная отдушина, которая не вентилирует, и звонок, который не звонит. ОЧЕНЬ ПОДОЗРИТЕЛЬНО черт его дери

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

Так зачем тут блокчейн? Ну, кроме заведомого усложнения, которое всех запутает.

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

UFO just landed and posted this here

Спасибо большое! Вы четко облекли претензии, которые я, как и многие, озвучивали абстрактно, в конкретную техническую форму.


К сказанному хочу добавить, что нет никаких следов происхождения конкретных voter ID. Если при "бумажном" голосовании есть списки избирателей, в которых указаны Ф.И.О. и адрес, то тут получается, что мы видим только аналог порядкового номера в строке списка избирателей… и всё. И если на обычном, оффлайновом участке наблюдатели и ПСГ могли посматривать в книги, то на электронных УИК со стороны наблюдателей не было никакого контроля над тем, что избиратель вообще существует.


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


Про "протухший сертификат" в 20:00 — у меня вообще слов, не нарушающих правила Хабра, нет.

Если "нода наблюдатея" - фикция, то какая разница протух сертификат или нет? :-)

Задумали вместо наблюдения за ЭГ спектакль, но даже его не смогли провести по-нормальному.

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

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


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

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

«Общественный» аудит OpenSSL происходит с момента начала разработки, благо код открыт. Тем не менее, коммерческим аудитом профессионалов они не побрезговали.

Не могли бы поделиться ссылкой. Мне просто интересно кто поменял репутацию на деньги) Или касперкий?)

Я видимо не так понял) Я подумал что ростелеком сделал у авторитетного источника аудит ДЭГ. Вашу ссылку я уже видел)

Я про другое: какая ценность аудита профессионалами открытого кода ДЭГ, если фактически используется не этот код, а непонятно какой? (А даже если бы и этот, мы бы об этом знали только со слов ДИТ и без возможности удостовериться.)

Разумеется, аудиту должен быть подвергнут не только код, а весь процесс. И в резюме должно быть указано про невозможность верификации реально работавшего кода.

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

Сделали способ голосования, который проверить сложнее, чем офлайновое — за что же тут спасибо?

Да не "сложнее", а вообще невозможно!

В этом-то всё и дело.

Как можно рассчитывать на доверие к этому в таком случае?

Вода по немногу камень точит. Никуда они не денутся. Рано или поздно будет все по уму сделано. Эволюция жестока к дуракам.

UFO just landed and posted this here

Так не выйдет. Они инициализируются до начала.

А кто мешал нагенерить "мертвых душ" заранее? ;)


Моя теория в том, что так и сделали, но их не хватило, потому и устроили комедию с "истекшим сертификатом" (например, через rdp подменили) и "переголосованиями" по никому не озвученной процедуре.

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

Самое наглядное - округ с Рыжковым, когда в пятницу-субботу вбрасывали за Раззакову, а в воскресенье переключились на Рыжкова. В итоге он и победил в сумме, заняв второе место и на ДЭГ и на участках.

Разве мало госучреждений, работающих в воскресенье? От больниц до метро.

И все они прекращают работу ровно в 14:30? И несмотря на такое раннее окончание рабочего дня - ровно с 12:20 у них обед? Если бы это были реальные голоса (пусть и под принуждением) из разных госучреждений - было бы больше флуктуаций в графиках. Это мог быть не один человек, а небольшая команда в одном учреждении, но точно не принуждаемые бюджетники.

На пуши бюджетникам например с mos.ru тоже не похоже. Если бы все пуши пришли в одно время - мы бы увидели резкий пик в момент пуша, а затем плавный спад. Если пуши отсылались порциями в течение первой половины дня вск - всё равно был бы более плавный спад после 14:30, график же обрубается резко. К тому же это никак не может объяснить резкое изменение предпочтений в округе Рыжкова, разве только пуш не был типа "Голосуйте за Рыжкова прямо сейчас по ссылке:"

Хорошие аргументы. Но представить себе даже небольшую команду, десятки тысяч раз подряд тыкающих мышкой в одну кнопку, я всё равно не могу. Для скрипта — наоборот, флуктуации слишком сильные. И вся эта история никак не вяжется с 12-часовой задержкой перед подведением итогов: если к 20 часам блокчейн уже был «какой надо», то чего было тянуть?

Возможно они сами увидели что натворили и как легко это можно увидеть, и пытались найти способ например переписать блокчейн.

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

Посмотрите видос на ютубе ниже — и скажите что это нельзя было автоматизировать.

Могу подтвердить данные в ролике по 198ому округу на основе данных блокчейна (абсолютное и относительное кол-во голосов Брюхановой и Хованской)

Данные брались из официального блокчейна: (+ ручное декодирование недостающих голосов)

SELECT datetime, ballot.decrypted_choice[1] as choice
FROM public.decrypted_ballots as ballot
JOIN public.transactions as trans_store
ON (ballot.store_tx_hash = trans_store.hash)
WHERE ballot.decrypted_choice[1] in (217404809,136749451) ORDER BY datetime

Ага!


Вот этот пик с 8 до 14 в воскресенье — это могли быть переголосования, а могло быть и наоборот — вбросы от имени избирателей, которые еще не проголосовали (причем преимущественно от имени тех, кого в ДЭГ вписали добровольно-принудительно, что в бюджетных организациях происходило сплошь и рядом).


Переголосовать можно не ранее, чем через 3, но не позднее, чем через 24 часа после первоначального голосования, так что утро воскресенья — вполне подходящее время для таких вбросов.


Те, кто таки заходили проголосовать, спокойно получали свой бюллетень и голосовали (на самом деле — переголосовывали), а на деталь про отложенное голосование сложно обратить внимание, если видишь эту форму в первый раз. А кто не заходил (например, те, кого на ДЭГ вписали не по их воле, могли вообще не собираться голосовать) — вот и остались в виде вбросов.


Это объясняет и нереалистичное число переголосований (в районе 15%), и дает возможность при проведении проверки подсчета с выделением переголосований по имеющемуся только в приватном блокчейне group_id (на котором сейчас настаивает рабочая группа) заявить: вот, смотрите, переголосовали-то не в ту сторону, как вы нас обвиняли, а наоборот, так что переголосование, как и задумано, защищает от административного давления!


Конечно, просто "вброс переголосований" проще, но и вот такой хитрый вариант тоже исключать не стоит.

я бы не называл вбросом, термином обычного голосования, тут либо

  • так все включили ПК и голосуем за... (пт утро);

  • забрать логин/пароль и использовать в вскр;

  • получить доступ к логин/пароль и без ведома голосовать;

ну и технически не исключено, что переголосования не учитывались, или прибавлялись, 104% не просто так.

Но дикая явка в пт, больше подтверждает вашу версию, чем совпало и так было

Административно контролируемое голосование, несомненно, тоже было. Но если все им ограничивалось — зачем ДИТу даже после всех скандалов упорствовать и скрывать даже от небольшой группы людей, законно находившимся в помещении ДЭГ УИКов, обоснованно — на основании федерального закона 67 — требующих возможности проверки подсчета, и поле group_id, и сам алгоритм его обработки? В итоге джентельменам из ДИТ предлагается поверить на слово. Как-то подозрительно, не находите?

Несомненно, там будут косяки и тогда придётся отменять все голоса.

Вот-вот, и хорошо, если у этих косяков будут какие-то разумные объяснения, кроме фальсификации.


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

Поскольку в комментах упоминали что не могут прочесть посты в фейсбуке, скопирую его текст сюда:

Анастасия Брюханова на ютуб-канале Максима Каца рассказала о математических доказательствах масштабных фальсификаций на электронном голосовании. Оказалось, (О, чудо!), что "опрокидывание" результатов есть ни что иное, как банальные вбросы - только теперь электронных бюллетеней в электронную урну. А реальные результаты онлайн мало отличаются от оффлайна. Как соавтор исследования я детально расскажу, как это удалось доказать.

Результаты голосования опубликованы на официальном сайте. По сути это зашифрованный список бюллетеней, где указано время голосования и выбор избирателя. По этой базе данных (sql dump) мы сделали временную развертку результатов голосования (Рис. 1 - на примере 198 округа). Как будто выборы проходят каждые 30 минут и каждый раз подводят новые итоги.

Голосование идет очень неоднородно, разделим его на три фазы.

1. Медленная - это пятница и суббота. Здесь процент за административного кандидата (далее ЕдРо) средне завышенный.

2. Быстрая фаза - это воскресенье, примерно с 8:00 до 14:00. Процент ЕдРа резко подскакивает (в 1.5 раза), а потом так же резко падает.

3. Свободная фаза - это воскресенье с 14:30 до 20:00. Процент ЕдРа минимальный и практически не меняется со временем (отрезок короткий, но тем не менее).

Этот паттерн голосования абсолютно универсален и наблюдается во всех без исключения одномандатных округах Москвы, включая и ГосДуму, и довыборы в МосГорДуму (хотя там есть особенность - о ней ниже). Посмотрите на Рис. 2: все зависимости совпадают с точностью до мультипликативной константы. Вывод можно сделать только один: во время фаз 1 и 2 происходила масштабная интервенция (проще говоря, вбросы), а во время "свободной фазы" ее, по-видимому, не было.

Это и позволило получить "очищенные результаты" ДЭГ - использовать только свободную фазу (Рис. 3). Как видно из рисунка реальные результаты ДЭГ слабо отличаются от оффлайна. Ну уж точно нету "опрокидывания", т.е. когда оффлайн с отрывом выигрывал один кандидат, а онлайн - другой. Так что объяснение "парадокса" ДЭГ банальное - это привычные нам вбросы. Никаких вам замысловатых теорий про ЕдРо, которое уговаривает своих избирателей голосовать онлайн, и оппозицию, которая, наоборот, отговаривает.

Любопытно, что результаты ДЭГ хорошо коррелируют с социологией Russian Field (Рис. 4). Показано для 198 округа, но и в 197 и 208 корреляция хорошая. То есть честно посчитанное ДЭГ даже адекватнее оффлайна, значит админресурса там почти нету.

Забавно, что интервенция в "быстрой фазе" шла с перерывом (Рис. 5 - это кумулятивная функция по всем кандидатам ЕдРа: так удается набрать необходимую статистику). Мы ее шутливо назвали "перерывом на обед", уж не знаю, реально фальсификаторам захотелось поесть или они завершили свою работу, отчитались наверх, а там сочли, что усилий недостаточно и надо бы еще пару часиков повбрасывать.

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

Что ж, есть и плохие, и хорошие новости. Плохая - у нас опять украли выборы на этот раз с помощью электронных вбросов. Хорошие: нам оставили "честный кусок" и нету никаких сотен тысяч запуганных москвичей, которые боясь начальства, как рабы, в страхе голосуют за едро. Есть жулики в избиркомах. А к этому мы привычные.

На десерт: увлекательная история в 37 округе на довыборах в МосГорДуму (Рис. 6). Там Екатерина Раззакова от ЕдРа и Владимир Рыжков от Яблока. Так вот, оказалось, что в медленной фазе вбрасывали в пользу Раззаковой, а в быстрой - за Рыжкова. Тут есть два объяснения: либо есть два центра вбросов и они не договорились, либо сначала по ошибке вбрасывали за Раззакову, разумно предполагая, что раз она от ЕдРа, то за нее и надо, а потом надавали по шапке: не за того вбрасываете!

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

В комментариях: ссылка на ролик Анастасии; ссылки, исходники и дополнительная информация.

Гонгальский Максим

Плохая — у нас опять украли выборы


От уж новость, так новость. О том, что всё пройдёт именно так говорилось давно. Можно даже сказать, что бы выборов у вас и не было.

ЧТо бы чего-то добиться на выборах надо представлять какую-то силу из себя. Где же все те донатеры, которые стоят за Брюхановой? Внезапно оказалось, что закинуть денежку это ничтожно мало и за ней нет никого.

Проводила ли Брюханова агитацию среди работников крупных заводов, фабрик или хотя бы с теми же курьерами, таксистами и учителями?
Идя на евыборы не покидало ощущение, что идешь поиграть в покер с шуллером на деньги.
В итоге все просто, сайт просто не работал последний день и не факт, что работал в другие.
Wait a second…
UFO just landed and posted this here

Даже самые технологически идеальные выборы не защищены от технологии "начальник за спиной"

Зато обычные бумажные от такого неплохо защищены — достаточно убедиться что ширма без дырок.

UFO just landed and posted this here

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

UFO just landed and posted this here
Это надо чтобы сильно припекло и то правильно сделать смогут единицы, остальных попалят при анализе фото.

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


В теории конечно все возможно. Но практика говорит о том, что так не делают.

UFO just landed and posted this here
Детектировать фотошоп можно просто посмотрев на EXIF, что умеет даже проводник в Windows. Удалить EXIF можно, но для этого придется открыть файл hex редактором и заменить нулями все упоминания фотошопа (утилиты для очистки EXIF удаляют не все, по крайней мере те, которые я пробовал).

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

Это хорошо если борятся за явку, а не за кандидата

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

UFO just landed and posted this here
В этом плане функция переголосования более менее должна работать. А вот от отбирания логина и пароля защититься куда сложнее.
UFO just landed and posted this here
А там есть какая-нибудь защита от «записал голос» и штук типа Adobe Voco?
UFO just landed and posted this here
Если честно — без понятия, как собираются биометрию внедрять у нас все эти банки и оплати е-баллами в метро…
Я бы не ориентировался на банки, учитывая, что они допускают восстановление паролей через такой небезопасный механизм, как СМС, количество атак на который даже лень перечислять.

Большинство способов биометрической идентификации небезопасны. Что отпечатки пальцев с анализом сосудов, что лица с датчиками глубины (3D face printing). Наиболее безопасным способом лично я на данный момент считаю активную идентификацию с помощью сетчатки глаза, но массовые реализации даже этого способа идентификации на данный момент уязвимы.

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

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

Я не могу представить архитектуру системы которая позволяет переголосовывать и при этом оставляет голосование анонимным. Либо нескольких минут обдумывания не хватило, либо эта система нарушает конституцию. Для возможности переголосования за избирателем должен быть закреплён конкретный ID бюллетеня который в дальнейшем будет считаться не действительным если человек захочет переголосовать.

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

То есть проголосовав на эвм с телефона переголосовать уже было нельзя? Я в голове рассматривал вариант сохранить ID бюллетеня локально, но счёл его не рабочим как раз по этой причине.

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

Альтернативный вариант: многократное переголосование с последующим вычищением таблички дубликатов. (этот сценарий косвенно подтверждается там что в обеденные часы аномалии куда-то пропадали).

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

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

Пример. Таблица переголосваний до перестроения:

A => D
B => D
A => D
B => D

И после:

A => B
B => A
+ 4 голоса за D

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

Не знаю будет ли оффициальный ответ от ДЭГ, но на всякий случай опубликую описания Щербакова А (из телеги ДЭГ) тут:

Касательно повторного голосования.

1. В системе есть два блокчейна. Публичный и приватный

2. В приватном хранится доп параметр group_id.

3. Для подсчёта нам по сути нужно сгруппировать все голоса по этому id и выбрать последний.

4. Этот механизм часть защиты избирателей от давления

5. Логика подсчёта также реализована на блокчейне, что накладывает определенные ограничения на скорость всего этого. Та же самая операция на базе данных (GROUP BY) будет значительно быстрее но для БД будет необходима внешняя система контроля целостности DAMP

Саму логику можно посмотреть в репозитории ДИТ в папке dit-blockchain-private-source Полный путь dit-blockchain-private-source\services\actual-ballots-service\src\schema\actual_ballots_storage.rs

Таким образом долгое время выполнения это из-за реализации нетипичной для блокчейна операции GROUP BY на параметре group_id. Он был реализован "в лоб" с высокой сложностью, но вполне вероятно что другие более эффективные реализации могут либо не существовать либо потребовать значительно более глубоких знаний блокчейна Exonum - на уровне авторов/контрибьютеров самого проекта. Поэтому такая реализация вполне себе допустима.

То есть тайна голосования нарушается только в приватном блокчейне, который и является связкой userID — groupID?

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

Но в таком случае существование публичного блокчейна вообще не имеет никакого смысла и это главная причина считать что ДЭГ это один большой развод.

Если в приватном всё же был индекс последнего переголосования по каждому бюллетеню, тогда зачем было много часов "устанавливать" якобы соответствия между 2 миллионами бюллетеней и 300 тыс. переголосовавших транзакций.
Если индекса нет, то приходится сравнивать все варианты хешей от конкатенации идентификатора бюллетеня и транзакции, а если есть индекс, то перебирать все комбинации и сравнивать хеши нет необходимости. если в приватном блокчейне был индекс, тогда смысл было перебирать? много в общем вопросов.

Внимание вопрос.

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

А если их приватный блокчейн приватный и его нельзя было смотреть в процессе - можно ли проверить что приватный генерировался во время голосования, а не, например, после него на основании публичного с произвольно расставленными group_id?

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

Там вроде был доступ наблюдателей, возможно они сохранили хэши последних блоков (вроде доступ был закрыт уже после окончания голосования)

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

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

Это как если бы на бумажном голосовании наблюдателей посадили около одной урны, а бюллетени бы считали из другой.

Судя по графику, что выложили на эхо по 198 округу (https://echo.msk.ru/blog/echomsk/2908338-echo/), и графику, который демонстрировала Брюханова в своем видео, данные в закрытом блокчейне отличаются от публичного. По крайней мере динамика голосования за Брюханову разная. За Хованскую вроде как похоже внешне (я цифры не сравнивал). На мой взгляд ДЭГ должны объяснить это расхождение. Особенно если и на остальных участках будет подобная ситуация. Они вроде как обещали выложить по всем участкам графики на основе закрытого блокчейна.

UDP: ссылка на график по публичному блокчейну от команда Брюхановой https://www.facebook.com/photo/?fbid=10224328914184863&set=pcb.10224328921105036

Вы график процентного отношения у команды Брюхановой с абсолютными цифрами на графике эха не путаете?

В принципе достаточно чтобы айди, к которому будет привязан голос не был привязан к вам лично. Информация о том что e83ye83h8dh38hdw8ha9s0j30w2qa0h8 переголосовал ничего не нарушает тайну голосования до того как этот айди не привязан к конкретному человеку.

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

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

в выходные же мало кто работает

Судя по первой вашей статье, вы последние 8 лет зря не теряли :) Обрели не только хорошие навыки программиста.

Спасибо за работу, вдохновляет!

Какой смысл обсуждать блокчейн, если я не могу быть уверен, что подгруженный JS код с сервера госуслуг просто не поменяет местами метки возле чекбоксов?

Идея голосования через госуслуги/mos.ru порочна by design. Клиентская часть должна быть представлена в виде открытого протокола. Тогда любая политическая сила сможет предложить избирателям софт, которому они доверяют. Транзакции должны быть полностью публичны, в реальном времени.

Пока эти базовые принципы не выполнены -- копать глубже нет смысла.

UFO just landed and posted this here

Если политическим партиям позволить, то они бы вообще сделали свои клиенты, где есть только одна кнопка «Проголосовать» — выбор за кого вы уже сделали, скачивая клиент.

UFO just landed and posted this here
Угу. Или будет 100 клиентов «Проголосовать за Бориса Вишневского» с одинаковым названием и минимально отличающимися иконками.

Это фундаментальный вопрос электронного голосования.


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


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


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


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

UFO just landed and posted this here
Нужно просто опенсурсный клиент, типа как у условного битка. Хочешь собери из исходников сам, хочешь скачай уже готовый с репозитория.

А что мешало системе в конце 3го дня накидать в этот блокчейн транзакций с нужными переголосованиями? Ну или докидывать их равномерно на протяжении всего голосования?

Это одна из версий. Пока что ей нет ни подтверждения, ни опровержения.

чисто статистически опровергнуть эту версию уже очень трудно.

Вот, смотрите, что написано на сайте mos.ru в разделе "Ответы на вопросы":


Откуда я знаю, что вы посчитали все голоса, которые поступали онлайн?

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

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


То есть, на сайте mos.ru написана ложь. Блокчейн, в котором считали голоса, был приватный, и подключиться к нему было нельзя.


Еще, кстати, непонятно, почему на федеральных выборах и в Москве использовались разные блокчейны — Москва это что, отдельное государство со своими правилами? Хотя в Москве хотя бы выложили публичный блокчейн, а федеральный на https://stat.vybory.gov.ru вообще не выложен.


P.S. Я заметил, что тут вставляют ссылки на видео об обнаруженных аномалиях голосования (% голосования за ЕР растет и падает по одному графику). Не надо вставлять видео, никто не будет его смотреть, надо вставлять ссылку на текстовый пост: https://www.facebook.com/maxim.gongalsky/posts/10224328921105036

UFO just landed and posted this here
Работа гигантская сделана, спасибо за объяснения.

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

А нельзя ли сделать голосование по принципу типовой криптовалюты. Выпускаются монетки по количеству избирателей. Каждому выдаётся монетка. После чего, в день голосования избиратели дружно отправляют монетки на адрес нужного кандидата. Все очень наглядно и прозрачно. Функцией переголосования придется пожертвовать.

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

Monero же. С помощью приватного ключа ты видишь свою трансакцию и больше никто.

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

Это все потому, что полная неразбериха со списками избирателей. Если была бы единая база, а не какие-то простыни списков, то проблемы бы не было. Монетки изначально выпущены всем. Если человек приходит "ножками", то его монетка гасится. Со временем, большинство будет голосовать онлайн.
Кстати, сейчас же как то проверяют, что человек зарегистрировался на ДЭГ, если он придет на избирательный участок?

банк россии выпускает номерные банкноты, всем раздает, а потом каждый ими голосует, ну или продает за бутылку

Ну или бутылку раздавать. А голосовать уже пустыми бутылками. Тогда никто свой голос продавать не будет.

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

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

Нам бы хотя бы до двухпартийности дойти, не понравилось через 4 года (а не 5-6 лет) других.

Да, и это большое противоречие и проблема любого голосования. Если оно технически обезличено, то ничто не мешает вбросить таких обезличенных бюллетеней. А если с потерей тайны голоса, то появляется возможность административного давления. Впрочем, на данном этапе ничто не мешает государству и при не тайном (где можно отследить путь каждого голоса) добавить 15% несуществующих профилей, что в спорных случаях перевернет результаты выборов. Как проверить-то? Тут нужно доверие к органам власти.


Регулярная сменяемость власти как раз призвана в том числе повышать доверие к властям. Поэтому она должна быть закреплена законодательно. И чтобы нельзя было себе увеличить срок с 4 до 7 лет, общее их число или вообще отменить/обнулиться. Причем это задача общества стойко требовать соблюдения такого правила. А для этого нужно понимать почему это важно, то есть нужно образование и грамотность населения.

Регулярная сменяемость власти как раз призвана в том числе повышать доверие к властям.

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

Наблюдатели вам никак не помогут если в комиссии решать что-нибудь нахимичить или тем более уровнем выше. Поэтому тут требуется доверие к членам УИК, ТИК и ЦИК, который заведует ГАС Выборы. А для этого все они должны быть независимы от властей.
Как добиться того, чтобы каждому дали только по одной монетке?
Как добиться того, чтобы нельзя было сопоставить id монетки c id проголосовавшего?
Как добиться того, чтобы не было мёртвых душ, которым дадут по монетке и ими проголосуют как надо?
Как минимум эти вещи не решает ваша идея.

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

Кто выдает "монетки"? Государство. Что мешает государству выдать "монетку" боту-автоголосователю? Ничего. Более того, с теми базами, что есть у государства, легко сделать так, что ведомство "выдающее монетки" ничего и подозревать не будет о том, что она выдана боту, а не реальному человеку.

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

В условиях недоверия государству нет вообще никаких способов обеспечить честность и прозрачность выборов, кроме народной воли выйти на улицы и заявить об этом. Ну, то есть, окей сделали мы даже не блокчекйн, а вот прямо прямо явную открытую табличку в которой есть вообще все данные: место, время, ФИО, голос. А дальше-то что? Кто будет сверять эти данные с реальностью? У нас ведь явка 40%. Добавить 10% ботов сверху и любой (реалистично) нужный результат в кармане.

Эти монетки тут же монетизируют всякие алкоголезависимые личности.

Это и будет их политической позицией

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

Автор имел в виду, что процент вырос после пересчета с учетом переголосовавших (данные ГАС).
Я взял его документ, формулой выделил цветом тех кандидатов, у которых в неочищенной выборке (данные блокчейна) процент ниже — ими оказались исключительно провластные кандидаты. У всех остальных кандидатов после пересчета процент падает. Удивительное совпадение.

Вы видимо невнимательно читали - как раз дело в том, что % за "административных" кандидатов выше в очищенной выборке (в которой учтен только последний поданный вариант) чем в неочищенной, где просто суммируются все поданные голоса. Как если был за них голосовали именно на "переголосованиях" вместо какого-то другого кандидата за которого изначально подавался голос.

Поэтому и смутил - что результат противоположный ожидавшемуся (исходя из заявленных целей введения такой возможности).

Или другими словами расчетный показатель "размер голосования "под давлением" получается отрицательным. Что можно интерпретировать по разному. Например фантастически: административное давление было, но оказывалось оно за условно оппозиционных кандидатов. Или более реалистично: оно оказывалось за "административных кандидатов", но в момент повторного голосования. Это правда если количество "переголосований" ограничено - тогда (зная что это возможно) вполне могли требовать - голосуйте 1й раз сами как хотите, а потом уже "под контролем" покажете как переголосуете за кого надо. Как мера нейтрализации такой вот "защиты от давления" (благо то, что она есть и голос можно поменять всем известно заранее). Ну или еще варианты - "повторно" голосовали уже боты, "переписывая" голоса людей на нужные. И еще несколько возможных вариантов. Кроме базового сценария, который приводился в обоснование необходимости введения этой функции и, который в результате не подтвердился.

Какая разница как работает электронное голосование? Выборы в РФ имитационные, то есть в результате озвучат любой результат, который им будет нужен, как в Беларуси.

Всё куда интереснее. Благодаря ДЭГ мы теперь можем с большой точностью узнать результаты голосования без серьёзного влияния фальсификаций (оффлайн)

Ну нагнали бюджетников, вбросили билютейней, что-то подправили, вы узнали цифры голосования за кандидатов, где оппозиции участие запретили. Что дальше?

Огромное уважение автору за вложение времени в контроль за использованием технологий в столь хрупком процессе легитимаци через выборы.

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

Но моя гипотеза об атаке на электронного голосование состоит в том, что атакующие как раз переголосвали в пользу административных кандидатов. А именно, использовалось два механизма:
1. Фейковые аккаунты несуществующих людей + спящие аккаунты подконтрольных реальных людей для голосования.
2. Переголосование от имени реальных людей, которые изначально голосовали за оппозицию. Блокчейн покажет гражданину, что его голос был учтён (изначальный), но не покажет, что после от его имени было осуществлено переголосование, т.к. никакой публичной связи между двумя голосами нет.

В этом случае всё расхождение между данными ГАС ВЫБОРЫ и числом выданных бюллетеней следует считать нижней границей вбросов на электронных выборах.

Про мертвые души я в первую очередь подумал. Потому решил проверить.


На каждом участке был реестр исключённых из списка избирателей в связи с ДЭГ, и весь день до голосования один из ПРГ занимался вычеркиванием из книг («спасибо» тому, кто придумал сортировать реестр исключённых по ФИО, притом что книги отсортированы по адресу). Размер этого реестра опубликован по каждому участку на сайте ГАС Выборы (УИК — Стандартные отчеты — Информация о числе избирателей, включенных в Реестр избирателей, подлежащих исключению из списка избирателей — в связи с подачей заявлений для участия в дистанционном электронном голосовании). При этом на каждый ОИК приходится один электронный участок с номером 5ххх, и первый пункт протокола электронного участка должен более-менее совпадать с суммой размеров реестров исключённых по каждому УИКу округа.


Я выборочно сравнил, верны ли по нашему округу указанные на этих страницах числа (опросом ПРГ/ПСГ) (ну и свои данные тоже сравнил) — все сошлось. Потом распарсил эти страницы по всем УИКам округа (спасибо ЦИК за капчу, пришлось запастись пачкой проксей; ну хотя бы обфускации на этих страницах не было), просуммировал и сравнил. К моему удивлению, расхождение было небольшим и в другую сторону.


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

UFO just landed and posted this here

Могли, и это одна из базовых гипотез (я, наверное, плохо сформулировал, но в последнем абзаце в том числе об этом и пишу).


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

Оказалось, что были. Но раз циферки совпадают, — вывод простой, мертвые души были и в списках избирателей на участках!


Видимо, их приписывали в квартиры тем, кто всей семьей записался на ДЭГ — это ведь совершенно логично: вот придете вы на участок, начнете ставить подпись в книге — и увидите, что в соседней строчке в вашей квартире проживает Иван Петрович Сидоров, голосующий электронно, и устроите скандал. А если вы записались на ДЭГ, то не придете и не увидите.


И вот как я это как наблюдатель должен проверить? Откуда мне знать, кто в каких квартирах проживает? :/

UFO just landed and posted this here

Да, тем, кто открепился на другой участок, тоже могли "соседей вселить".

UFO just landed and posted this here

А. Так я вообще не про это, вы описываете обычную "карусель" (я про нее ничего не утверждал, конечно, такое могло иметь место), а я говорю про мертвых душ, которые нужны только для того, чтобы от их имени проголосовать электронно.


В списках на участках они нужны для того, чтобы суммарное по всем участкам округа количество вычеркнутых в связи с ДЭГ совпало с количеством зарегистрированных на электронном голосовании. И это вообще первое, что я проверил. Потому и утверждал (ошибочно), что мертвых душ вроде как не должно быть. А они есть, потому что их, блин, внаглую прямо в книги вписали. Вот так они меня и обманули (ненадолго, правда).


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

Я был на этих выборах ПСГ от одномандатника Парфёнова из КПРФ и присутствовал на офлайновом участке у себя на районе в субботу (18 сентября 2021) и воскресенье (19).

Видел своими глазами вычеркнутых из списков (с формулировкой типа "принял участие в ДЭГ").

И слышал очень много жалоб о том, что онлайн не работал - оба дня, в разное время суток.

Так что вполне допускаю ещё и такой вариант что голосование выключили и "проголосвали" сами.

Плюс ещё момент с невозможностью проверки/пересчёта комиссиями под наблюдением наблюдателей.

Это прямое нарушение основных законов. Памфилова вообще на все вопросы отвечала, что не знает и не понимает (т.е. не может ни проверить, ни пересчитать, ни доказать ничего), но уверена, что "Лаборатория Касперского - хорошие ребята" В то время как эта лаборатория - иностранная (крупнейший офис в США, юрисдикция Британская или БВИ) компания, от которой в РФ только АО с уставным капиталом в 100 тыс. руб.

Конечно результаты недостоверны и всё ДЭГ представляет из себя фальсификацию. Результаты ДЭГ конечно должны быть аннулированы, несмотря на возможность "очистки" от вбросов и откровенно недостоверных голосов.

В расшифровке пропущен пункт "отказ избирателЮ В онлайн-голосованиИ". К примеру, мной заявлено участие в ДЭГ 31 августа, а отказ получен 16 сентября в 23-20 с формулировкой: " По Вашему заявлению на Портале государственных и муниципальных услуг (функций) города Москвы произошли изменения 16.09.2021 в 21:14:43.

Номер заявления: 0001-9000003-087901-1070188/21.

Новый статус заявления: Отказ в предоставлении услуги"

После обращения к организаторам в чем причина отказа получен маловразумительный ответ:

"В соответствии с Порядком дистанционного электронного голосования на выборах, назначенных на 19 сентября 2021 года от 20 июля 2021 г. № 26/225-8, данные заявления на участие должны быть сопоставлены с различными реестрами ведомственных информационных систем, которые участвуют в проверке данных заявителя и организации процесса голосования.

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

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

Вопросы, которые касаются корректировки данных пользователей в личных кабинетах на портале Московских государственных услуг mos.ru не входят в компетенцию службы технической поддержки дистанционного электронного голосования.".

Вот это вообще мило с их стороны, тех поддержка ДЭГ организована порталом mos.ru и обращаться за проверкой данных в неведомых мне "ведомственных информационных системах" предлагается в службу технической поддержки портала Московских государственных услуг mos.ru: https://www.mos.ru/feedback/support/ или обратиться по телефону: 8 (495) 539-55-55.

Что не так в ДЭГ? Человеческий фактор не такой уж человечный. За явные технические косяки отвечать должен кто-то из ДИТ, но они вот со всех сторон огородились отписками.

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

Более того, процент упал в основном у кандидатов УмГ, у остальных более-менее совпадает с бумажным голосованием.

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

И так само получилось, что по протестным голосам за, скажем, ЛДПР или СР процент в ЭГ и бумажном примерно совпадает, а за КПРФ почему-то по ЭГ существенно ниже?


Если бы такое смещение было только по одномандатникам, ещё можно было бы допустить. А так — Не верю.

Кроме протестных, у ЛДПР есть и свои избиратели, как и у КПРФ, которые про УГ и «плохое ДЭГ» ничего не слышали. В то же время УГ чаще рекомендовало кандидатов КПРФ, чем других партий. Какие-то партии больше агитировали пользоваться ДЭГ, какие-то меньше.
В общем я хочу сказать, что расхождение оффлайн и онлайн голосования (если оно есть) не считаю прямым доказательством чего-либо.

Кандидатов — да, а по партиям УмГ советовало голосовать за любую парламентскую партию, кроме Едра.


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

Да, это понятно. Результаты голосования должны подсчитываться исключительно на публичных данных. Вроде как изначально так и задумывалось, но потом добавили «переголосование» с приватным блокчейном, и это сломало всю безопасность. Я уверен, что этот приватный блокчейн не будет обнародован, потому что тогда вскроется, кто голосовал повторно, и за какого кандидата.
Кроме того, есть все основания полагать, что «переголосование» нарушает тайну голосования, а значит, противоречит Конституции.
UFO just landed and posted this here
Гипотетически, систему без переголосований можно реализовать так, что выдача электронного бюллетеня не логируется, а значит, его нельзя сопоставить с избирателем. Это можно посмотреть только в коде. ФСБ проверит код, выдаст сертификат, и мы не можем ничего возразить.
Необходимость учета переголосований вынуждает хранить связь бюллетеня с избирателем, без этого никак не определить голоса одного человека. Т.е. тайна голосования гарантированно нарушается, мы можем это утверждать даже без анализа кода. Причем нарушается она не в тот момент, когда обнародованы какие-либо приватные данные — а в тот, когда данные о связи бюллетеня с избирателем вообще были сохранены.
UFO just landed and posted this here
Более того, процент упал в основном у кандидатов УмГ, у остальных более-менее совпадает с бумажным голосованием.

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

Интересно, а на форме голосования была яндекс.метрика?

Большое спасибо автору, я сам прошел похожий путь анализа за эти дни, поэтому интересно было почитать. Есть несколько дополнительных мыслей:

  1. Почему везде пишут про явку на электронном голосовании в 96%, считая все голоса и не учитывая переголосования. Везде говорят про 290К переголосовавших, с учетом них явка равна 1943К - 290К / 2021K ≈ 81%.

  2. В блокчейне среди транзакций о получении бюллетеней все voter_id уникальны, за исключением случаев, когда произошла ошибка. Уникальных voter_id 1943K (см. картинку). Это значит, что столько уникальных пользователей получило бюллетени и нет ни одного повторения. При учете, что все переголосования хранятся в том же блокчейне, как это может быть возможно? Причем все voter_id из списка голосующих в транзакции начала голосования, это значит, что переголосующим каким-то образом выдавались уникальные voter_id других избирателей.

  3. Автор пишет: "При этом отмечу, что внутри транзакции “Приём бюллетеня” лежит только сам голос, привязки к тому voter_id, который получил этот бюллетень, нет. Таким образом сохраняется тайна голосования. Непонятно, как проголосовал (по крайней мере по публичным данным) каждый из voter_id."

    Это не совсем так, какой-то внутренний алгоритм объединения выдачи бюллетеня и расшифровки все-таки есть, это можно увидеть при поиске транзакций по хэшу на observer.mos.ru, где одновременно находятся транзакции выдачи и расшифровки бюллетеня и в одной можно посмотреть voter_id, а в другой decrypted_choice (см. картинку).

  4. Еще удивляет, что перед публикацией данных переголосования техническая команда говорит, что ей нужно обеспечить анонимность данных избирателей и произвести для этого какие-то дополнительные действия. А это значит, что для них эти данные не анонимны, что нарушает избирательное законодательство.

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

Тем временем, нашел еще одну странность, в блокчейне, который сейчас выложен на observer.mos.ru расшифровано 1.3 миллиона транзакций, как я понимаю оставшиеся это как раз, кто переголосовывал, так как изначально штаб называл эту цифру. Если разбить нерасшифрованные (начальный голос + переголосование разнесенные во времени) транзакции по часам, то появляется интересная картина, во 19 из 50 часов голосований количество голосов кратно тысячи(!!!). Это можно было бы объяснить особенностями процесса расшифрования, который нам неизвестен, а без этих деталей очень похоже на автоматические подачи/изменения голосов.

select date_trunc('hour', trans.datetime), count(*) from transactions trans left join decrypted_ballots ballot on trans.hash = ballot.store_tx_hash where trans.method_id=6 and ballot.decrypt_tx_hash is null and trans.status#>>'{type}' = 'success' group by date_trunc('hour', trans.datetime);

По последнему комментарию отбой. Похоже, что количество транзакций кратно блоку в 2000 записей, когда разбил поминутно, это стало более заметно. Тут просто удачно умещаются блоки в час, поэтому их количество кратно 2К.

UFO just landed and posted this here

А так-то получится, что и КОИБ может где-т описать время, когда считывает голос, а видеонаблюдение может быть подключено к системе распознавания людей и деанонимизирует меня…

КОИБов бывает больше одного, но в целом в непиковые часы должно весьма точно получаться

UFO just landed and posted this here

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

Можно было взять за пример реальный блокчейн с подтвержденной анонимностью типа Monero, допилить до транзакций с целыми у.е., убрать комиссии и оставить только предгенерацию валюты - выдать всем по 1 у.е. чтобы каждый мог отправить на публичный "кошелек" кандидатов (и только на них) свой 1 голос, и ещё что-нибудь придумать. Но нет.

UFO just landed and posted this here

Да, про клиентов для ДЭГ забыл упомянуть:

  1. Закрытое приложение для Android

  2. Закрытое приложение для iOS

  3. Яндекс браузер с какими то классными расширениями.

Каждый из них может деанонить вас и ваш голос в реальном времени)

В итоге получили систему, которая:

  1. Знает за кого вы проголосовали

  2. Никто не может проверить, за кого отдан ваш голос (даже вы)

  3. Ваш голос может быть передан другому кандидату, и никто не сможет это проверить (даже вы)

  4. Все результаты могут быть заменены на другие при необходимости.

UFO just landed and posted this here

Однозначно плюс в карму!
Вы делаете хорошее дело

деревня где скучал евгений
была прекрасный уголок
и ни блокчейн был не помехой

ни лог

Штаб Брюхановой опередил меня немного https://www.youtube.com/watch?v=SFogBbUGLk4&t=17s&ab_channel=%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%9A%D0%B0%D1%86 , но я сегодня тоже заметил эту аномалию. Я упорядочил всех голосующих из списка избирателей (транзакции method_id = 1) и разбил на 1000, а потом смотрел сколько человек из каждой тысячи голосовали в каждый слот из 10 минут. Если количество голосующих почти во всех тысячах колеблется вокруг среднего значения, то ближе к концу обнаруживается явный провал, причем практически в каждом 10-ти минутном слоте. Вот лишь несколько примеров:

Надеюсь, у специалистов ДИТ есть этому какое-то объяснение.

Не думаю, что у них есть желание отвечать на вопросы публики.

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

 Я почитал и посмотрел рассуждения по поводу голосования и заметил некую занятную особенность в обсуждении. Коллеги очень сильно уперлись в блокчейн и его расшифровку к моему сожалению этот путь в никуда так как он вряд ли объясняет как происходили сами вбросы показанные на многочисленных графиках. Из моего древнего опыта работы с очень уважаемым агенством США Федеральный Резерв как человека любопытного всегда интересовал вопрос, "а как можно и так чтоб нам за это ничего не было?!" (с)

Так вот десять лет назад назрел вопрос как подсоединить приложение нашего стартапа к SSO Federal Reserve System (FRS). На тот момент мы использовали Federated ID OpenAM.

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

После чего создать нового юзера на Federated ID это не вопрос либо скриптом от Иванов0000001 до Иванов1000000 либо руками, что тоже в общем не обременительно. К примеру тот же OpenAM это позволяет легко сделать и более того это отобразится исключительно в логах только OpenAM если там кластер, то даже просто после работы сервер можно убить и логи на нем почистить.

Судя по динамики вбросов и обеда там дальше уже сидели люди и вводили руками голосование.

В пользу такого метода говорит еще то, что невозможно проверить кто голосовал ака анонимность голосования по ДЭГ.

Понятно это исключительно мое предположение, но тем не менее версия вполне рабочая.

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

С шулером играть по его правилам на его территории - бессмысленное занятие.

Не то чтобы совсем бессмысленное. Правила и приёмы игру у шулеров тоже есть. и изучение их тоже бывает полезно. В суде...

Личная соль

Добавление собственных символов (личной соли) даёт возможность контролировать правильность голосования своего бюллетеня без раскрытия его полного идентификатора третьей стороне. Простой рецепт для публичной базы. Приватная база в которой бюллетени без личной соли - только под присмотр наблюдателей, без всяких отключений и отзывов сертификатов. Блокчейн нахрен не нужен - просто копирование базы каждые 15 минут произвольными наблюдателями в которой содержится контрольная сумма (хеш) базы приватной - чтобы её не пробовали изменить (подогнать под хеш трудновато). блокчейн - это просто вариант СУБД, не более. и для данного применения он и не нужен. можно обойтись традиционными инструментами.

Более того, можно предусмотреть возможность переголосования только после подтверждения своей Прошлой личной соли (это против переголосования за уже проголосовавших людей "хакерами" от "работодателя").

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

Да, и это будет доступно либо в открытой базе но только самому голосующему, или в приватной базе, но наблюдателям (в бумажном голосовании они и так видят списки избирателей)

Проблему с вбросом "ботами" не решает никакая криптография. Как тут верно уже говорили — без явки 100% этот вопрос техническими средствами не решается.

Ну так это внешний так сказать фактор. Как и то, что можно голосовать без смс подтверждения. Это тоже обеспечивается внешними к СУБД условиями. Я лишь описал то, как можно в СУБД организовать контроль со стороны избирателей своих собственных бюллетеней. И Со стороны наблюдателей приватной базы, где информация по бюллетеням и их голосованию более открыта так сказать, без соли.
То, что СУБД можно организовать на блокчейне это уже другой вопрос. Пусть будет на блокчейне. Тогда Хеш приватной базы можно будет сохранять в публичной и тем самым "контролировать" неизменность данных в приватной базе. Но от вбросов и левых переголосований это не защитит. Это чисто защита ядра так сказать, остальное обвязка технологически-организационная. И это большая проблема и есть.
Просто Венедиктов говорил - дайте быстрый механизм подсчёта голосов с учётом переголосований - вот его я и предложил. Использовать личную соль для публичной базы и приватную базу без соли. Так чтобы данные из приватной базы были доступны сразу после голосования, Но под надзором наблюдателей. Наблюдатели могут проконтролировать правильность подсчёта голосов и сверить хеши приватной базы с сохранёнными хешами в публичной базе.

Ох, если исходить из того, что говорит Венедиктов...


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


Что-то мне подсказывает, что причина задержки не только в подсчете переголосований :)

Не очень есть время читать все комменты, но до определенного момента не видел такого предположения. Простите, если дубликат.
Вот разбиение по метод айди:

#  method_id |  count
# -----------+---------
#          0 |       1
#          1 |   20148
#          2 |       2
#          4 | 2187955
#          5 | 2116885
#          6 | 2116884
#          7 |       9
#          8 |       1
#          9 | 1775947

Если гросс "прием бюллетеня" - "расшифровка" = 340937. О 300к тысячах переголосований говорил ААВ. Возможно, ненужные голоса сразу выбрасывались. Правда, там звучали еще 600к... но поскольку за неделю технических комментариев от авторов не поступало, гадаем на кофейной гуще.

Почему то на хабре ДЭГ с энтузиазмом обсуждается, а децентрализованный веб, например SoLiD - ровно наоборот - пессимизм зашкаливает. Хотя в первом случае сделать пока ничего нельзя на инженерном уровне (не дадут), а во втором - можно, хотя бы для себя и отдельных сообществ, там, кстати, и выборные механики уже можно обкатывать.

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

Но устоять против тренда на децентрализацию в долгосрочной перспективе они вряд ли смогут

А этот тренд существует? Лично я его не вижу, как-то бодренько мир движется в сторону WeChat

А у этого переголосования есть привязка ко времени. А то по словам экспертов всего один голос в итоге в корзине. А время этого голоса остаётся по первому поступившему в корзину или как? Потому что если это так, то равномерный вброс очевиден, что мы и наблюдаем. А если через 3 часа последующие переголосования регистрируются, то кто тогда первые вычитает.

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

Articles