ГЛОССАРИЙ 3
ВВЕДЕНИЕ 5
1. ПРОБЛЕМЫ В ОБЛАСТИ ПРОВЕДЕНИЯ ВЫБОРОВ С
ИСПОЛЬЗОВАНИЕМ БЛОКЧЕЙНА 8
1.1. Актуальность темы 8
1.2. Анализ существующих способов решения 11
1.3. Обзор программной платформы EOS.IO 15
Выводы 18
2. РАЗРАБОТКА 19
2.1. Проектирование архитектуры 19
2.2. Выбор инструментов разработки 21
2.2.1. Инструменты для разработки смарт-контракта 21
2.2.2. Инструменты для разработки веб-приложения 21
2.2.2.1. Фронтэнд 21
2.2.2.2. Бэкэнд 22
2.3. Техническая реализация 23
2.3.1. Создание смарт-контракта 23
2.3.2. Создание веб-приложения 27
Выводы 29
ЗАКЛЮЧЕНИЕ 30
Список литературы : 31
ПРИЛОЖЕНИЯ
Технический прогресс не стоит на месте, и с каждым годом появляются новые технологии, которые кардинально влияют на многие сферы общества. Одной из стремительно набирающих популярность технологий в наше время является блокчейн. Те преимущества, которые она может обеспечивать, заставляют обратить на нее свое внимание, как частных организаций, так и муниципальных и государственных институтов при решении задач, требующих децентрализации, открытости и в то же время анонимности. Спектр областей, в которых может применяться данная технология довольно широк : начиная от цифровой экономики и решения задач, связанных с банковской деятельностью до создания реестров данных в сферах образования, управления, здравоохранения и так далее.
Также в последние годы развитие технологии блокчейна включило в себя возможность создавать и реализовывать программную логику, которая будет храниться в децентрализованной системе. Это возродило понятие и обеспечило возможность создания смарт-контрактов, которые впервые были предложены Ником Сзабо в 1994 году[1]. Смарт-контракты — это самоисполняющиеся договоры с условиями соглашения между заинтересованными сторонами. Они представляют собой программный код, который функционирует в распределенной, децентрализованной блокчейн-сети. Смарт-контракты позволяют выполнять различные операции между анонимными или ненадежными сторонами без арбитража доверенной стороны[2]. Правильная реализация смарт-контрактов обеспечивается посредством механизма консенсуса. Контракты могут кодировать любые предопределенные правила и выполнять соответствующие им операции. Таким образом, смарт-контракты позволяют создавать целые экосистемы на базе блокчейна, что может стать полезной возможностью во многих областях.
Появление технических возможностей для создания смарт-контрактов, а также повышенный интерес со стороны сообщества дали огромный толчок к созданию и развитию различных блокчейн-платформ. Одной из таких является проект EOS.IO. Архитектура EOS.IO спроектирована таким образом, что позволяет масштабировать децентрализованные приложения как вертикально, так и горизонтально и запускать их на приватных и публичных блокчейн сетях.[3]. Это достигается посредством конструкции, подобной операционной системе, на которой могут быть построены приложения. EOS.IO обеспечивает поддержку аккаунтов, системы аутентификации, баз данных, асинхронного взаимодействия и распараллеливания приложений на нескольких ядрах ЦП и/или кластерах. Данные возможности позволяют потенциально масштабировать блокчейн-сеть до миллионов транзакций в секунду и устранить плату пользователей за ресурсы, что способствует быстрому и простому развертыванию децентрализованных приложений. EOS.IO спроектирован для достижения высокой пропускной способности сети. Благодаря Использованию консенсусной модели делегированного доказательства доли (DPOS), блокчейн- сети не нужно ждать завершения транзакций на всех узлах для достижения окончательности. Это позволяет значительно повысить пропускную способность сети по сравнению с другими механизмами консенсуса, что в свою очередь может стать очень полезным при решении широкомасштабных задач.
Одной из важнейших сфер применения данного решения является политическая система, а именно механизм проведения выборов. Использование блокчейна может дать позитивные плоды в решении проблемы политического абсентеизма. Согласно данным, опубликованным центральной избирательной комиссией Российской Федерации, на выборах депутатов Государственной Думы 2016 г. явка избирателей составила 47,88% [4], что является рекордно низким показателем и ставит под сомнение легитимность данного органа власти. Проведение выборов с помощью блокчейна может решить эту проблему хотя бы частично.
Целью данной квалификационной работы является проектирование и создание распределенного приложения с использованием смарт-контрактов на платформе EOS.IO, которое позволит осуществить проведение выборов с использованием блокчейна. Данное приложение должно быть в первую очередь ориентировано на проведение широкомасштабных голосований.
Для достижения данной задачи были поставлены следующие цели :
1. Провести исследование существующих проблем в сфере проведения выборов.
2. Проанализировать существующие на данный момент способы реализации платформ для голосований на основе блокчейна.
3. Разработать смарт-контракт, регламентирующий процесс голосования.
4. Реализовать веб-приложение для удобного отображения информации из блокчейна.
В данной выпускной квалификационной были рассмотрены основные проблемы, существующие на данный момент в сфере проведения выборов. Были выявлены технические способы решения данных проблем. Анализ существующих прецедентов использования блокчейна для проведения выборов позволил определить их недостатки. Исследование платформы EOS.IO позволило найти способы их решения, чтобы в дальнейшем разработать программу, реализующую процесс проведения выборов с использованием смарт- контрактов.
Для выполнения практической части был запущен локальный блокчейн с выполняющимся в нем смарт-контрактом. Также было разработано вебприложение, отображающее информацию из блокчейна.
Таким образом, задачи данной выпускной квалификационной работы были выполнены, а цель достигнута.
1. N. Szabo. Smart Contracts: Building Blocks for Digital Markets [Электронный
ресурс] // Extropy. — 1996. — №16. Режим доступа:
http: //www.fon.hum. uva.nl
2. D. Tapscott, A. Tapscott. Blockchain Revolution: How the Technology Behind Bitcoin Is Changing Money, Business, and the World. // Portfolio/Penguin. — 2016. C. 203-205.
3. EOS.IO Technical White Paper v2 [Электронный ресурс] // Электрон.
текстовые дан. — Режим доступа:
https://github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper. md
4. ЦИК обнародовал окончательные итоги выборов в Г осдуму [Электронный
ресурс] // Мария Бондаренко. — Электрон. текстовые дан. — 2016. — Режим доступа:
https://www.rbc.ru/politics/23/09/2016/57e458999a7947b5f68a8268
5. The Economist Intelligence Unit's Democracy Index [Электронный ресурс] // Электрон. текстовые дан. — 2018. — Режим доступа: https://infographics.economist.com/2018/DemocracyIndex
6. Democracy Index 2018: Me too? Political participation, protest and
democracy [Электронный ресурс] // Электрон. текстовые дан. — 2018. — Режим доступа:
https://www.eiu.com/public/topical report.aspx?campaignid=Democracy2018
7. Blockchain Voting Startup Raises $2.2M [Электронный ресурс] // Ben Miller. — Электрон. текстовые дан. — 2018. — Режим доступа: https://www.govtech.com/biz/Blockchain-Voting-Startup-Raises-22M.html
8. Активный гражданин - проект для тех, кому важно, что происходит в Москве [Электронный ресурс] // Электрон. текстовые дан. — Режим доступа: https://ag.mos.ru/home
9. Russia Is Leading the Push for Blockchain Democracy [Электронный
ресурс] // Michael del Castillo. — Электрон. текстовые дан. — Режим доступа: https://www.coindesk.com/russias-capital-leading-charge-
blockchain-democracy
10. A South Korean Province Used Blockchain Tech for Resident Voting [Электронный ресурс] // Samburaj Das. — Электрон. текстовые дан. — Режим доступа: https://www.ccn.com/south-korean-province-used- blockchain-tech-resident-voting/
11. How Estonia Brought Blockchain Closer to Citizens: GovTech Case Studies [Электронный ресурс] // Электрон. текстовые дан. — Режим доступа: https://cointelegraph.com/news/how-estonia-brought-blockchain- closer-to-citizens-govtech-case-studies
12. Документация EOSIO.CDT [Электронный ресурс] // Электрон. текстовые дан. — Режим доступа: https://github.com/EOSIO/eosio.cdt
13. Документация jQuery [Электронный ресурс] // Электрон. текстовые дан. — Режим доступа: https://jquerv.com/
14. Документация Python [Электронный ресурс] // Электрон. текстовые дан. — Режим доступа: https: //docs. python.org/3/tutorial/index.html
15. Документация Flask [Электронный ресурс] // Электрон. текстовые дан. — Режим доступа: http://flask.pocoo.org/docs/1.0/foreword/