ВВЕДЕНИЕ 6
Глава 1 АНАЛИЗ ИНФОРМАЦИИ И ПОСТАНОВКА ЗАДАЧИ 8
1.1 Бумажное и электронное голосование 8
1.1.1 Первые системы электронного голосования 10
1.1.2 Проведенные масштабные электронные голосования и их критика 12
1.2 Технология blockchain 14
1.2.1 Принципы технологии blockchain 19
1.2.2 Процесс верификации в blockchain 20
1.2.3 Голосование, основанное на blockchain 23
1.3 Требования к голосованию с применением blockchain 24
Глава 2 АНАЛИЗ ПЛАТФОРМЫ BLOCKCHAIN И ПРОЕКТИРОВАНИЕ
СИСТЕМЫ ЭЛЕКТРОННОГО ГОЛОСОВАНИЯ 26
2.1 Платформа blockchain 26
2.1.1 Ethereum 26
2.1.2 Смарт-контракты 27
2.1.3 Децентрализованное приложение 28
2.2 Проектирование приложения 29
2.2.1 Функциональное моделирование приложения 29
2.2.2 Логическое моделирование системы голосования 31
Глава 3 РЕАЛИЗАЦИЯ СИСТЕМЫ ЭЛЕКТРОННОГО ГОЛОСОВАНИЯ... 34
3.1 Выбор средств разработки смарт-контракта. 34
3.1.1 Язык программирования Solidity 34
3.1.2 Интегрированная среда разработки Remix 34
3.1.3 Программная платформа Node.js 35
3.2 Разработка смарт-контракта 35
3.2.1 Базовые требования к смарт-контракту 36
3.2.2 Реализация базовых функций 36
3.2.3 Промежуточное тестирование смарт-контракта 39
3.2.4 Реализация регистрации 43
3.3 Разворачивание смарт-контракта в реальную blockchain-сеть 45
3.4 Графический интерфейс для взаимодействия с децентрализованным
приложением 48
3.5 Разработанное децентрализованное приложение 50
ЗАКЛЮЧЕНИЕ 52
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 53
ПРИЛОЖЕНИЕ А. Программный код смарт-контракта 58
ПРИЛОЖЕНИЕ Б. Информация для взаимодействия с разработанным смарт-
контрактом
Информационные технологии со временем все теснее переплетаются с человеческой жизнью. Переход из реального мира в цифровое пространство обычно влечет за собой огромное количество положительных моментов.
Голосование - основа любой успешной демократии и, поэтому, оно должно быть доступным и безопасным для всех людей. Сегодняшние наиболее распространенные бумажные системы голосования доступные и дешевые, но имеют две основных проблемы. Согласно многим экспертам, такие системы не масштабируемы (поэтому, это приводит к таким основным проблемам, как точность), и они подразумевают “уверенность в процедурной безопасности организаторов, проводящих их правильно и честно” [7].
Нередко в новостях описываются события о взломе той или иной информационной системе, которые позволяют злоумышленникам получить несанкционированный доступ к конфиденциальной информации [13]. Актуальность работы заключается в том, что данные риски можно минимизировать благодаря стремительному прогрессу криптографии, в том числе благодаря развитию технологии blockchain. Blockchain мог бы предложить повсеместное масштабируемое решение текущих и устаревших избирательных методов, обеспечив безопасное и защищенное от фальсификаций цифровое голосование.
Новизна исследования состоит в том, что многие сложные вопросы безопасности, с которыми сегодня сталкиваются электронные системы голосования, могут быть преодолены, если в их разработке применить механизмы репликации, криптографии и верификации, которые использует технология blockchain. Применение данной технологии в области голосований должно положительно сказаться на безопасности и прозрачности таких систем, а, следовательно, и на доверии пользователей к ним.
Объект исследования: технология блокчейн.
Предмет исследования: система электронного голосования.
Цель работы: разработать систему электронного голосования на основе технологии блокчейн. Для достижения цели данной выпускной квалификационной работы необходимо решить следующие задачи:
1. Проанализировать проблемы существующих решений электронного голосования и изучить теоретическую часть, касающуюся технологии blockchain.
2. Исследовать существующие платформы blockchain и средства разработки децентрализованных приложения.
3. Разработать децентрализованное приложение, решающее проблемы современных систем голосования.
В первой главе проведен анализ информации: описание предметной области, обзор технологии blockchain, выполнен обзор криптографических протоколов и электронных систем голосования.
Во второй главе проведен анализ существующих блокчейн-платформ и выполнено проектирование приложения, что позволит реализовать поставленную задачу.
Третья глава содержит разработку децентрализованной системы голосования.
В заключении формулируются выводы, полученные в процессе выполнения ВКР.
Целью данной выпускной квалификационной работы являлась разработка системы электронного голосования на основе технологии blockchain. В разработанной системе реализованы функции голосования, регистрация в системе реализована путём создания аккаунта в сети blockchain, в которой развернут смарт-контракт и добавлением пользователя в белый список того или иного созданного опроса.
В ходе выполнения работы был изучен теоретический базис по технологии blockchain, платформы для разработки децентрализованных приложений Ethereum, язык программирования Solidity, на котором происходит разработка смарт-контрактов, регулирующих условия для манипулирования данными в сети blockchain.
Проводился анализ существующих решений систем электронного голосования, выявлены их недостатки в сравнении с аналогичной системой, реализованной с помощью технологии blockchain. Кроме того, были проанализированы различные средства разработки децентрализованного приложения на платформе Ethereum, интегрированная среда разработки Remix, программная платформа node.js, специальные библиотеки node.js, протокол Ethereum go, позволяющий запустить приватную сеть блокчейн или подключиться к уже существующей.
Разработка и тестирование децентрализованного приложения осуществлялось на двух устройствах с операционными системами Ubuntu 16.04 и Windows 10.
Разработанное децентрализованное приложение позволяет запускать голосование с желаемыми объектами голосования, регистрировать аккаунты избирателям для пользования системой. Приложение имеет простой и понятный пользователю интерфейс, реализованный ПО Mist, позволяющий удобно работать с функциями смарт-контракта.
Задачи, поставленные в начале работы были выполнены, цель выпускной квалификационной работы была достигнута.