Аннотация 2
ВВЕДЕНИЕ 6
1 АНАЛИЗ ДОСТИЖЕНИЯ КОНСЕНСУСА В СУЩЕСТВУЮЩИХ ПИРИНГОВЫХ СИСТЕМАХ 9
1.1 Обзор моделей достижения консенсуса 9
1.2 Формализация требований к новому программному продукту 17
2 ПРОЕКТИРОВАНИЕ АЛГОРИТМА ДОСТИЖЕНИЯ КОНСЕНСУСА В ПИРИНГОВОЙ СЕТИ 20
2.1 Проектирование взаимодействия пользователя с узлом 20
2.2 Проектирование алгоритма достижения консенсуса 23
2.3 Реализация обмена недостающих адресов между нодами 25
2.4 Проектирование обмена недостающих транзакций в блокчейне 28
3 ТЕСТИРОВАНИЕ РАЗРАБОТАННЫХ ПРОГРАММНЫХ РЕШЕНИЙ 33
3.1 Проведение вычислительных экспериментов 33
3.2 Корректировка разработанной информационной технологии для улучшения результатов 37
ЗАКЛЮЧЕНИЕ 41
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 43
ПРИЛОЖЕНИЕ А. Листинг кода 45
Современные денежные переводы несовершенны: люди, пользующиеся банками вынуждены доверять безопасность и неприкосновенность данных центральному субъекту в виде банка. Кроме того, для межбанковских переводов требуется значительное время и оплата больших комиссий. Технология блокчейн позволяет решить вопрос доверия, обеспечить неизменность данных и операций без посредников [13].
Блокчейн позволяет при помощи подписания последующих транзакций хешем предыдущей транзакции достичь неизменность цепочки данных - как только мошенник захочет изменить какую-то транзакцию, хеш будет изменен, а цепочка будет оборвана [15]. Поскольку хеш-функции основываются в первую очередь на криптографических алгоритмах, валюты, транзакции которых подписываются при помощи криптографических хеш-функций, стали называть криптовалютами [21].
Возможность осуществления транзакций без посредников реализуется при помощи децентрализованных пиринговых сетей - каждая единица сети не привязана к какому-либо единому сетевому узлу, а производит обмен данными с другими узлами [6]. Таким образом, в каждом узле сети сохраняются полные актуальные данные всех транзакций криптовалюты.
Принцип применения пиринговых сетей, лишенных постоянных узлов и единой точки входа, был назван децентрализацией. Децентрализованные программные решения позволяют всем узлам сети получать данные о состоянии системы вне зависимости от точки входа, а система становится полностью независимой от любых регуляторов или мошенников [22].
Поскольку узлы в сети должны быть уверены в корректности получаемых данных, были внедрены специальные алгоритмы - алгоритмы консенсуса. В современных системах алгоритм консенсуса представляет собой математическую задачу, решение на которую можно найти только методом перебора решений к математической функции [16].
Актуальность данной работы состоит в разработке нового алгоритма, позволяющий уменьшить энергозатратность и скорость достижения консенсуса по сравнению с современными методами.
Новизна бакалаврской работы заключается в новом алгоритме решения достижения консенсуса.
Практическая ценность состоит в разработке нового алгоритма к достижению консенсуса в пиринговых системах.
Объект исследования - процесс функционирования децентрализованных пиринговых систем.
Предмет исследования - алгоритмы консенсуса в blockchain системе.
Цель исследования - разработка авторского алгоритма достижения консенсуса для blockchain сети.
Для достижения цели поставлены следующие задачи:
• проанализировать существующие алгоритмы консенсуса;
• выявить недостатки существующих процессов;
• сформировать требования к алгоритму консенсуса;
• разработать архитектуру новой автоматизированной системы сбора, проверки корректности копий и достижения одинаковой корректной копии во всех узлах сети;
• разработать и протестировать систему, на основе построенной архитектуры и выявленных требований.
Бакалаврская работа состоит из введения, трёх глав, заключения, списка литературы и приложений.
В первой главе анализируются существующие алгоритмы консенсуса, выявляются их недостатки и на основании полученных данных формулируются требования к разрабатываемой системе.
Во второй главе разрабатывается архитектура новой системы сбора, проверки корректности копий и достижения одинаковой корректной копии во всех узлах сети.
В третьей главе представляются результаты тестирования разработанных алгоритмов на основе построенной архитектуры и выявленных требований.
В заключении подводятся итоги исследования, формируются окончательные выводы и результаты проведенной работы.
Выполненная работа посвящена исследованию процесса, который гарантирует, что распределенные данные между элементами сети являются точными копиями. Цель работы определила ее основное направление - получение максимально возможной производительности одновременно выполняемых функций обработки данных посредством разработки алгоритма подтверждения корректности копий данных между элементами сети.
Для этого были рассмотрены и проанализированы современные децентрализованные системы и используемые ими модели достижения консенсуса. В ходе анализа были выявлены недостатки существующих технологий и определены пути решения выявленных проблем.
В процессе разработки были реализованы:
• алгоритм записи и распределения транзакций;
• механизм отправки транзакций пользователем;
• обновления списка адресов активных нод.
Было предложено и проанализировано несколько способов поиска транзакций у других нод.
Данная система позволяет защититься от известных возможных атак, обеспечить отсутствие майнинга, а также высокую скорость проведения транзакции. Система не подразумевает сложных просчетов и требует лишь достаточного для обмена соединения с сетью Интернет. Количество доступной оперативной связи и вычислительные мощности не играют значительной роли, поскольку отсутствует потребность в них.
Полученные алгоритмы были протестированы и была рассчитана их работоспособность при большом размере сети.
В результате работы была создана децентрализованная пиринговая система с реализованным алгоритмом подтверждения корректности копий данных между элементами сети. При увеличении сети до 1 миллион нод, скорость достижения консенсуса составляет 5 минут, в свою очередь в сети Bitcoin при данных условиях среднее время транзакции варьируется в районе 10 минут.
В попытках уменьшения скорости передачи транзакций, было произведено исследование, которое показало, что при архивации более 550 транзакций скорость передачи значительно увеличивается.
1. Левитин А. Алгоритмы: введение в разработку и анализ / А. Левитин, И. Красиков. - Москва: Вильямс, 2006. - 576 с.
2. Ализар А. Визуализация DDoS -атаки / А. Ализар // Хакер, 2013. - 10 с.
3. Арлоу Д. UML 2 и Унифицированный процесс/ Д. Арлоу, А. Нейштадт - СПб: Символ Плюс, 2007. - 624 с.
4. Волков Е. Численные методы / Е. Волков - Москва: Физматлит, 2003. - 248 с.
5. Вигерс К. Разработка требований к программному обеспечению / К. Вигерс, Д. Битти - СПб: BHV, 2014. - 736 с.
6. Финков М. Пиринговые сети / М. Финков - СПб: Наука и техника, 2006 - 272 с.
7. Дроздов С. Комбинаторные задачи и элементы теории вычислительной сложности / С. Дроздов - Таганрог: ТРТУ, 2000. - 58 с.
8. Кормен Т. Алгоритмы: построение и анализ / Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн - Москва: Вильямс, 2005. - 1296 с.
9. Гилл Ф. Практическая оптимизация / Ф. Гилл, У. Мюррей, М. Райт - Москва: Мир, 1985. - 509 с.
10. Таненбаум Э. Компьютерные сети. 5-е изд. / Э. Таненбаум, Д. Уэзеролл - СПб.: Питер, 2012. - 960 с.
11. Antonopoulos A. Mastering Bitcoin: Unlocking Digital Cryptocurrencies / A. Antonopoulos - Sebastopol: O ’ Reilly Media, 2014. - P. 298.
12. Burns B. Designing Distributed Systems / B. Burns - Sebastopol: O’Reilly Media, 2017 - P. 164.
13. Swan M. Blockchain: Blueprint for a New Economy / M. Swan - Sebastopol: O ’ Reilly Media, Inc, 2015 - P. 152.
14. Haddad S. Models and analysis in distributed systems / S. Haddad, F. Kordon, L. Pautet, L. Petrucci - London: Wiley, 2011. - P. 368.
15. Wattenhofer R. The Science of the Blockchain / R. Wattenhofer - Sebastopol: O ’ Reilly Media, 2016. - P. 124.
...