ВВЕДЕНИЕ 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, позволяющий удобно работать с функциями смарт-контракта.
Задачи, поставленные в начале работы были выполнены, цель выпускной квалификационной работы была достигнута.
1. Ожегов, С.И. Толковый словарь русского языка // С.И Ожегов,
Н.Ю. Шведова. - 3 изд., стер. - Москва: Азъ, 1996. - 907 с.
2. Прасти Н. Блокчейн. Разработка приложений, // Н. Прасти, В.С.
Яценков. — СПб.: БХВ-Петербург, 2018. - 256 с.
3. Равал С. Децентрализованные приложения. Технология Blockchain в
действии, // С. Равал. — СПб.: Питер, - 2017. - 192 с.
4. Тапскотт Д., Тапскотт А. Технология блокчейн - то, что движет
финансовой революцией сегодня, // Д. Тапскотт, А. Тапскотт. — М.: Эксмо, 2017. - 448 с.
5. Насколько надежно электронное голосование [Электронный ресурс]. -
Режим доступа: https://www.svoboda.org/aZ269300.html, свободный.
6. Норвегия официально отказалась от электронного голосования на
выборах: оно контрпродуктивно [Электронный ресурс]. - Режим доступа: http://www.mk.ru/politics/world/2014/06/30/norvegiya-otkazalas-
v-politike-ot-elektronnogo-golosovaniya.html, свободный.
7. Block The Vote: Could Blockchain Technology Cybersecure Elections?
[Электронный ресурс]. - Режим доступа:
http ://www. forbes .com/sites/realspin/2016/08/30/block-the-vote- couldblockchain-technology-cybersecure-elections, свободный.
8. California: The Top to Bottom Review [Электронный ресурс]. - Режим
доступа: http://www.votetrustusa.org/index.php?option=com_content&task=view&id =2554&Itemid=113, свободный.
9. IGS Votomatic Prototype Goes to the Smithsonian [Электронный ресурс]. -
Режим доступа:
https://web. archive. org/web/20070713201451/http ://www. igs .berkeley. edu/ publications/par/winter2001/votomatic. htm, свободный.
10. Kiwi. Bitcoin testnet sandbox. [Электронный ресурс]. - Режим доступа: https://testnet.manu.backend.hamburgZfaucet, свободный.
11. NSW election result could be challenged over iVote security flaw
[Электронный ресурс]. - Режим доступа:
https://www.theguardian.com/australia-news/2015/mar/23/nsw-election- result-could-be-challenged-over-ivote-security-flaw, свободный.
12. Peer-to-peer [Электронный ресурс]. - Режим доступа:
https://bitcoin.org/bitcoin.pdf, свободный.
13. Russian Hackers Acted to Aid Trump in Election, U.S. Says
[Электронный ресурс]. - Режим доступа:
https://www.nytimes.com/2016/12/09/us/obama-russia-election-hack.html, свободный.
14. Slim. Middeware-slim. [Электронный ресурс]. - Режим доступа: https://www. slimframework.com/docs/v3/concepts/middleware. html, свободный.
15. State bans electronic balloting in 4 counties / Touch-screen firm accused of 'reprehensible,' illegal conduct [Электронный ресурс]. - Режим доступа: https://www.sfgate.com/politics/article/State-bans-electronic-balloting-in-4- counties-2784975.php, свободный.
16. Top 100 Cryptocurrencies by Market Capitalization [Электронный ресурс]. - Режим доступа: https://coinmarketcap.com/, свободный.
17. Voting Machine Company Submits to Inquiry [Электронный ресурс]. -
Режим доступа:
https://www. nytimes .com/2006/10/31/us/politic s/31vote. html?_r= 1 &oref=sl ogin, свободный.
18. Why machines are bad at counting votes [Электронный ресурс]. - Режим
доступа: https://www.theguardian.com/technology/2009/apr/30/e-voting-
electronic-polling-systems, свободный.
19. Baudron, O. Practical multi-candidate election system. In proceedings of the twentieth annual ACM symposium on Principles of distributed computing, // Baudron, O., Fouque, P.A., Pointcheval, D., Stern, J., Poupard, G. — ACM, 2001. -pp. 274-283.
20. Benaloh, J. Receipt-free secret-ballot elections. In Proceedings of the twenty-sixth annual ACM symposium on Theory of computing, // Benaloh, J., and Tuinstra, D. — ACM, - 1994. - pp. 544-553.
21. Card, D. Does voting technology affect election outcomes? touch-screen voting and the 2004 presidential election // Card, D., Moretti, E.- he Review of Economics and Statistics.,-2007.-pp. 660-673.
22. Chaum, D. L. Untraceable electronic mail, return addresses, and digital pseudonyms, // Chaum, D. L. — Communications of the ACM 24, - 1981. - pp. 84-90.
23. Christian Schaupp, L. E-voting: from apathy to adoption, // Christian Schaupp, L., Carter, L.— Journal of Enterprise Information Management 18,- 2005.- pp. 586-601.
24. Cohen, J. D. A robust and verifiable cryptographically secure election scheme // Cohen, J. D., Fischer, M. J.- Yale University. Department of Computer Science, -1985.
25. Czepluch, J. S. The use of block chain technology in different application domains, // Czepluch, J. S., Lollike, N. Z., Malone, S. O. — The IT University of Copenhagen, Copenhagen, - 2015.
26. DeMillo, R. A. Proceedings of the fourteenth annual ACM symposium on Theory of computing // DeMillo, R. A., Lynch, N. A. - ACM,-1982.- pp. 383-400.
27. Fraunholz, B. E-governance: enabling the french web 2.0 revolution? In
Foundations of e-government, // Fraunholz, B., Unnithan, C. — [International Conference on E-Governance] Academic Publishing, - 2007. - pp. 344-359.
28. Fujioka, A. A practical secret voting scheme for large scale elections. In International Workshop on the Theory and Application of Cryptographic Techniques, // Fujioka, A., Okamoto, T., and Ohta, K. — Springer, - 1992. - pp. 244-251.
29. Hirt, M. Efficient receipt-free voting based on homomorphic encryption. In Advances in CryptologyEUROCRYPT 2000, // Hirt, M., and Sako, K. — Springer, - 2000. - pp. 539-556.
30. Jason, P. C. E-voting system based on the bitcoin protocol and blind signatures, // Jason, P. C., Yuichi, K. — TOM 10, - 2017.- pp. 14-22.
31. Jonker, H. Privacy and verifiability in voting systems: Methods, developments and trends, // Jonker, H., Mauw, S., and Pang, J. — Computer Science Review 10, - 2013. - pp. 1-30.
32. Juels, A. Coercion-resistant electronic elections, // Juels, A., Catalano, D., Jakobsson, M.— Towards Trustworthy Elections 6000, - 2010.- pp. 37-63.
33. Luo, F. Design and analysis of coercion-resistant electronic voting scheme. // Luo, F. - Fujian Normal University, 2005.
34. M. D. Pierro: What Is the Blockchain? [Text] / M. D. Pierro // Computing in Science & Engineering. - 2017. - PP. 92-95.
35. Macintosh, A. Characterizing e-participation in policy-making. In System Sciences, 2004, // Macintosh, A.— Proceedings of the 37th Annual Hawaii International Conference on,- 2004.- pp. 10-10.
36. Niemi, V. How to prevent buying of votes in computer elections. In International Conference on the Theory and Application of Cryptology, // Niemi, V., and Renvall, A. — Springer, - 1994. - pp. 164-170.
37. Ohkubo, M. An improvement on a practical secret voting scheme, // Ohkubo, M., Miura, F., Abe, M., Fujioka, A., Okamoto, T. — Information Security, - 1999. - pp. 771-771.
38. Okamoto, T. An electronic voting scheme. In Advanced IT Tools, // Okamoto, T. — Springer, - 1996. - pp. 21-30.
39. Peters, G. W. Understanding modern banking ledgers through blockchain technologies: Future of transaction processing and smart contracts on the internet of money. In Banking Beyond Banks and Money, // Peters, G. W., Panayi, E.— Springer, -2016. - pp. 239-278.
40. Sako, K. Receipt-free mix-type voting scheme. In Advances in CryptologyEUROCRYPT95, // Sako, K., and Kilian, J. — Springer, - 1995.- pp. 393-403.
41. Zhao, Z. How to vote privately using bitcoin. In International Conference
on Information and Communications Security, // Zhao, Z., and Chan, T.-H. H.— Springer, - 2015. - pp. 82-96.