ИНФОРМАЦИОННО-КОММУНИКАЦИОННЫЕ
ТЕХНОЛОГИИ INFORMATION-COMMUNICATION TECHNOLOGIES
УДК 004.75:324 DOI: 10.24151/1561-5405-2021-26-6-565-579
Разработка методики и комплекса программных средств для дистанционного электронного голосования на основе блокчейн-платформы Ethereum
В. Паскарь, Л.Г. Гагарина, В.В. Слюсарь
Национальный исследовательский университет «МИЭТ», г. Москва, Россия,
gagar@bk.ru
Перспективным способом процедуры дистанционного электронного голосования является использование блокчейн-платформы ЕШегеиш. Однако при применении данной технологии возникает ряд проблем: обеспечение тайны голосования и открытости процедуры для общества, давление на избирателя и гарантия надежности системы в целом. В работе предложена методика построения дистанционного электронного голосования, решающая эти проблемы. По структуре она аналогична традиционному способу голосования: используется тот же принцип и процессы. Подробно описан процесс дистанционного электронного голосования на основе блокчейн-платформы Ethereum. Показано, что полученные голоса надежно хранятся в блокчейн-сети Ethereum, а правильность адресации голоса выбранному кандидату всегда можно проверить в режиме реального времени. Описан алгоритм смарт-контракта, который отправляет данные в блокчейн-сеть ЕШегеиш, реализует передачу голоса от избирателя к кандидату с помощью транзакций и определяет победителя, набравшего наибольшее количество голосов. Показано, что в результате использования алгоритма хеширования keccak256 и подписи на основе эллиптической кривой secp256k1 транзакции максимально защищены, надежны и не подлежат отмене. Разработанная методика дистанционного электронного голосования на основе блокчейн-платформы ЕШегеиш повышает эффективность безопасности и конфиденциальности данных, обеспечивает прозрачность и анонимность процедуры голосования, решает проблему принуждения участия в голосовании. Результаты работы реализованы программно и могут быть использованы не только в избирательной системе, но и в случаях, когда требуется дистанционное голосование.
Ключевые слова: дистанционное электронное голосование; безопасность; конфиденциальность; анонимность; смарт-контракт; мобильное приложение; веб-приложение; блокчейн; ЕШегеиш
© В. Паскарь, Л.Г. Гагарина, В.В. Слюсарь, 2021
Для цитирования: Паскарь В., Гагарина Л.Г., Слюсарь В.В. Разработка методики и комплекса программных средств для дистанционного электронного голосования на основе технологии блокчейн-платформы Ethereum // Изв. вузов. Электроника. 2021. Т. 26. № 6. С. 565-579. DOI: https://doi.org/ 10.24151/1561-5405-2021-26-6565-579
Methods and Software Complex Development for Remote Electronic Voting Based on Ethereum Blockchain Platform
V. Pascari, L.G. Gagarina, V. V. Sliusar
National Research University of Electronic Technology, Moscow, Russia gagar@bk.ru
Abstract: The most promising way to increase voters' confidence in the remote electronic voting (REV) procedure is a voting method based on Ethereum blockchain platform. However, the existing solutions using this method faced a range of problems: ensuring the secrecy of the vote and openness of the procedure for society, pressure on the voter and a guarantee of the reliability of the whole system. In this work, a method for constructing a REV is proposed that solves these problems. It is similar in structure to the traditional voting method, using the same principle and processes. The Ethereum blockchain based REV process is described in detail. It was shown that received votes are securely stored in the Ethereum blockchain network, and the correctness of the vote addressing to the selected candidate can always be checked in real time. The description of smart contract algorithm that implements the transfer of vote from voter to candidate using transactions and determines the winner who received the highest number of votes was provided. It was demonstrated that keccak256 hashing algorithm and secp256k1 elliptic curve signatures ensure transactions' maximum protection, reliability, and non-rollability. The developed REV technique based on Ethereum blockchain platform increases the efficiency of data security and confidentiality, transparency and anonymity of the voting procedure, and solves the problem of coercion. The results of the work have been implemented programmatically and can be used not only in the electoral system, but also wherever there is need of remote voting.
Keywords: remote electronic voting; security; privacy; anonymity; transparency; smart contract; mobile application; web application; blockchain; Ethereum
For citation: Pascari V., Gagarina L.G., Sliusar V.V. Methods and software complex development for remote electronic voting based on Ethereum blockchain platform. Proc. Univ. Electronics, 2021, vol. 26, no. 6, pp. 565-579. DOI: https://doi.org/ 10.24151/1561-5405-2021-26-6-565-579
Введение. Актуальность дистанционного электронного голосования (ДЭГ) определяется потребностями современного общества. В настоящее время особой популярностью пользуются различные платформы и приложения, позволяющие эффективно реа-лизовывать процессы управления удаленно в режиме реального времени с помощью Интернета. Поэтому ДЭГ становится особенно актуальным в жизнедеятельности региона / города / района, так как позволяет узнавать мнения граждан при принятии важных решений.
Однако при ДЭГ возникает проблема недоверия в связи с невозможностью гарантировать полную безопасность данных и защиту от взломов, обеспечивать тайну голосования и открытость процедуры для общества, а также надежность системы в целом. Наиболее перспективный способ решения этих проблем - голосование с использованием блокчейн-платформы Ethereum [1].
Структура блокчейна. Блокчейн состоит из блоков, соединенных в цепочку. По структуре каждый блок содержит в себе набор транзакций в виде некоторых данных (data), хеша блока (hash) и хеша предыдущего блока (hash of previous block). Данные хранятся внутри блока и зависят от назначения блокчейна. Хеш блока идентифицирует блок и его содержимое. Когда создается блок, вычисляется его хеш. Любое изменение внутри блока вызывает изменение хеша. Хеш предыдущего блока эффективно связывает блоки в цепочку, что способствует безопасности блокчейн-технологии (рис.1). Первый блок (Genesis block), называемый порождающим, не может указывать на предыдущий блок, так как он первый.
Рис.1. Цепочка из трех блоков Fig. 1. Chain of three blocks
Если изменить (фальсифицировать) блок, например Block_2, то изменится хеш этого блока (рис.2) и все следующие за ним блоки станут недействительными, так как они уже не хранят действительный хеш предыдущего блока.
Рис.2. Изменение хеша блока Fig.2. Changing the hash of a block
Использование хешей недостаточно для предотвращения фальсификации. Современные компьютеры могут существенно изменить блок и пересчитать все хеши других блоков, чтобы снова сделать блокчейн действительным (валидным). Поэтому в блок-чейне используется механизм «доказательство работы». Он замедляет создание новых блоков и, следовательно, существенно затрудняет фальсификацию блоков. Например, если изменяется первый блок, требуется пересчитать «доказательство работы» для всех следующих за ним блоков. Таким образом, безопасность использования блокчейн-платформы Ethereum основана на совместном применении хеширования и «доказательства работы».
Надежность блокчейн-технологии реализуется согласно принципу децентрализо-ванности [1]. Вместо использования центрального объекта для управления цепочкой в
блокчейне применяется одноранговая сеть (P2P network), доступная всем для подключения. Подключенный узел получает полную копию блокчейна и может проверить действительность цепочки.
Когда создается новый блок, он реплицируется всем подключенным к сети узлам. Каждый узел проверяет его достоверность. Если проверка хешей прошла успешно, узлы добавляют новый блок в свою копию блокчейна. Узлы в сети достигают консенсуса по отношению к действительности блоков. Фальсифицированные блоки отклоняются. Соответственно, для того чтобы успешно фальсифицировать цепочку блоков, следует для всех измененных и следующих за ними блоков повторить «доказательство работы» и взять под контроль более 50 % одноранговой сети для установки консенсуса. Только тогда фальсифицированный блок станет достоверным, что почти невозможно.
Блокчейн-платформа Ethereum позволяет решать различные задачи с помощью создания смарт-контрактов. В каждом контракте содержится база данных и представлены методы для работы с ней. Контракты реплицируются на все подключенные узлы, поэтому их база данных также реплицируется [2]. Когда вызывается метод контракта, обновляется база данных, команда реплицируется и воспроизводится по всей блокчейн-сети Ethereum. В результате достигается распределенный консенсус по выполнению обещания участниками контракта.
Результаты исследований проектов ДЭГ с использованием блокчейн-платформы Ethereum Research results of REV projects using Ethereum blockchain platform
Проекты
Предъявляемые требования eID-System (Швейцария) Follow My Vote (США) Voatz (США) Активный гражданин (Россия) Polys (Россия)
Однозначная идентификация избирателя + + + + +
Одноразовая подача голоса избирателя + + + + +
Анонимность процесса голосования - - + - -
Возможность переголосовать - + + - +
Достоверность переданного голоса избирателя + + + + +
Корректность подсчета конечного результата - + - + +
Возможность проверки результата голосования избирателем - + - + +
Предотвращение возможности тайной подмены голоса избирателя + + - + +
Предотвращение возможности несанкционированного вмешательства + + - - +
Отказоустойчивость работы программно-технических средств + + - - +
Примечание: + имеется возможность; - не имеется.
Результаты исследований похожих решений [3-7] ДЭГ с использованием блок-чейн-платформы Ethereum приведены в таблице, где для каждого проекта указаны преимущества и недостатки.
Основными недостатками ДЭГ считаются нарушение тайны голосования и открытости процедуры для общества, давление на избирателя и отсутствие гарантии надежности системы в целом. Для устранения указанных недостатков необходимо решить следующие задачи:
- обеспечить конфиденциальность персональных данных избирателя с помощью QR-кода - идентификатора, сгенерированного на мобильном устройстве избирателя (некоего обезличенного ID), для анонимности процесса голосования использовать цифровую подпись на основе эллиптической кривой secp256k1;
- обеспечить прозрачность процедуры ДЭГ путем доступа в публичный регистр транзакций на ресурсе https://etherscan.io;
- решить проблему давления на избирателя посредством предоставления права избирателю изменять свой выбор без ограничений в период проведения голосования, но при подсчете результатов учитывать последний отправленный голос избирателя;
- обеспечить надежность процедуры ДЭГ за счет публичной децентрализованной блокчейн-сети Ethereum и алгоритма хеширования keccak256.
Методика построения ДЭГ на основе блокчейн-платформы Ethereum. Для вызова сетевого API Ethereum необходимы web3.j-библиотека и подключение к сетевому узлу Ethereum. Запустить узлы можно самостоятельно, также можно подключиться к уже существующим через мост / прокси (например, использовать MetaMask или Mist).
Предлагаемая методика построения ДЭГ на основе технологии Blockchain-Ethereum включает в себя следующие этапы.
Подготовка к голосованию. Администратор ДЭГ регистрируется в браузере MetaMask (создается учетная запись в Ethereum c открытым и закрытым ключами) и публикует смарт-контракт для голосования в Ethereum. Далее добавляется оператор (уполномоченный проверять личность и право голоса пользователя мобильного приложения) и создается голосование: вносятся кандидаты, задаются период проведения выборов и сумма перевода эфира для голосования. Выставляется мобильное приложение на сайте Центральной избирательной комиссии (ЦИК), исполнительный комитет которой формирует списки голосующих и предоставляет их операторам.
Избиратели устанавливают приложение на свои мобильные устройства. При установке приложения на устройствах пользователей автоматически генерируются ключевая пара (закрытый и открытый ключи) и идентификатор / адрес избирателя в виде QR-кода (и в цифровом представлении). Закрытый (секретный) ключ пользователя k - это случайная последовательность длиной 256 бит из отрезка [1, p-1], где p - простой порядок эллиптической кривой. Эту последовательность также можно представить в виде некоторого большого числа k. Открытый (публичный) ключ K генерируется на основе закрытого и представляет собой координату точки на эллиптической кривой:
K = Gk,
где G - образующая точка эллиптической кривой.
Поскольку результатом данной функции являются координаты, то для представления в виде открытого ключа нужно их выровнять до 32-байтных слов и конкатенировать друг с другом.
Между адресом пользователя в блокчейн-сети Ethereum и его открытым ключом устанавливается непосредственная связь для того, чтобы не тратить дополнительного
места (64 байт) в каждой транзакции для хранения открытого ключа. Адрес пользователя представляет собой последовательность из 20 байт, полученную из открытого ключа следующим преобразованием:
где кессак256 - хеш-функция из библиотеки БИЛЗ [8].
После кодирования хеш-функция возвращает массив из 32 байт. Поэтому для получения адреса следует обрезать первые 12 байт, полученные в результате кодирования, которые соответствуют 24 символам в шестнадцатеричной записи. Адрес используется для идентификации пользователя мобильного приложения в блокчейн-сети ЕШегеиш, на него можно отправлять эфир. Адреса хранятся в отдельном файле, каждый в шест-надцатеричном представлении с префиксом «0х». Далее избиратель направляется в пункт проверки личности.
Подтверждение личности. Для подтверждения личности избирателя ЦИК выделяет время перед началом выборов (например, в период проведения предвыборной кампании). Процесс подтверждения личности аналогичен идентичному процессу при традиционном способе голосования. Чтобы принять участие в голосовании, необходимо подтвердить свое гражданство в данной юрисдикции. Для этого избиратель предъявляет оператору документ, удостоверяющий личность. Оператор верифицирует личность избирателя и отмечает в списках голосующих, избиратель подтверждает верификацию своей подписью. В результате доступ к голосованию имеют только те избиратели, которые имеют на это право. Данный этап необходим для доступа избирателей к ДЭГ.
Регистрация. Оператор регистрирует избирателя в блокчейн-сети ЕШегеит с помощью сканера ОЯ-кода, отсканировав его в мобильном приложении избирателя. ОЯ-код идентифицирует адрес избирателя в блокчейн-сети ЕШегеиш, и на адрес избирателя автоматически начисляется эфир для голосования.
Процесс голосования. Избиратель выбирает кандидата в приложении и отправляет свой голос (эфир) в смарт-контракт на адрес кандидата вместе с хешем номера своей учетной записи и подписью этого хеша. Используется закрытый ключ для цифровой подписи хеша. Алгоритм подписи [9] сначала генерирует эфемерный (временный) закрытый ключ q случайным образом из отрезка [1, р-1], где p - простой порядок кривой Беср256к1. Данный ключ используется при вычислении значений г и ^ для гарантии того, что фактический закрытый ключ отправителя не может быть вычислен злоумышленниками, наблюдающими за подписанными транзакциями в ЕШегеит. Далее рассчитывается точка на кривой secp256k1:
В криптосистеме на основе эллиптических кривых функция получения цифровой подписи [9] возвращает два числа - г,
Здесь г - временный открытый ключ; m - транзакция в кодировке RLP.
Перед тем как транзакция будет отправлена в ЕШегеит, она подписывается на узле с использованием одного из секретных ключей, доступных на данном узле. Транзакция
addr = right (keccak256 ( K) ,20),
(*i,yi )= Gq
Sig = (r, ^),
подписывается не вся, а только следующие данные: nonce, gasprice, gas, to, value, data. Перед подписанием эти данные представляются в виде набора байтов с помощью RLP-кодирования. В Ethereum к цифровой подписи также добавляется еще одно число - v. Оно позволяет упаковывать цифровую подпись в структуру размером 65 байт, а также несет информацию о том, на каких узлах Ethereum данная цифровая подпись может проверяться.
Далее смарт-контракт проверяет, допущен ли избиратель до голосования: вычисляет хеш номера адреса отправителя и сравнивает результат с предоставленным хешем. Используется открытый ключ для проверки цифровой подписи хеша. При проверке подписи избирателя закрытый ключ неизвестен и не раскрывается.
Проверка подписи - это обратный алгоритм относительно алгоритма генерации подписи с использованием значений r, s и открытого ключа избирателя для вычисления значения точки Q (x, y ) на эллиптической кривой secp256k1.
Для проверки цифровой подписи необходимо выполнить следующие шаги [9]:
Шаг 1. Убедиться, что r и s - целые числа из отрезка [1, ^-1], в противном случае подпись недействительна.
Шаг 2. Вычислить: w = s_1 modp.
Шаг 3. Вычислить: щ = keccak256(m) w modp.
Шаг 4. Вычислить: щ = rw modp .
Шаг 5. Вычислить точку на кривой:
(x, y ) = ufi + u2K (mod p),
где r и s - значения подписи.
Если (x, y ) = 0, то подпись недействительна, если r = x mod p, то подпись действительна. В случае успешной проверки эфир для голосования избирателя зачисляется на адрес кандидата.
Нерешительный избиратель или проголосовавший под давлением (например, когда руководство компании требует у сотрудников предоставить снимки экранов, подтверждающие их выбор) может изменить свой голос (переголосовать неограниченное количество раз) в период проведения голосования. Таким образом, решается проблема давления на избирателя.
Отданный голос записывается как транзакция в блокчейн-сети Ethereum. Он привязывается к определенному адресному пространству в Ethereum, которое указывается при выборе кандидата. По отданному голосу нельзя определить личность избирателя, так как используется криптография на основе эллиптических кривых и процесс регистрации происходит с помощью идентификатора (QR-кода) мобильного устройства избирателя.
Подсчет голосов. По окончании проведения голосования смарт-контракт автоматически определяет победителя (по количеству транзакций на адрес кандидата), набравшего наибольшее количество голосов. При подсчете голосов учитывается последний отправленный голос избирателя.
Проверка результатов голосования. Полученные голоса надежно хранятся в блок-чейн-сети Ethereum, а правильность адресации голоса конкретному кандидату избиратель всегда может проверить в режиме реального времени, перейдя по ссылке «Моя транзакция» в мобильном приложении. Окончательные результаты голосования изби-
ратель может узнать в онлайн-режиме по завершении проведения голосования, перейдя по ссылке «Результаты голосования» в мобильном приложении. Чтобы убедиться, что голос избирателя учтен при подсчете результатов голосования, ему необходимо проверить публичный регистр транзакций, перейдя по ссылке «Все транзакции» в мобильном приложении.
Взаимодействие пользователей ДЭГ с блокчейн-платформой ЕШегеит происходит с помощью процедуры ЯРС (рис.3). При передаче данных используется сериализация данных методом ЯЪР.
Рис. 3. Диаграмма взаимодействия пользователей ДЭГ с блокчейн-платформой Ethereum Fig.3. Diagram of interaction of REV users with Ethereum blockchain platform
Комплекс программных средств для ДЭГ. В предложенной методике ДЭГ программными средствами являются веб-приложения администратора и оператора, мобильное приложение избирателя и смарт-контракт для голосования, которые функционируют комплексно в процедуре ДЭГ.
Веб-приложение администратора. Интерфейс администратора представляет собой веб-сайт. Для авторизации необходимо ввести логин и пароль, которые задаются программно без возможности изменений. После успешной авторизации появляется главное меню «Выберите действие»:
1. Создание списка кандидатов.
2. Настройки голосования.
3. Просмотр результатов.
4. Просмотр транзакций.
В главном меню по первой ссылке администратор создает список кандидатов, отображающий в мобильном приложении избирателей. По второй ссылке администратор задает значения периода проведения голосования, который отображается в мобильном приложении во всплывающем окне перед началом голосования, и устанавливает сумму эфиров для голосования, чтобы избиратели смогли проголосовать. Задание проведения голосования автоматически влияет на активность кнопок «Отдать свой голос» и «Изменить свой голос» в мобильном приложении. Такой подход к процедуре голосования позволяет участвовать в выборах в день их проведения, а получать адресное пространство в сети Ethereum и эфиры для голосования до начала их проведения. По третьей ссылке администратор видит результаты голосования в виде списка кандидатов, напротив каждого кандидата - отданные голоса избирателей в процентном и количественном выражении, а также общее количество проголосовавших избирателей. Последняя ссылка в главном меню администратора показывает историю всех транзакций избирателей и может отследить любую из них. Для полной прозрачности процедуры голосования дополнительно есть ссылка на адрес смарт-контракта для голосования на ресурсе https://rinkeby.etherscan.io.
Веб-приложение оператора. Интерфейс оператора представляет собой вебстраницу, к которой подключен сканер QR-кода, для регистрации избирателей в сети Ethereum. Оператор также может вносить идентификатор мобильного устройства избирателя вручную.
Мобильное приложение избирателя. При открытии мобильного приложения не-верифицированный пользователь видит сообщение: «Вы не можете принять участие в голосовании. Пройдите верификацию». Для прохождения верификации пользователь приложения обращается в местный уполномоченный орган, например МФЦ, подтверждает свою личность документально и предоставляет оператору (сотруднику МФЦ) автоматически сгенерированный идентификатор своего устройства (QR-код), нажав в правом верхнем углу экрана мобильного приложения на знак QR-кода. Далее осуществляется переход на следующую страницу приложения «Идентификатор вашего устройства», где изображен QR-код мобильного устройства для считывания сканером. На этой же странице, если нажать на кнопку «Показать идентификатор», появляется всплывающее окно, где указан QR-код в цифровом виде.
Успешно пройдя верификацию, избиратель видит меню выбора кандидатов. Сначала всплывает окно с информацией о периоде проведения голосования, который задается администратором, затем избиратель выбирает кандидата и нажимает на кнопку «Отдать свой голос». Далее избиратель перенаправляется на страницу «Результаты голосования» и видит только процентное соотношение всех голосов в реальном времени. С течением времени результаты будут меняться и, соответственно, процентное соотношение голосов будет обновляться вплоть до окончания проведения голосования. На этой же странице есть кнопки «Моя транзакция» и «Все транзакции». Перейдя на страницу «Моя транзакция», избиратель может убедиться, что его голос за того кандидата, за которого он проголосовал, учтен. На странице «Все транзакции» мобильного приложения избиратель видит отданные голоса (адреса избирателей), распределенные по кандидатам. Дополнительно имеется ссылка на ресурс https://etherscan.io для полной прозрачности процедуры голосования.
Если избиратель решил изменить свой голос, он может это сделать, нажав на кнопку «Изменить свой голос» на странице «Моя транзакция» в период проведения голосования. Кнопка «Изменить свой голос» возвращает избирателя на страницу «Выберите кандидата» и позволяет выбрать другого кандидата. Если проголосовавший избиратель
решит вновь зайти в приложение, то он сразу попадет на страницу «Результаты голосования». Он не сможет вновь проголосовать, но сможет просмотреть результаты и транзакции, а также переголосовать неограниченное количество раз в период проведения голосования, если есть в этом необходимость.
Смарт-контракт для голосования. Смарт-контракт представляет собой программный код [10], структура которого позволяет хранить данные в виде списка структур, одна из которых - структура голосования. В ней записывается вся основная информация: список избирателей, допущенных к голосованию; дата, время начала и окончания голосования; список всех голосов; список проголосовавших; список количества голосов для кандидата; имена кандидатов; эфиры для перечисления избирателю; операторы; администратор; список всех голосований.
Логика смарт-контракта задает правила для хранения данных и операций над ними, изменяя их внутреннее состояние [10]. Таким образом, смарт-контракт автоматически контролирует запись данных, обеспечивает исполнение функциональных обязательств участников процедуры голосования и автоматически выводит результаты голосования (рис.4).
Рис.4. Алгоритм смарт-контракта ДЭГ Fig.4. Diagram of the REV smart contract algorithm
Результаты экспериментальных исследований комплекса программных средств ДЭГ на основе блокчейн-платформы Ethereum. Продемонстрируем поэтапно разработанную методику в виде комплекса программных средств для ДЭГ на основе блокчейн-платформы Ethereum (рис.5).
Рис.5. Этапы ДЭГ с использованием блокчейн-платформы Ethereum: а - список кандидатов; б - настройки голосования; в - сообщение о верификации; г - идентификатор устройства; д - регистрация избирателя; е - процесс голосования; ж - результаты голосования; з - моя транзакция;
и - все транзакции
Fig.5. Stages of REV using Ethereum blockchain platform: a - list of candidates; b - voting settings; c - verification message; d - device ID; e - voter registration; f - voting process; g - voting results;
h - my transaction; i - all transactions
Подготовка к голосованию. Администратор регистрируется в браузере MetaMask. Перед публикацией смарт-контракта в Ethereum администратор тестирует его с помощью Solidity compiler в Remix IDE, далее добавляет оператора и создает голосование: заходит в веб-приложение администратора и создает список кандидатов (рис.5,а), задает период проведения голосования и устанавливает сумму эфиров для перевода избирателям (рис.5,б). Далее администратор выставляет приложение для голосования на сайте ЦИК.
Подтверждение личности. Пользователю мобильного приложения необходимо подтвердить свою личность (рис.5,в). Он приходит в пункт проверки личности и предъявляет оператору документ, удостоверяющий личность. Далее нажимает на знак QR-кода в правом верхнем углу экрана мобильного приложения и переходит на страницу, где отображается QR-код мобильного устройства, который доступен и в цифровом виде (рис.5,г).
Регистрация. Оператор верифицирует избирателя по удостоверению личности и спискам избирателей, допущенных до голосования, затем через веб-приложение оператора регистрирует избирателя в Ethereum, сканируя QR-код с мобильного приложения или внося идентификатор устройства вручную (рис.5,0). Логика смарт-контракта определит, что избиратель прошел верификацию и допущен к голосованию.
Процесс голосования. В мобильном приложении на странице «Выберите кандидата» кнопка «Отдать свой голос» активна в период проведения голосования, заданный администратором. Избиратель выбирает кандидата и голосует (рис.5,е). После голосования приложение перенаправляет избирателя на страницу «Результаты голосования» (рис.5,^). Чтобы изменить свой голос, избиратель переходит на страницу «Моя транзакция» (рис.5,з) и нажимает кнопку «Изменить свой голос». Далее он вновь попадет на страницу «Выберите кандидата» и выбирает другого кандидата. Изменение голоса создает новую транзакцию от избирателя в публичном реестре транзакций.
Подсчет голосов. Смарт-контракт определяет победителя, набравшего наибольшее количество голосов. При подсчете голосов учитывается последний отправленный голос избирателя.
Проверка результатов голосования. Проверить результаты голосования можно на странице «Моя транзакция» (рис.5,з), нажав на имя кандидата. Откроется публичный реестр транзакций, где можно убедиться в правильности адресации своего голоса выбранному кандидату. При переходе на страницу «Все транзакции» избиратель видит свою транзакцию, транзакции других избирателей и ссылку на ресурс https://etherscan.io (рис.5,м). По окончании проведения голосования кнопки «Отдать свой голос» и «Изменить свой голос» неактивны, что свидетельствует о завершении голосования.
В результате проведенных исследований установлено, что разработанный комплекс программных средств ДЭГ выполняет следующие функции: проводит голосование анонимно; обеспечивает одноразовую подачу голоса; позволяет изменять свой голос в период проведения голосования; автоматически подсчитывает результаты голосования; позволяет проверить правильность адресации голоса выбранному кандидату и учета голоса при подсчете результатов голосования. Также отвечает предъявляемым требованиям:
1) прозрачность - избиратель может убедиться, что его голос учтен при подсчете результатов голосования, просмотреть историю транзакций и наблюдать за результатами голосования в онлайн-режиме;
2) анонимность - процесс регистрации осуществляется с помощью QR-кода (так называемого обезличенного ГО); используется цифровая подпись на основе эллиптической кривой secp256k1;
3) непринужденность - избиратель может изменить свой голос в период проведения голосования, таким образом решается проблема давления на избирателя;
4) безопасность - благодаря алгоритму хеширования keccak256 и применению блокчейн-платформы Ethereum транзакции максимально защищены. Чем больше пользователей в Ethereum, тем эффективнее безопасность;
5) надежность - данные ДЭГ благодаря применению блокчейн-платформы Ethereum защищены от несанкционированного доступа со стороны как администратора (в приложении нет доступа к ним), так и злоумышленников;
6) децентрализованность - отсутствуют контролирующие центры, вся информация поступает через смарт-контракт в блокчейн-сеть Ethereum;
7) отказоустойчивость - блокчейн-технология построена по принципу децентрали-зованности, поэтому алгоритм методики ДЭГ продолжит свою работу при выходе одного или нескольких устройств из строя с данными ДЭГ, так как они будут реплицироваться на устройства всех участников сети Ethereum;
8) гибкость - блокчейн-платформа Ethereum имеет виртуальную машину, воспринимающую любой язык программирования (переводит смарт-контракт в байт-код, а затем отправляет результат в блокчейн);
9) масштабируемость - можно добавить (сколько необходимо) операторов для идентификации личности и регистрации избирателей;
10) доступность - избирателю не требуется учетная запись или пароль для участия в ДЭГ; интерфейс приложения автоматизирует и скрывает процесс отправки эфира на конкретный адрес Ethereum, и избиратели видят список кандидатов (напротив каждого располагается ячейка для установки маркера по выбору) и кнопку «Отдать свой голос».
Перспективы использования ДЭГ на основе блокчейн-платформы Ethereum. Рынок сбыта разработанной методики для построения ДЭГ и ее программная реализация перспективны при использовании не только в избирательной системе, но и в случаях, когда необходимо дистанционное голосование. Методика позволит обеспечить наибольшую защищенность и прозрачность процедуры голосования, а также конфиденциальность по отношению к пользователям (в отличие от сервисов, основанных на традиционных базах данных).
Среди основных сегментов сбыта разработанной методики для ДЭГ на основе блокчейн-платформы Ethereum стоит выделить следующие:
- государственные организации, представляющие региональную / городскую / районную власть, проводящие голосование для граждан;
- организации, проводящие выборы кандидатов на руководящие должности или принимающие решения внутри компании путем анонимного голосования, в котором участвуют все сотрудники;
- юридические или физические лица, проводящие дистанционные опросы на различного рода мероприятиях, проходящих в режиме онлайн.
Заключение. Проведенные экспериментальные исследования разработанного комплекса программных средств для реализации методики построения ДЭГ на основе блокчейн-платформы Ethereum способствовали решению возникающих проблем при ДЭГ.
Для дальнейшего исследования по данной теме выделим следующее направление: внедрение верификации личности в Интернете для полной автоматизации предложенной методики ДЭГ. Это даст возможность убедиться, что лицо, предоставившее документы о гражданстве, является тем же лицом, которое находится за устройством во время голосования.
Литература
1. Nakamoto S. Bitcoin: A peer-to-peer electronic cash system // United States Sentencing Commission: [Web]. URL: https://www.ussc.gov/sites/default/files/pdf/training/annual-national-training-seminar/2018/ Emerging_Tech_Bitcoin_Crypto.pdf (дата обращения: 05.01.2021).
2. Zaninotto F. The blockchain explained to web developers, part 1: the theory // Marmelab: [Web].
28.04.2016. URL: https://marmelab.com/blog/2016/04/28/blockchain-for-web-developers-the-theory.html (дата обращения: 09.01.2021).
3. KohlhaasP. Zug ID: Exploring the first publicly verified blockchain identity // Medium: [Web].
07.12.2017. URL: https://medium.com/uport/zug-id-exploring-the-first-publicly-verified-blockchain-identity-38bd0ee3702 (дата обращения: 12.01.2021).
4. Blockchain technology in online voting // FollowMyVote: [Web]. URL: https://followmyvote.com/ blockchain-technology/ (дата обращения: 06.10.2021).
5. Secure, accessible voting at your fingertips. The future of voting is mobile // Voatz: [Web]. URL: https://voatz.com (дата обращения: 20.01.2021).
6. «Активный Гражданин» на блокчейне // Активный Гражданин: [Электронный ресурс]. URL: https://ag.mos.ru/blockchain (дата обращения: 25.01.2021).
7. Polys - система безопасных онлайн-голосований // Polys: [Электронный ресурс]. URL: https://ru.polys.me (дата обращения: 30.01.2021).
8. ГОСТ 34.11-2018. Информационная технология. Криптографическая защита информации. Функция хэширования. М.: Стандартинформ, 2018. 23 с.
9. ГОСТ 34.10-2018. Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи. М.: Стандартинформ, 2018. 20 с.
10. Фролов А.В. Создание смарт-контрактов. Solidity для блокчейна Ethereum. Практическое руководство. Электронная книга. М.: ЛитРес: Самиздат, правообладатель, 2019. 258 с. Режим доступа: База ЛитРес: https://www.litres.ru/aleksandr-frolov-198/sozdanie-smart-kontraktov-solidity-dlya-blokcheyna-et/ (дата обращения: 06.10.2021).
Поступила в редакцию 13.05.2021 г.; после доработки 13.05.2021 г.; принята к публикации 11.10.2021 г.
Паскарь Владислав - магистрант Института системной и программной инженерии и информационных технологий Национального исследовательского университета «МИЭТ» (Россия, 124498, г. Москва, г. Зеленоград, пл. Шокина, 1), vlad.id.04@gmail.com
Гагарина Лариса Геннадьевна - доктор технических наук, профессор, директор Института системной и программной инженерии и информационных технологий Национального исследовательского университета «МИЭТ» (Россия, 124498, г. Москва, г. Зеленоград, пл. Шокина, 1), gagar@bk.ru
Слюсарь Валентин Викторович - кандидат технических наук, доцент Института системной и программной инженерии и информационных технологий Национального исследовательского университета «МИЭТ» (Россия, 124498, г. Москва, г. Зеленоград, пл. Шокина, 1), vslyusar@mail.ru
References
1. Nakamoto S. Bitcoin: A peer-to-peer electronic cash system. United States Sentencing Commission. Available at: https://www.ussc.gov/sites/default/files/pdf/training/annual-national-training-seminar/2018/ Emerging_Tech_Bitcoin_Crypto.pdf (accessed: 05.01.2021).
2. Zaninotto F. The blockchain explained to web developers, part 1: the theory. Marmelab. 28.04.2016. Available at: https://marmelab.com/blog/2016/04/28/blockchain-for-web-developers-the-theory.html (accessed: 09.01.2021).
3. Kohlhaas P. Zug ID: Exploring the first publicly verified blockchain identity. Medium. 07.12.2017. Available at: https://medium.com/uport/zug-id-exploring-the-first-publicly-verified-blockchain-identity-38bd0ee3702 (accessed: 12.01.2021).
4. Blockchain technology in online voting. FollowMyVote. Available at: https://followmyvote.com/ blockchain-technology/ (accessed: 06.10.2021).
5. Secure, accessible voting at your fingertips. The future of voting is mobile. Voatz. Available at: https://voatz.com (accessed: 20.01.2021).
6. «Active Citizen» on the blockchain. Aktivnyy Grazhdanin. Available at: https://ag.mos.ru/blockchain (accessed: 25.01.2021). (In Russian).
7. Polys is a secure online voting system. Polys. Available at: https://ru.polys.me (accessed: 30.01.2021). (In Russian).
8. GOST 34.11-2018. Information technology. Cryptographic data security. Hash-function. Moscow, Standartinform Publ., 2018. 23 p. (In Russian).
9. GOST 34.10-2018. Information technology. Cryptographic data security. Signature and verification processes of electronic digital signature. Moscow, Standartinform Publ., 2018. 20 p. (In Russian).
10. Frolov A.V. Creation of smart contracts. Solidity for the Ethereum blockchain. A practical guide. eBook. Moscow, LitRes: Samizdat, rightsholder, 2019. 258 p. Available at: https://www.litres.ru/aleksandr-frolov-198/sozdanie-smart-kontraktov-solidity-dlya-blokcheyna-et/ (accessed: 06.10.2021). (In Russian).
Received 13.05.2021; Revised 13.05.2021; Accepted 11.10.2021. Information about the authors:
Vladislav Pascari - Master's degree student of the Institute of System and Software Engineering and Information Technology, National Research University of Electronic Technology (Russia,124498, Moscow, Zelenograd, Shokin sq., 1), vlad.id.04@gmail.com
Larisa G. Gagarina - Dr. Sci. (Eng.), Prof., Director of the Institute of System and Software Engineering and Information Technology, National Research University of Electronic Technology (Russia, 124498, Moscow, Zelenograd, Shokin sq.,1), gagar@bk.ru
Valentin V. Slyusar - Cand. Sci. (Eng.), Assoc. Prof. of the Institute of System and Software Engineering and Information Technology, National Research University of Electronic Technology (Russia, 124498, Moscow, Zelenograd, Shokin sq.,1), vslyusar@mail.ru
Уважаемые авторы!
С правилами оформления и опубликования научных статей можно ознакомиться на нашем сайте: http://ivuz-e.ru