Комментарии 119
В статье разбирается, как задачи дистанционного электронного голосования решаются при помощи криптографических методов.
![](https://habrastorage.org/getpro/habr/upload_files/790/804/b96/790804b964edbb8721aca2a31abc9f88.jpg)
Надеюсь, Вы публикуя этот мем понимали, что данный конкретный косяк - это ошибка программиста который писал визуализацию ...
Вы совершенно правы, но это фото можно отнести и к этой системе т.к. на бэке может быть все вполне честно, а на фронте вам выведут именно такое и вы никак не сможете проверить достоверность этих данных.
Это не совсем так. В том числе для защиты от подобного рода махинаций в системе как раз и используются криптографические методы.
Вау, криптографические методы - это все конечно же меняет, обман невозможен, ага
Зависит от того, какую именно модель обманщика вы рассматриваете. Объяснению, каким образом криптография противостоит некоторым видам обмана в системе, как раз и посвящена статья.
Я в 1-м комментарии доступно написал принцип, ну и если вы любите писать а читать нет - повторю тезисно: на бэке считаем одно, на фронте выводим другое. И тогда вопрос: как мне проверить, что все голоса учтены верно?
Я ответил вам, что ответу на ваш вопрос как раз и посвящена статья. Давайте дам чуть более развёрнутый комментарий.
Первый момент: ошибочно представление, о системе в духе того, что бюллетени лежат в бд на бэке, а фронт просто отображает результат. Одно из требований к криптографическим системам голосования - это возможность проверить результат.
Подсчёт результата состоит из:
Сложения бюллетеней (в зашифрованном виде)
Расшифрования полученного результата и генерации криптографического доказательства корректности
Если какой-то бюллетень не будет учтён при подсчёте или результат подсчёта (в зашифрованном виде) будет один, а покажут другой, то при проверке у наблюдателя не сойдётся криптографическое доказательство корректности.
Первый момент: ошибочно представление, о системе в духе того, что бюллетени лежат в бд на бэке
Про БД вы сами выдумали и опровергли, замечательно - я такого не писал. Бэк/фронт это концептуальные понятия (я это объясняю на хабре омг).
Ладно, задам тогда конкретные вопросы:
Что мешает ввести в систему пару милионов Ивановых Иван Иванычей проголосующих за правильного кандидата?
Как обеспечивается тайна голосования?
Как убедиться, что проголосовавший это именно тот человек а не кто либо другой обладающий его учетными данными?
Что мешает ввести в систему пару милионов Ивановых Иван Иванычей проголосующих за правильного кандидата?
Эта проблема любой схемы голосования, а не только ДЭГ. Более подробное обсуждение уже есть в другой ветке, не буду дублировать
Как обеспечивается тайна голосования?
Этому посвящены два раздела "Анонимность:" статьи
Как убедиться, что проголосовавший это именно тот человек а не кто либо другой обладающий его учетными данными?
Как я отметил в статье (раздел "Заключение") это недостаток системы. Как отметили в комментариях, он в целом характерен и для обычного голосования
Что мешает ввести в систему пару милионов Ивановых Иван Иванычей проголосующих за правильного кандидата?
Эта проблема любой схемы голосования
Поразительно конечно, вы на серьезных щщах несете такую ахинею. Нагенерировать избирателей програмно VS найти людей, сделать им паспорта, внести в бумажные списки избирателей и сделать это на множестве участков т.к. малость палево будет даже несколько тысяч "мертвых душ" приводить на участок.
Этому посвящены два раздела "Анонимность:" статьи
Ловко вы ушли от очевидного ответа - "никак"
Как я отметил в статье (раздел "Заключение") это недостаток системы.
Да, один из множества.
Как отметили в комментариях, он в целом характерен и для обычного голосования
Конечно, это ведь обычная практика - берешь чужой паспорт, приходишь на участок и голосуешь - никакого палева
Нагенерировать избирателей програмно VS найти людей...
В электронном варианте также нужно сгенерировать им паспорта, учётные записи и так далее. В любом случае, я уже отмечал, что такая атака имеет место быть, она решается не программными, а организационными мерами (как и в обычном голосовании).
Конечно, это ведь обычная практика - берешь чужой паспорт, приходишь на участок и голосуешь - никакого палева
Мы рассматриваем атакующего, который может подделывать избирателей, в том числе делать фальшивые паспорта.
Ловко вы ушли от очевидного ответа - "никак"
Это откровенная ложь. Поскольку вы уже несколько раз пишете про вещи, которые есть в статье, я больше не буду вам их разъяснять.
Да, один из множества.
Согласен, более того, некоторые я перечислил в статье
Эта проблема любой схемы голосования, а не только ДЭГ
В оффлайн- голосовании это решается наблюдателями на участках. Они могут сосчитать число людей (вживую или по видео) и сравнить с указанным в протоколе.
Как это решается в ДЭГ?
В оффлайн- голосовании это решается наблюдателями на участках
Если мы говорим об атакующем, который создаёт фейковых избирателей, но с настоящими документами и т. д. - то от этого наблюдатели никак не защитят. Пришёл человек, он есть в списках, у него нормальный паспорт. И как наблюдатель должен понять, что он голосует нелегитимно?
Они могут сосчитать число людей (вживую или по видео) и сравнить с указанным в протоколе.
В ДЭГ также заранее выкладывается список избирателей и можно сравнить количество бюллетеней с количеством в списках. В этом плане здесь полная аналогия с обычным голосованием.
Вот то, что в обычном голосовании наблюдатель может увидеть человека, в а электронном не понятно, кто именно голосует со смартфона - это да.
атакующем, который создаёт фейковых избирателей, но с настоящими документами и т. д
Число избирателей известно заранее, вы не родите ещё несколько миллионов специально для выборов. Оно тупо не будет биться с демографическими данными и данными по прошлым выборам. Вам придется возить их между участками, что сразу будет видно.
Вот то, что в обычном голосовании наблюдатель может увидеть человека, в а электронном не понятно, кто именно голосует со смартфона - это да
Ну так в этом и дыра. На участке наблюдатель видит каждого голосующего своими глазами. В ДЭГ это просто строка в списке.
вы не родите ещё несколько миллионов специально для выборов
Ну относительно этих выборов это не совсем так. Они будут проходить в том числе в местах, где реальное число избирателей подсчитать невозможно. Да и вообще, нормальной переписи давно не было, никто точно не знает, сколько в стране реально жителей.
Число избирателей известно заранее, вы не родите ещё несколько миллионов специально для выборов
Число избирателей в ДЭГ также заранее известно.
Ну так в этом и дыра. На участке наблюдатель видит каждого голосующего своими глазами. В ДЭГ это просто строка в списке
Вы не совсем поняли. "Дыра" в том, что вместо одного человека реально нажимать кнопки может другой. В ДЭГ (также как и в обычном голосовании) голосующий - это человек, внесённый в списки избирателей, по его документам и так далее.
В плане составления избирательных списков между ДЭГ и обычным голосованием очень близкая аналогия.
В ДЭГ нам даже не обязательно нажимать кнопки за каждого избирателя. Мы просто пишем в протокол нужную цифру, и всё. А сколько там граждан заходило на Госуслуги и с каких устройств - фиолетово.
В том-то и дело, что это не так. Представление о дэг в духе того, что это система, которая просто хранит голоса, что-то там внутри считает и выдаёт какой угодно непроверяемый результат в корне неверно (хотя очень распространено по незнанию).
Более подробно можно почитать в разделах "Учёт бюллетеней: квитанция, блокчейн", "Зашифрованные бюллетени"
При этом во вторую часть Избиратель заходит анонимно:
И вот на этом этапе все сыпется. Заходит десять миллионов анонимов и голосуют как надо. А поскольку они анонимы - наблюдатель никак не проверит, есть они в списках или нет.
А нагнать десять миллионов человек на физические участки - не то чтобы нереально, но это будет видно.
Вы неправильно понимаете смысл анонимности. Требование анонимности состоит в том, что невозможно связать избирателя и его бюллетень, а не в том, что голосовать может неизвестно кто. Это нужно для соблюдения тайны голосования.
В обычном голосовании это реализовано тем, что все бюллетени в урне одинаковые. Но при этом есть уязвимость: в теории можно снять отпечатки пальцев с бюллетеней. Поэтому избирателю, который не доверяет системе, нужно голосовать в перчатках. Вот в дэг "перчатки" реализованы на уровне дизайна.
Понимаете, протоколы электронных голосований разрабатываются несколько десятков лет, они не вчера появились. И подобные очевидные и элементарные уязвимости, про которые пишут большинство в комментариях, уже давно продуманы, от них есть меры защиты.
Во многом статья и написана, чтобы продемонстрировать, что обывательское представление о системах электронного голосования (которое процветает даже на хабре, где множество квалифицированных it-специалистов, что говорить о людях, далёких от it) давно не соответствуют действительности, а система намного интереснее и глубже, чем кажется.
Если мы не можем связать избирателя и бюллетень - значит, мы не можем проверить, соответствует ли вот этот бюллетень реальному избирателю или строке кода, которая сгенерировала миллион анонимов.
В реальном голосовании мы точно так же не можем связать избирателя и бюллетень, а значит не можем проверить, соответствует ли этот бюллетень избирателю или анониму. Это не ошибка, это сделано специально во всех системах голосования, чтобы сохранять тайну голосования. По этой причине вы ставите галочку в отдельной кабинке, а не на виду у избирательной комиссии.
В электронном голосовании, как и в обычном, регистрируется выдача бюллетеня избирателю. Ваше представление о том, что бюллетени могут быть сгенерированы в блокчейне "из ничего", и от этого нет никакой защиты, неверные. Механизмы защиты точно такие же, как от простого вброса бюллетеня в урну для голосования.
Если мы говорим об атакующем, который создаёт фейковых избирателей, но с настоящими документами и т. д
Настоящие документы или нет зависит же только от того, кто их проверяет. Доступ к ДЭГ получается на Госуслугах, там и проверяется, или "проверяется". Система закрыта, мы не знаем сколько там реально аккаунтов, и не можем проверить не получил ли ключ для голосования человек, которого на Госуслугах никогда не было, и который на выборы 30 лет не ходил, а тут внезапно проголосовал электронно.
Аналогичные вещи нельзя проверить и при обычном голосовании. Чтобы голосовать, избиратель должен быть в списках, которые составляются до начала голосования. Если он там есть, то хоть он 30 лет не ходил, хоть 40 - голосовать он может и наблюдатель не сможет ему помешать
Если он там есть, то хоть он 30 лет не ходил, хоть 40 - голосовать он может
Речь естественно ни в коем случае не о том, чтобы помешать, это уголовная статья вообще-то. Речь о том, что прийти и проголосовать кому-то другому за этого человека (а может быть за пятерых человек сразу) конечно можно, но сложнее, потому что это можно заметить например на камерах или просто увидеть. А тут голосует не человек, а аккаунт, человек может вообще не знать, что он оказывается голосовал, и что у него оказывается аккаунт на Госуслугах был.
Рассмотрим эту атаку: атакующий заводит аккаунт госуслуг вместо человека (или взламывает его аккаунт), затем вместо него голосует. Возможна ли такая атака в принципе - да, возможна и её нужно учитывать. Есть ли какие-то меры защиты? Вот те, которые мне известны:
списки избирателей формируются заранее и остаются в системе. Для внесения в список нужны документы
избиратель при голосовании подтверждает личность (смс и т. п.) следы этого остаются в системе
если избиратель голосует электронно, то он не может голосовать очно. Избиратель, для которого создали фейковый аккаунт, может, не зная этого, прийти на выборы, тогда всё вскроется
Достаточны ли они? на мой взгляд недостаточны. Вот вопрос как от этого надёжно защититься, не нарушая тайны голосования, интересный. Например, наблюдатели заранее допускаются к спискам и выборочно проверяют избирателей.
Речь о том, что прийти и проголосовать кому-то другому за этого человека
Правильной аналогией этой атаки для обычного голосования является вброс на участке: нечестные члены избирательной комиссии вбрасывают бюллетени с галочками за кого надо, а затем проставляют в списках, что это граждане голосовали. Защитой от этого является наблюдение личное и по камерам. В то же время известно, что такие атаки всё равно проходят, хотя бы потому что, к сожалению, везде наблюдателей не поставишь.
И как система защищается от мертвых душ? Что помешает ввести не существующих избирателей и проголосовать ими как надо?
Если атакующий имеет возможность сам создавать списки избирателей до голосования, и при этом избиратели неотличимы от настоящих (имеют необходимые номера документов, аккаунты и т.д.), от такого атакующего нет защиты ни в какой системе голосования, хоть в электронной, хоть в обычной бумажной, тут я вами полностью согласен.
В электронном голосовании задумана схема защиты, которая не позволяет вносить избирателей после составления списков (здесь полная аналогия с обычным голосованием). В статье эта схема не описана, если очень упрощённо, то перед голосованием публикуется список хэшей избирателей из списка
и при этом избиратели неотличимы от настоящих
в этом то и фундаментальный недостаток ДЭГ, несмотря на всю криптографию. Очень даже отличимы. При "бумажной" системе у нас есть физически перемещающиеся люди, а значит их можно считать, за ними на участках можно наблюдать, они попадают в видеокамеры рядом стоящих зданий и прочее.
В ДЭГ избиратели могут появляться именно что из воздуха и также бесследно в нем растворяться.
В ДЭГ нет промежуточных итогов, а значит отсутствует огромный объем наблюдаемой информации о распределении голосов в реальном времени - "бумажное" же голосование периодически выдает промежуточные результаты. А любые объемы наблюдений - это большой плюс в определении фальсификаций. Так что это тоже недостаток.
Добавим сюда опыт прошлого ДЭГ, когда кроме общественно наблюдаемого блокчейна, нам показали еще один блокчейн "под столом" с "правом переголосования" основного. И об этом втором я не припоминаю сведений о разделении ключей по комиссии. Такой вот тайный черный ящик, имеющий приоритет над всей системой.
Вот в итоге: ДЭГ прекрасен для фальсификаций.
В ДЭГ избиратели могут появляться именно что из воздуха и также бесследно в нем растворяться.
Определённая доля правды здесь есть, но в целом это не так, поясню. После ДЭГ остаются хешированные номера документов избирателей. Поэтому они не исчезают бесследно. Но я не нашёл чёткого описания процедуры, которая сверяет эти значения после голосования, нашёл лишь упоминание, что это входит в аудит
их можно считать, за ними на участках можно наблюдать, они попадают в видеокамеры рядом стоящих зданий и прочее
Это даёт защиту ничуть не лучше. Отследить по камерам и сопоставить, что один и тот же человек голосовал на различных участках (которые могут быть в разных городах\областях) на практике невозможно
Добавим сюда опыт прошлого ДЭГ, когда кроме общественно наблюдаемого блокчейна, нам показали еще один блокчейн "под столом"
Насколько мне известно, эти претензии справедливы, но относятся к другой системе
Это даёт защиту ничуть не лучше.
А я считаю, что намного лучше.
Потому что организовать сколь нибудь массовую "карусель" просто банально дороже (а от не-массовых и толку не очень много). Еще можно попасть при этом на камеры и стать "героем интернета" - слабоватое, конечно, утешение - но все равно хоть какой-то "штраф" нарушителю.
По сравнению с ДЭГ, где "штраф" и затраты просто ноль.
Я сказал бы так:
если вброс организован злоумышленником, который контролирует всю систему, то он и в электронном и в обычном голосовании может наделать избирателей. Затрудняюсь сказать, где издержки выше, может и в обычном, потому что документы нужно печатать и т. д.
если вброс организован злоумышленником ниже уровня, например, на конкретном участке, то ему осуществить вброс сложнее, потому что он не имеет доступа к электронной системе
Зато много красивых слов "блокчейн", "электронная подпись", "невозможно подделать" создают иллюзию надежности и невозможности фальсификаций...
Понимаю, что тема подобных систем во многом политизирована. Мне как раз очень не хотелось бы уводить комментарии в обсуждение политики.
Для меня система ДЭГ представляет интерес именно как система. То есть какими способами в ней решаются проблемы, характерные для подобного рода систем. И должен признать, есть очень интересные, на мой взгляд, решения.
"Я знаю, что тема газовых камер очень политизирована. Но для меня интерес представляет гидродинамика циклона-Б в замкнутых объемах. И должен признать, есть очень интересные, на мой взгляд, решения.". Извините.
А в чём состоит ваш аргумент? Вы просто произвольно сопоставили систему электронного голосования с газовой камерой, сделав негативную окраску. Так что угодно можно сопоставить.
В статье я описываю как устроена система, её достоинства и недостатки. Никоим образом не призываю никого пользоваться системой или отказываться от неё, это личное дело каждого. Устройство системы мне интересно, возможно оно будет интересно кому-то ещё. Например, по моему мнению, наблюдение за системой будет эффективнее, если наблюдатели будут понимать, как она устроена.
В России большие вопросы к институту выборов. И к честности подсчёта голосов в частности. Это фундаментальная проблема. Без решения которой нельзя говорить о том, что "Россия есть демократическое федеративное правовое государство" (статья 1 Конституции РФ). Из-за которой результаты нынешних выборов могут быть не признаны мировым сообществом.
Вы пришли с рассказом о технических деталях работы ДЭГ. Системы, в которую на фундаментальном уровне заложены уязвимости, позволяющие сильно удешевить процесс фальсификации, понизить риски обнаружения фальсификаций. Об этих уязвимостях вам рассказали в комментариях выше и ниже. Эти уязвимости, судя по всему, уже использовались на предыдущих выборах.
Безопасность всей системы определяется уровнем безопасности наиболее уязвимой части системы. Что делает ваш вклад в криптографическую часть в лучшем случае бесполезным. А в худшем — сделает вас соучастником возможных фальсификаций.
Системы, в которую на фундаментальном уровне заложены уязвимости, позволяющие сильно удешевить процесс фальсификации,
Вот это утверждение требует обоснования и представляет интерес для обсуждения. ДЭГ далеко не идеальна, сам отмечаю минусы в статье. Но и обычное голосование далеко не идеально.
Так или иначе, электронные технологии активно входят в нашу жизнь и голосование не будет исключением. Поэтому, на мой взгляд, интересно объективно оценивать и обсуждать достоинства и недостатки обеих систем, а не просто говорить, что "ДЭГ хуже, потому что я слышал, что там жульничают". Такая позиция имеет место быть, но она не продуктивна и лично мне не интересна, за других сказать не могу.
Эти уязвимости, судя по всему, уже использовались на предыдущих выборах
Многие упоминают недостатки проведения электронных голосований в прошлые разы. Насколько мне известно, эти замечания справедливы. Но относятся к другой системе голосования. Если результат электронного голосования нельзя независимо проверить, то это фикция, я согласен. В описанной системе механизм проверки заложен, а как уже это будет реально работать - увидим на практике.
Вот это утверждение требует обоснования
Мне кажется тут в обсуждениях уже больше одной уязвимости нашли. Главная уязвимость это авторизация через Госуслуги — полностью закрытую систему подконтрольную конкретному разработчику, и полностью неподконтрольную даже теоретически самой кристально чистой ЦИК. Второе -- полностью закрытые исходники, а следовательно полное отсутствие возможности проведения независимого аудита исходного кода. Обе уязвимости фундаментальные, для любой системы претендующей на прозрачность, в система голосования априори должна быть максимально прозрачной, даже урны для голосования делают прозрачными, а система ДЭГ — два черных ящика, думаю этот факт, это всё, что нужно знать, чтобы дать системе справедливую и обоснованную неудовлетворительную оценку, все остальные просто создает иллюзию защищенности и прозрачности.
Главная уязвимость это авторизация через Госуслуги — полностью закрытую систему подконтрольную конкретному разработчику, и полностью неподконтрольную даже теоретически самой кристально чистой ЦИК
Тут вопрос, а как это решать? Так или иначе нужно удостовериться, что голосует человек, которому это разрешено. В обычно системе проверяют паспорт (печать паспортов полностью закрыта и подконтрольна конкретному разработчику). В электронной системе - аккаунт госуслуг + подтверждение по смс.
Второе -- полностью закрытые исходники, а следовательно полное отсутствие возможности проведения независимого аудита исходного кода.
Не буду повторяться, я вам в другой ветке пояснил, что считаю идею открыть код правильной, но не согласен, что закрытый код означает полное отсутствие возможности проведения независимого аудита.
Тут вопрос, а как это решать?
Если речь о дистанционном голосовании, то на мой взгляд — никак, по крайней мере я не вижу рабочих и реалистичных решений.
В обычно системе проверяют паспорт (печать паспортов полностью закрыта и подконтрольна конкретному разработчику)
Паспорт и наличие в списках не только подтверждает право голосовать, но и (что на мой взгляд даже более важно) препятствует повторному голосованию, и при физической явке это более-менее работает — одному человеку, даже при наличии нескольких паспортов сложнее проголосовать за нескольких людей, особенно если на участках ведется видеонаблюдение. В некоторых странах так же дополнительно используют несмываемую краску, в которую каждый получающий бюллетень должен обмакнуть палец, тогда при наличии независимых наблюдателей и членов ЦИК ситуация с повторным голосованием исключается практически полностью. При дистанционном голосовании нет надежных механизмов, которые препятствовали бы ситуации, когда один человек голосует 50 раз под разными аккаунтами.
Не буду повторяться, я вам в другой ветке пояснил, что считаю идею
открыть код правильной, но не согласен, что закрытый код означает полное
отсутствие возможности проведения независимого аудита.
Вы конечно вольны иметь свое мнение, но все ваши аргументы основаны на упрощенных аналогиях, что на мой взгляд довольно слабо, я же все-таки привел конкретный пример, как вы определите насколько надежен ГПСЧ черного ящика, и что он использует в качестве источника энтропии? Может там в качестве сида используется просто, грубо говоря, текущая дата и все результаты его работы предсказуемы для разработчика системы? Да и вообще, для меня, как выпускника кафедры автоматики, утверждение о возможности проведения аудита системы с неизвестным количеством внутренних состояний, и находящейся в неизвестном вам начальном состоянии, методом черного ящика, интуитивно кажется требующим серьезного доказательства.
Вы конечно вольны иметь свое мнение, но все ваши аргументы основаны на упрощенных аналогиях, что на мой взгляд довольно слабо, я же все-таки привел конкретный пример, как вы определите насколько надежен ГПСЧ черного ящика
Я привожу упрощённые примеры, чтобы вам было понятен принцип и чтобы продемонстрировать, что такие системы возможны. Пример системы, которая не удовлетворяет этому требованию, никак не противоречит тому, что такие системы существуют (никто и не говорит того, что все системы такие).
Если вам действительно интересно, как это устроено математически, то описание есть по ссылке в разделе Материалы (предупреждаю, что читать будет сложно, для начала стоит хотя бы в текущую статью вникнуть)
1. Как стать наблюдателем ДЭГ?
В Москве вроде другая система?
Как стать наблюдателем ДЭГ?
Точной процедуры я не знаю, может в комментариях подскажут. Насколько понимаю, есть два уровня наблюдения:
общий - можно на сайте смотреть данные реестра
специальный - наблюдатели имеют расширенный доступ: наблюдают технические характеристики реестра, события в система, получают информацию оперативнее
Специальные, как я понял, назначаются участниками: партиями, объединениями и т. д. А общие данные может смотреть любой желающий
В Москве вроде другая система?
Да, здесь есть некоторая путаница. В Москве система разработанная ДИТ (как бы старая) а новая система разработана Ростелекомом с другими организациями. При этом системы отличаются в принципиальных аспектах
В ноябре прошла Общероссийская тренировка ДЭГ, т.е. можно было попробовать систему в действии. Я надеялся, что попробую там понаблюдать. В смысле смотреть данные из блокчейна. Чтобы заранее узнать, как это делается. На сайте vybory.gov.ru была инструкция, которая начиналась с того, что надо на главной странице найти раздел "Наблюдение". Я так и не смог его найти.
Наблюдение
Каждый Избиратель может найти свой бюллетень в блокчейне по номеру и проверить свою подпись.
Странно, с каких пор появилась эта возможность? На первых выборах в МГД, где применялась система ДЭГ, возможности найти бюллетень и проверить как учтён голос не было. Я вот лично до сих пор не знаю и уже не узнаю за кого же реально посчитали мой голос.
Ну и конечно проверить подпись != проверить верность учёта голоса.
Описанная система - это текущая система ДЭГ, а вы говорите немного про другую - про систему ДИТ Москвы. Эти системы, как ни странно, во многом принципиально различаются.
Ну и конечно проверить подпись != проверить верность учёта голоса.
Это верно. Проверка верности учёта состоит из двух элементов:
Что бюллетень избирателя был записан в реестр без изменений (никто по дороге не изменил голос) - это как раз удостоверяет подпись избирателя
Что голос правильно учли при подсчёте. Это удостоверяется с помощью гомоморфности схемы + доказательства корректности расшифрования. Если голос просто не учтут, то наблюдатель обнаружит это, когда сам будет делать гомоморфное сложение. Если голоса учтут, но покажут фальшивые результаты - не сойдётся доказательство расшифрования
Для целей честного голосования подходит кольцевая подпись с образом ключа, как в Monero. Эта такая подпись где не узнать кто именно из участников проголосовал, но при этом так же можно заметить если кто-то пытается проголосовать два раза. Пример можно посмотреть тут https://cryptopoll.org/ , там есть веб-демонстрация и ссылки на научную работу
А зачем два раза голосовать, мы нагенерируем пару милионов избиратлей которые проголосуют "правильно"
Решение очень простое - публикуем список избирателей с точностью до дома или даже до подъезда. По этому списку видно кто какой публичный ключ имеет и где примерно он живет. Далее группируем их по виртуальным участкам по 2000 человек. И получаем такую же систему как с обычными бумажными выборами только более защищенную.
Список домов в городе не является персональными данными, и так же не является персональными данными сколько совершеннолетних живет в этом доме.
Для доверия к такой системе должны выполняться следующие условия:
- открытый доступ к реестру (блокчейну) системы в режиме реального времени для всех желающих
- возможность найти и проверить свой голос в системе
- возможность самостоятельно пересчитать итоги голосования после его завершения
Я бы ещё добавил возможность проверки, голосовал ли другой человек электронно (например, по номеру паспорта). Но этого, конечно же, не будет - иначе можно было бы оценить масштаб, так сказать, бедствия.
Исходя из условия анонимности голосования, этого проверить нельзя. Можно лишь проверить, получал ли конкретный человек электронный бюллетень.
Сам факт голосования не нарушает анонимность, если не известно, за кого проголосовал человек. Проводя аналогию, можно у избирательного участка стоять и запоминать, кто из знакомых пришёл, а кто нет - это ничего не нарушает.
Человек может прийти на участок, подойти к урне и даже что-то в нее сбросить, но это не гарантирует того, что он проголосовал. Аналогично с электронным голосованием. Бюллетень он может и получил, но отправлял ли его в блокчейн, узнать нельзя, потому что бюллетень должен быть обезличен.
Тут есть проблема, что это упрощает различные принуждения. Например, начальник хочет обеспечить явку среди подчинённых. Если у него будет возможность по номеру паспорта проверять, кто голосовал - это упрощает ему задачу.
Это никак не отменяет того, что сейчас защиты от принуждений в системе нет, это уточнено в статье.
Можно лишь проверить, получал ли конкретный человек электронный бюллетень.
Не совсем верно, вы никак не сможете проверить что именно этот человек получил электронный бюлетень а не его начальник/сосед/мошенник
Система должна учитывать, кто уже получал бюллетень, а кто нет, иначе один человек смог бы получить неограниченное количество бюллетеней.
Кто именно заходил в этот аккаунт госуслуг - это несколько другой вопрос, и к ДЭГ не относится.
А я и не писал про многократное голосование, я писал про то, что в отличии от оффлайн голосования где член избирательной комиссии верифицирует вас по предъявленому паспорту визуально в онлайн голосовании это может быть кто угодно обладающий данными избирателя
Не просто данными, а доступом к аккаунту. Это несколько сложнее. Учитывая что сейчас 2FA обязали.
Не знаю как сейчас, но раньше аккаунт госуслуг верифицировался тоже при личном посещении МФЦ. А владелец не должен передавать свои учетные данные третьим лицам, и в его интересах этого не делать.
Если так рассуждать, то и онлайн-банкинг нужно запретить, а то неизвестно кто там деньги переводит.
А владелец не должен передавать свои учетные данные третьим лицам, и в его интересах этого не делать.
Конечно, не должен... но может, например по "настойчивой просьбе" начальника, или это может быть действительно он, но за его спиной стоит тот-же условный начальник проверяющий, что подчиненый не ошибется в своем выборе.
Голосование на участках от этого не спасет, там нехороший начальник может потребовать фото заполненного бюллетеня, а некоторые категории граждан голосовать строем приходят, понимая, что за неправильные результаты наказаны они будут все.
Да, поэтому давайте кратно упростим жизнь нерадивого начальника, требовать фотографии бюлетеней, контроль и все вот это сложно и геморно, давайте сделаем это в электронном виде - за закрытыми дверями, без наблюдателей соберем со всех работников учетные данные и сами проголосуем как надо.
Я с вами абсолютно согласен. В описании системы все эти механизмы есть. Будут ли они реально работать и насколько хорошо - покажет практика, конечно
1) не участвую в выборах после того, как запретили кандидата "Против всех".
2) к РФ-криптографии есть вопросы без ответов. не-РФ криптографию использовать в гос.инф.системах запрещено.
>> В статье разбирается, как задачи дистанционного электронного голосования решаются при помощи криптографических методов.
А как решается вопрос с товарищем майором, который апдейтит результаты голосования?
Если вы имеете в виду вопрос подмены бюллетеня избирателя, то этому посвящёны разделы "Целостность: шифрование и подпись бюллетеня", "Учёт бюллетеней: квитанция, блокчейн".
Если вы имеете в виду вопрос нечестного подсчёта, то этому посвящён раздел "Зашифрованные бюллетени".
Кстати, совершенно не раскрыт вопрос проверки корректности написания, сборки и установки, собственно, ПО и зашиты серверов от несанкционированного доступа. Без него всё остальное не имеет вообще никакого смысла.
Если говорить об официальных заявлениях, то оборудование и код проходят аудит и сертификацию. Если говорить о моём отношении к этому вопросу, в целом я раскрыл его в разделе "Заключение":
Криптографические проверки дают нам некий уровень уверенности. Например, атакующий, имеющий доступ к серверу, не сможет удалить бюллетень из блокчейна и остаться незамеченным. Но лучше было бы открыть код. Да, это не даёт 100% уверенности, но уверенность ещё меньше при закрытом коде.
Например, атакующий, имеющий доступ к серверу, не сможет удалить бюллетень из блокчейна и остаться незамеченным.
Если вся цепочка блоков внутренняя, то с этим нет никаких проблем, атакующий может просто перегенерировать с нуля всю цепочку блоков.
Если говорить об официальных заявлениях, то оборудование и код проходят аудит и сертификацию
Там, где камеры видеонаблюденя загораживают воздушными шариками, а во время подсчета на участке внезапно гаснет свет, "сертификация и аудит" проходящие за закрытыми дверями не стоят и бумаги, на которой распечатан сертификат. Хоть какое-то минимальное доверие в таких условиях может быть исключительно к публичной процедуре, проводящейся в условиях максимальной открытости. Что характерно, бумажный посечет так и проходит -- открыто, в присутствии коллективной комиссии, но как только голосование электронное, то сразу "в нашем клубе джентльменам верят на слово" -- вот вам сертификат.
Если вся цепочка блоков внутренняя, то с этим нет никаких проблем, атакующий может просто перегенерировать с нуля всю цепочку блоков
Тут всё не так просто. Дело в том, что бюллетени подписаны эцп избирателя. Сгенерировать эту подпись атакующий не может, потому что у него нет секретного ключа избирателя. Вы тут немного путаете хэши блоков (которые в системе просто связывают цепочку) и подписи на бюллетенях, которые защищают бюллетени.
Что характерно, бумажный посечет так и проходит -- открыто, в присутствии коллективной комиссии
Это не совсем правда: на все участки наблюдателей не отправишь, да и за процедурой подсчёта вживую следить не так просто
"в нашем клубе джентльменам верят на слово" -- вот вам сертификат
Это сертификат не в том смысле, что просто бумажка с подписью комиссии. Это доказательство расшифрования, т. е. значение, которое математически связано с зашифрованными результатами и ключами, и является подтверждением, что подсчёт прошёл без обмана
Сгенерировать эту подпись атакующий не может, потому что у него нет секретного ключа избирателя
Мы можем быть в этом уверены исключительно в случае, если генерация закрытого ключа происходит на стороне избирателя с использованием ПО с открытым исходным кодом, в отношении которого можно быть уверенным, что закрытая часть не посылается заинтересованной стороне.
Кроме того, даже если это так, то нельзя без ключа нельзя переголосовать, но можно имея доступ к полной цепочке блоков можно незаметно изъять любой бюллетень перегенерировав цепочку.
Это доказательство расшифрования, т. е. значение, которое математически связано с зашифрованными результатами и ключами, и является подтверждением, что подсчёт прошёл без обмана
Ну мы же все знаем, что если не видно кода, то в него можно зашить сколь угодно способов подсчета в зависимость от разных условий. Вспомните хотя бы дизельгейт, когда ПО управления двигателем определяя, что находится на стенде проверки, меняло параметры так, чтобы ее пройти. При этом проверяющие лица были даже не в курсе.
Единственный вариант это открытый код, аудит которого возможно провести, который может быть собран наблюдателями и с помощью которого результаты подсчета могут быть проверены публично.
Мы можем быть в этом уверены исключительно в случае, если генерация закрытого ключа происходит на стороне избирателя с использованием ПО с открытым исходным
Генерация ключей происходит в браузере пользователя, соответственно, есть некоторая возможность проверки. Но здесь я с вами согласен, намного лучше было бы открыть код и дать возможность генерировать ключи избирателям самостоятельно. Пусть таких избирателей было бы немного, но для доверия это лучше.
Кроме того, даже если это так, то нельзя без ключа нельзя переголосовать, но можно имея доступ к полной цепочке блоков можно незаметно изъять любой бюллетень перегенерировав цепочку.
Тут снова не так просто) Избирателю после посылки бюллетеня выдаётся номер транзакции. Соответственно, если просто удалить бюллетень, то избиратель может это обнаружить (а также наблюдатели, сохраняющие данные блокчейна периодически).
Тут этим блокчейном всех запутали. Дело в том, что бокчейн никакой критической функции именно для процедуры голосования не несёт. Грубо говоря, если блокчейн заменить просто открытым реестром с номерами, то для голосования это будет не критично: бюллетень всё равно нельзя будет выбросить\не учитывать из-за механизмов, описанных выше. Блокчейн добавляет надёжности, но не является гарантией (в отличие, например, от криптовалют)
Ну мы же все знаем, что если не видно кода, то в него можно зашить сколь угодно способов подсчета в зависимость от разных условий
Не совсем. Упрощённый пример: у вас может быть возможность заменить любое ПО, но сгенерировать поддельную подпись RSA это вам мало поможет)
Не совсем. Упрощённый пример: у вас может быть возможность заменить любое ПО, но сгенерировать поддельную подпись RSA это вам мало поможет)
Честно, я не специалист в криптографии, но насколько я понял возможность атаки на RSA как раз таки довольно сильно зависит от того, какие сообщения мы им подписываем. Имея доступ к генерации сообщений, которые человек впоследствии подпишет своей подписью, мы можем (не знаю точно при каких условиях) в итоге произвести selective forgery, то есть сгенерировать сообщение подписанное действительной RSA-подписью человека не зная при этом его закрытого ключа. В статьях и книжках это называют мультипликативной атакой.
Это была просто аналогия для понимания (я согласен, что это может быть совсем не очевидно) суть которой в том, что даже имея возможность использовать любое ПО, невозможно пройти некоторые криптографические проверки.
Описанное в комментарии не совсем относится к делу, это частный случай атаку на конкретную криптосистему. Скорее это тема: "насколько мы можем доверять используемой криптосистеме, может в ней есть закладка". Этого никогда нельзя исключать. В то же время эта криптосистема описана, поэтому её можно проанализировать и попытаться закладку обнаружить.
В то же время эта криптосистема описана, поэтому её можно проанализировать и попытаться закладку обнаружить.
Немаловажный вопрос, насколько описанная криптосистема соответствует реально реализованной. Анализ черного ящика в любом случае процедура довольно ограниченная, как и показывает пример. Снаружи все может казаться довольно надежным, при этом внутри может использоваться заведомо (либо в следствие ошибки в коде) слабый ГПСЧ, либо закладки, и обнаружить это наблюдая исключительно за внешними данными во многих случаях будет крайне сложно, если вообще возможно. На мой взгляд, доверие к закрытой системе принципиально исключено — можно верить или не верить в честность и добросовестность ее создателей, но доверия к самой системе при этом быть не может.
Относительно того , что код системы стоит открыть, я согласен, как и написал в статье.
Относительно того, что если код закрыт, мы вообще ничего не можем проверить и никакого доверия нет - это не совсем точно. Выше на аналогиях попытался объяснить.
Давайте ещё одну, совсем простую. Представим, что у нас есть чёрный ящик, который вычисляет корень поданного на вход многочлена. Мы не знаем, какой там код, кем он написан и так далее. Но мы всегда можем проверить, правильный он выдал корень или нет.
Но мы всегда можем проверить, правильный он выдал корень или нет.
Потом приходит товарищ майор, замыкает два нужных проводка и ящик начинает выдавать логарифм вместо корня. Проверки никак не показали закладки, которые активируются по особым условиям, а открытый код и аудит покажет.
Так что толку от этих проверок немного.
Открытость кода объективно вам ничего не даст т.к. никто не сможет проверить, а он ли работает в системе.
Тут теоретически можно усложнить процедуру подмены кода, сборкой под контролем квалифицированных наблюдателей и использованием распределенной сети нод, которые наблюдатели и члены комиссии можно собрать самостоятельно.
Тут классический вопрос - кто сторожит сторожей? В данном случае - квалифицированных наблюдателей.
Как и при любой другой избирательной системе — другие наблюдатели.
В бумажной системе нам не нужны квалифицированные наблюдатели. От них достаточно уметь считать - тогда он сможет посчитать пришедших на участок избирателей и число бюллетеней с галочкой в клеточке. И при достаточном количестве наблюдателей мы сможем покрыть все участки.
А за сборкой кода так проследить не получится. И уж тем более - проследить, что именно этот код выполняется на вот этой вот машине и сюда приходят именно вот эти данные. Тут нужна высочайшая квалификация - и то не факт что получится.
Да, но зато вам для этого не нужно много наблюдателей, а лишь несколько человек, так что предложения @M_AJ вполне разумны
Нет, зачем нечестный подсчёт, подмена бюллютеней. Зачем. Просто товарищь майор публикует рузультаты голосования, "как надо", а не как на самом деле.
.
Скажите, а чем ДЭГ принципиально лучше обычного голосования бумажными бюллетенями?
Ответ тут сильно разнится в зависимости от практической реализации обоих видов голосования. Если мы предполагаем некоторую хорошую реализацию того и другого, то электронное голосование:
Удобнее. Проголосовать на смартфоне легче, чем идти на участок ногами.
Лучше защищает от некоторых видов мошенничества. Например, изменить бюллетень избирателя при обычном голосовании легче, чем при электронном.
Уже давно нужно не государство защищать от преступлений граждан, а граждан от преступлений государства.
А кто эти мошенники, которые постоянно хотят подменить или подменяют результат? Наверное это какие-то оппозиционеры или нет? От кого защищается государство блокчейном?
В статье вся система описана как единый механизм для простоты изложения. На самом деле, она, конечно, состоит из многих частей. Злоумышленник может быть внешний (например, хакер, который хочет поменять результат на свой), внутри какой-то из подсистем (нечестный член цик, подсчитывающий результаты), внутри всей системы.
В зависимости от того, какую модель мы рассматриваем, имеем те или иные способы защиты, который защищают с той или иной эффективностью.
Я все таки не понял, что мешает вместо select count(*) выдать заранее подготовленную константу?
Хеши, говорите? Да кто же вас туда пустит, проверить все это?
Дело в том, что помимо результата, рассчитывается криптографическое доказательство, что эта сумма действительно вычислялась корректно. Оба значения публикуются публично, так что любой наблюдатель может их проверить.
Избирательная комиссия не может выложить произвольную константу, потому что не сможет предоставить для него доказательство честного вычисления.
И как же человек может проверить, что криптографическое доказательство валидно?
Дайте догадаюсь, надо зайти на какой то сайт .gov.ru, вставить эту строку в поле ввода, и получить ответ: все верно, товарисч!
Не угадали) Человек самостоятельно проверяет его по данным (ключи и т. д.), выложенным комиссией.
Почему комиссия не сможет выложить такие данные, чтобы проверка сходилась на поддельном результате?
Это обеспечено надёжностью криптографической схемы. Если математически в схеме всё верно, то комиссия не сможет подделать результат.
Не доверяете схеме?
Используемая схема известна, её описание доступно в открытом доступе, любой может её проанализировать.
То, что я проверю соответствие криптографических доказательств разных комиссий друг другу никак не гарантирует, что эти доказательства соответствуют валидным, а не фейковым данным. Ещё раз, без доступа к данным вы ничего не проверите. А к данным вам никто не пустит
Это не доказательство комиссий друг другу. Это доказательство того, что комиссия честно сложила бюллетени, а не просто написала ответ от балды. Данные лежат в публичном блокчейне, они не скрыты.
Упрощённая аналогия: представим, что при обычно голосовании вообще все бюллетени сразу попадают в общий зал. В конце голосования комиссия каждый бюллетень подносит к камере и учитывает. А после подсчёта наблюдателей пускают в этот зал, и они могут проделать то же самое. Вот процесс "подсчёта под камерой" - это аналогия криптографического доказательства
А что мешает сделать два параллельных блокчейна? Избиратель голосует в первый, а считают по второму (теневому, правильно составленному). В случае проверки, берут результат конкретного голоса из первого.
Процедура проверки проверяет не конкретный бюллетень (его вообще нельзя проверить из-за требования анонимности голосования) а то, что голоса сложены корректно. Если хоть один бюллетень будет учтён неправильно, то проверка это покажет. Подробнее про этот механизм в разделах "Зашифрованные бюллетени" и "Наблюдение".
Уже говорилось о том, что нет защиты от генерации сотни миллионов Ивановых Иваниванычей, от имени которых в полном соответствии со схемой можно голосовать сколь угодно долго и до сколь угодно далёкого от истинного результата.
Итак, для защиты от генерации нам необходимо знать заранее и достоверно список избирателей. Где же он? Ба! Да вот же он, в публичном блокчейне ЗАГС (сарказм). Но это полбеды. Все ли знают, что записи о гражданах, родившихся и зарегистрировавших своё гражданство за рубежом, не передаются для учёта в ЗАГС и навечно застревают в учётных системах МИД? Ба! Да вот же и второй блокчейн, от МИДа, тоже публичный (сарказм). У нас, кстати, есть ещё третий способ получить избирательные права: принятие в гражданство. Если регламент предписывает учёт таких граждан вести в ином ведомстве (МВД, например), то, будьте уверены, у них тоже уже лет десять имеется публичный блокчейн (а вы как думали?). Конечно, в этих блокчейнах каждый гражданин может свободно увидеть: список имён, даты рождения, даты смерти, даты выбытия из гражданства, даты лишения дееспособности и отметки о ссылочном номере принявших на себя все права и обязанности опекунов, включая, в данном случае, отдельно отметки о принятии права голосования от имени недееспособного.
Имеется так же сводный блокчейн (публичный!!!) от ЦИК, в котором на каждого гражданина (ссылка на запись в соответствующем реестре) проставлена отметка о получении бюллетеня и типа этого бюллетеня (электронный или бумажный), причём, или/или. Ба! Вот же этот блокчейн, и тоже публичный (сарказм).
Это вот самый минимум, без которого нет смысла обсуждать ни качество софта и его аттестацию, ни функционеров на местах, ни математические выкладки и прочие доказательства теории игры в спортлото. Garbage in — garbage out.
Кстати, о ЗАГС: фишкой вселенского масштаба была бы возможность видеть сразу ещё и своих родственников (как биологических, так и приемных), что позволило бы сильно упростить процедуры вступления в наследство. Там же можно было бы держать (не публично уже) отметки, вроде "находится в розыске". Получил такой гражданин бюллетень, ЦИК раз, ссылочную запись себе, МВД рраз! и встревожились, поехали на место, нашли по горячим следам пропавшего в прошлом году деда, вернули его родственникам для срочного принятия таблеток, чаю попили (с тортиком и печеньем!!!)
Или вот пришёл гражданин бюллетень получать, а он уже умер давно. Крик, шум, гам, хлопушки хлопают, шары в разные стороны, и, главное, сразу видно, из какого ведомства теперь придёт компенсация за недостоверное (а то и подложное) внесение изменений в акты гражданского состояния, чем были нарушены избирательные права гражданина.
Ой, да много чего можно вспомнить. Хорошо, что у нас электронное правительство, и все эти блокчейны уже давным давно созданы, функционируют и по пять тысяч раз на дню перепроверяются любым желающим на предмет отклонений от предыдущей выгруженной копии, да и на внутреннюю непротиворечивость.
Я честно прочитал комментарий целиком и пытался найти вопросы, по которым можно дать полезный ответ по теме. Но на мой взгляд, здесь написана какая-то шиза: не относящиеся к теме истории про родственников, про мид, про загс, про мвд, использование термина "блокчейн" в каком угодно, только не в правильном смысле, обилие восклицательных знаков и т. д.
Две вещи мне здесь действительно не понятны:
Читали ли вы статью?
Почему этот комментарий набирает классы? Я чего-то не понимаю, это мем какой-то?
Сначала долго думал как связаны ДЕГ и хабр
Cтатью не читал. Но есть подозрения, что криптография ДЭГ подвержена к атакам "Майор in the middle".
Спасибо за полезную статью, сейчас в общих чертах как работает система понять крайне сложно из-за отсутствия информации, как и найти нормальное описание. Очень раздосадован хейту со стороны пользователей этого сайта, не ожидал что тут так много пользователей "не читал но осуждаю". Буд-то добиваются чтобы информация о работе не афишировалась.
Не согласен с вами в равнозначности реестра и блокчейна. Проверять и контролировать перестройку блокчейн значительно проще, сможет даже школьник.
Возник вопрос при переходе от теории к практики, какие на данный момент существуют инструменты, чтобы можно было скачать весь блокчейн к себе и проверить блоки самостоятельно?
Мои поиски привели только к возможности залесть на сайт и введя номер увидеть что голос принят, понятно что сделано для обычного обывателя, но такая и только такая проверка ставит под сомнение существование блокчейна как такового.
Т.е. было бы крайне интересно увидеть статью которая подробно описывает каким образом можно стать Наблюдателем. И что для этого нужно сделать (где скачать утилиты, или их нужно будет разработать самостоятельно? А если так, достаточно ли для этого документации?)
Спасибо за ссылку! Что-то мой гугл меня подвёл. В базе лежат транзакции в том числе нашёл свою. Но я так понял это только ДИТ для Москвы, а не ДЭГ от Ростелекома что описывает эта статья.
Но по этим транзакциям нельзя же пересчитать результаты?
Какая польза вообще от такой базы?
Судя по беглому обзору конечный результат лежит в открытом виде для каждого бюллетеня. С помощью утилит cat, grep и wc даже удалось пересчитать результат: 161922, 115265, 119872, 3245860, что почти совпадает с официальным: 161924, 115260, 119875, 3245860. Конечно же без сопоставления и проверки, но если поковыряться побольше вполне возможно что это получится сделать.
Что касается пользы, зависит от конечной цели, я считаю что поковыряться в реальных данных это интересно.
Пересчитать результат это несомненно уже польза.
А где именно в транзакции виден результат голосования?
В decryptedValue?
Sample block
{
"blockNumber": "251085",
"time": "2024-03-17T21:00:47+03:00",
"hash": "0x82d2b1859952bf145bc2dca7aa94e1f514ef4c0caf5be86e31c06ddc69f34338",
"type": "decryptBallot",
"accessList": [],
"chainId": "600",
"cost": "3754200000",
"data": "CR015gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZfcvzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHA89wPcbWOlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRkMmNkNTg4Yy1hMWNlLTQ4NmUtYTdkZS05MDMzYzA0YjA4MGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQxZmRmZWQ5Mi05NDJiLTQ2YWEtYjBkYi1lNDcyNGViN2ZjM2EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPIiaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
"gas": 375420,
"gasFeeCap": "10000",
"gasPrice": "10000",
"gasTipCap": "10000",
"nonce": 9288897,
"protected": true,
"rawSignatureValuesV": "1236",
"rawSignatureValuesR": "43908784457544842669267383278981252995387790704838431256016469504517699641935",
"rawSignatureValuesS": "18933030085561882625600981580136880325691871870355683216862194514930692830824",
"size": 656,
"to": "0x9A54D63b32588c26CD200E92D3b0B2ED0988698A",
"value": "0",
"decodeData": {
"storageDecodeBallot": {
"votingId": "d2cd588c-a1ce-486e-a7de-9033c04b080f",
"sid": "1fdfed92-942b-46aa-b0db-e4724eb7fc3a",
"decryptedValue": [
15868520
],
"io": "1",
"timestamp": 1710698447,
"s": 8087610626805687000
}
},
"blobGas": 0,
"blobGasFeeCap": "",
"blobHashes": null
}
Да, они в транзакции 0x9f765c1ebb86edd339bc99b4d7ab792ad31de6b70ea5c848ca516f7e8a41828 формируют бюллетень, а потом в decryptedValue после расшифровки записывают результат.
Hidden text
"candidates":[
0:{
"id":int14415044
"name":string"ДАВАНКОВ Владислав Андреевич"
}
1:{
"id":int15868520
"name":string"ПУТИН Владимир Владимирович"
}
2:{
"id":int5625646
"name":string"СЛУЦКИЙ Леонид Эдуардович"
}
3:{
"id":int14339793
"name":string"ХАРИТОНОВ Николай Михайлович"
}
]
Очень необычно выглядит типизация в json, первый раз где это встетил.
Во всех регионах, кроме Москвы, при проведении электронного голосования использовалась федеральная система, которая описана в статье.
В Москве использовалась другая система, которая не просто отличается данными, а совсем иначе работает. Ссылка на дамп в комментариях - это как раз данные голосования в Москве. Можно ли их проверить и как именно, мне не известно.
Доступ к блокчейну федеральной системы имели наблюдатели. Они могли проверить результат как самостоятельно, так и с помощью утилит от ЦИК с открытым кодом. Дампа этого блокчейна в открытом доступе я не видел. На мой взгляд, было бы хорошим решением опубликовать его.
Как работает криптография в ДЭГ