Введение 3
Глоссарий 5
1. Сравнительный анализ децентрализованных систем для хостинга
приложений 6
1.1. Алгоритмы консенсуса 7
1.2. Уровень децентрализации, конфигурация сети 9
1.3. Пропускная способность сети 16
1.4. Регистрация сети 16
1.5. Время обработки одной транзакции 17
1.6. Языки смарт-контрактов 18
1.7. Выводы 19
2. Стек технологий, применяемых в разработке приложения на платформе
EOS 21
3. Необходимый набор инструментов для написания и отладки смарт-
контрактов в сети EOSIO 22
4. Развертывание и администрирование сети EOSIO 24
5. Разработка клиент-серверного приложения для децентрализованного
хранилища данных 27
5.1. Архитектура 27
5.2. Реализация смарт-контракта приложения 28
5.3. Разработка асинхронного RPC клиента на языке C# для блокчейна
EOSIO 31
5.4. Разработка приложения на базе Xamarin.Forms 35
Заключение 44
Список используемой литературы 3
Приложение 1 46
Приложение 2 47
Приложение 3
На сегодняшний день остро обсуждается вопросы конфиденциальности данных пользователей по всему миру. С ростом информации в мире все больше сфер и институтов отказываются от бумажных носителей и переходят на цифровые носители, удаленные хранилища. Но вместе с тем возникают проблемы хранения и защиты информации от взлома, похищения, и искажения данных.
Также с развитием облачных технологий и их тесной интеграции с повседневными устройствами вынуждает пользователей доверять свои данные и информацию большим корпорациям, которые предоставляют сервисы, которыми пользуются миллионы людей по всему миру, такие как интернет покупки, социальные сети или почтовые сервисы. При таком подходе пользователь должен всецело довериться владельцу приложения. Если сервер перестаёт работать, приложение перестаёт быть доступным, в том числе, пользователь может потерять свои данные. Что хуже, владелец приложения, имея полный доступ к серверам, может без ведома пользователя обрабатывать, продавать эти данные, они могут попасть в руки к злоумышленникам. Отсюда берётся идея исключить управление приложением неким владельцем и разделить владение между всеми пользователями— что и является основой децентрализованных приложений.
Децентрализованное приложение — это приложение, функционирующее на основе технологии блокчейн и имеющая распределенную и независимую архитектуру, которое призвано решить множество актуальных проблем из разных областей, будь то хранение информации, распределение ценных ресурсов, организация выборов или урегулирование финансовых сделок.
Какова основная характеристика блокчейн? Это хранение информации в последовательно формирующихся блоках, которые создаются с помощью криптографической проверки. Важной особенностью блокчейн является консенсус, то есть взаимное подтверждение подлинности, система не имеет единого центра управления, в ней невозможно потерять или отменить новые записи, а все старые записи хранятся в неизменном виде и доступны для любого участника сети.
Есть и еще одна существенная особенность. В распределенных сетях автономные компьютеры взаимодействуют друг с другом для решения какой-то общей задачи, а в децентрализованных каждое устройство полностью автономно, оно не ставит задач перед другими узлами и не получает таких задач от них. Для подтверждения консенсуса приложение может связаться с любым узлом в сети, а не с каким-то конкретным, что и делает сеть устойчивой и безопасной.
Принципы децентрализованных приложений:
1. Код децентрализованного приложения должен быть открыт и доступен любому желающему. Также пользователи должны быть уверены, что именно этот код работает в их приложении.
2. Децентрализованное приложение должно обеспечивать доверие между пользователями, операции с ресурсами должны быть видны и понятны всем пользователям и должны исключать возможность подлога и манипуляций. За что отвечает технология блокчейн.
3. Отсутствие центральной точки отказа. При выходе из строя, блокировке какой-то техники, приложение должно продолжать работать, а данные должны оставаться доступными.
Цели данной работы является исследование существующих блокчейн систем на предмет децентрализованного развертывания приложений, изучение и разработка соответствующих решений для создания клиентсерверного децентрализованного приложения для защищенного хранения данных.
В соответствии с целью работы были поставлены следующие задачи:
1) Исследовать существующие блокчейн системы на предмет децентрализованного развёртывания приложений по ряду характеристик: алгоритмы консенсуса, уровень децентрализации, конфигурация сети, пропускная способность сети, время обработки одной транзакции, языки смарт- контрактов.
2) Изучить и стек технологий, применяемых в разработки и развертывания сети.
3) Разработать смарт-контракт для защищенного хранения данных.
4) Разработать клиент-серверного децентрализованного приложение для защищенного хранения данных
В рамках данной выпускной квалификационной работы были выполнены следующие задачи:
1) Был проведен сравнительный анализ систем на предмет децентрализованного развертывания приложений.
2) Была проведена аналитическая работа по изучению необходимого стека технологий, применяемых для разработки децентрализованных приложений.
3) Разработан смарт-контракт, предоставляющий возможность пользователям защищенно и децентрализованно хранить данные, доступ к которым имеют только сами пользователи.
4) Разработан асинхронный неблокирующий RPC клиент на языке C# для взаимодействия сетью EOS, который также предоставляет методы для взаимодействия с кошельками, управления ключами и подписания транзакций, утилиты для сериализации и десериализации объектов, генератор пар ключей для асимметричного шифрования.
5) Разработано кроссплатформенное приложение для защищенного, децентрализованного хранения данных с использование фреймворка Xamarin.Forms.
Цели данной работы - в изучении и разработке децентрализованного приложения для защищенного хранения данных - были достигнуты. Разработанное приложение имеет гибкий, расширяемый код, что позволяет добавлять новую функциональность, а также дорабатывать уже существующий код с минимальными затратами.
Как дальнейшее развитие проекта рассматривается добавление поддержки мульти кошельков и возможность регистрации, авторизации с использование аккаунтов других блокчейн платформы.