Опубликована часть исходного кода российской системы блокчейн-голосования
Просмотров: 2
В открытом доступе размещены исходные программные коды ключевых алгоритмов системы дистанционного электронного голосования (ДЭГ), которую планируется использовать на довыборах в Госдуму РФ 13 сентября. Они включают серверы подсчета, смарт-контракты и внутренние библиотеки. Обзор системы опубликован в блоге Ростелекома на Habr.
Публичный тест системы состоялся 31 августа.
С технической точки зрения система ДЭГ состоит из большого числа программных и аппаратных компонентов и позволяет участникам избирательного процесса взаимодействовать в единой информационной среде, отмечают разработчики.
Блокчейн в системе дистанционного голосования обеспечивает неизменность информации и прозрачность исполнения смарт-контрактов, защищает и децентрализованно хранит данные, в том числе список избирателей и ключи шифрования, а также позволяет отслеживать транзакции внутри сети.
«Без использования данной технологии добиться наличия в системе голосования необходимых свойств, как и доверия к ней, практически невозможно», – указывают разработчики.
Благодаря смарт-контрактам электронная и «слепая» подпись каждой транзакции с зашифрованными бюллетенями проверяется на подлинность, также проводится базовая проверка корректности заполнения зашифрованного бюллетеня.
«Распределенное хранение и подсчет голосов не ограничивается блокчейн-узлами. Для каждого узла может быть развернут отдельный сервер подсчета. Он обеспечивает распределенную генерацию ключа шифрования бюллетеней, расшифровку результатов и подсчет итогов голосования, которые могут быть проверены на корректность», – говорится в обзоре.
На различных этапах процесса голосования используются:
- электронная подпись;
- слепая подпись публичного ключа избирателя;
- схема шифрования Эль-Гамаля на эллиптических кривых;
- доказательства с нулевым разглашением;
- протокол DKG (Distributed Key Generation) Pedersen 91;
- протокол разделения закрытого ключа по схеме Шамира.
Особенностью рассматриваемой системы является использование технологии гомоморфного шифрования.
«Зашифрованные бюллетени можно без расшифровки скомбинировать так, чтобы получить суммированное значение по каждому варианту выбора в бюллетенях. При этом в системе реализованы математические доказательства корректности такого расчета, которые могут быть проверены наблюдателями», – объясняют разработчики.
По словам разработчиков, основными свойствами блокчейн-голосования являются верифицируемость и анонимность избирателей, конфиденциальность голосов, неизменность и проверяемость данных, а также надежность архитектуры сети.
Вместе с тем, у директора и учредителя АНО «Информационная культура» Ивана Бегтина сложилось впечатление, что код писался «на коленках».
«Код совсем не впечатляет. Поверхностная проверка кода инструмента cryptolib на Python через pylint дает качество 3,21 из 10. По остальным «кускам кода» ситуация не сильно лучше – уровень культуры программирования ниже среднего», – написал Бегтин.
Напомним, дистанционное электронное голосование пройдет на сентябрьских довыборах в Госдуму РФ в Ярославской и Курской областях.
Последнее блокчейн-голосование по поправкам в Конституцию РФ состоялось в конце июня 2020 года. В первые часы работы система электронного голосования дала сбой, который объяснили наплывом избирателей. На следующий день сбой коснулся экспорта данных.
Впоследствии неизвестные совершили попытку атаки на сервис наблюдения за голосованием, а найденная уязвимость позволила расшифровать голоса избирателей до подсчета.
В начале июля база паспортов участников блокчейн-голосования стала доступна на одном из форумов. В правительстве Москвы эту информацию опровергли, однако затем взломанный архив оказался в открытом доступе за пределами форума.