На сегодняшний день остро обсуждается вопросы конфиденциальности данных пользователей по всему миру. С ростом информации в мире все больше сфер и институтов отказываются от бумажных носителей и переходят на цифровые носители, удаленные хранилища. Но вместе с тем возникают проблемы хранения и защиты информации от взлома, похищения, и искажения данных.
Также с развитием облачных технологий и их тесной интеграции с повседневными устройствами вынуждает пользователей доверять свои данные и информацию большим корпорациям, которые предоставляют сервисы, которыми пользуются миллионы людей по всему миру, такие как интернет покупки, социальные сети или почтовые сервисы. При таком подходе пользователь должен всецело довериться владельцу приложения. Если сервер перестаёт работать, приложение перестаёт быть доступным, в том числе, пользователь может потерять свои данные. Что хуже, владелец приложения, имея полный доступ к серверам, может без ведома пользователя обрабатывать, продавать эти данные, они могут попасть в руки к злоумышленникам. Отсюда берётся идея исключить управление приложением неким владельцем и разделить владение между всеми пользователями — что и является основой децентрализованных приложений.
Децентрализованное приложение — это приложение, функционирующее на основе технологии блокчейн и имеющая распределенную и независимую архитектуру, которое призвано решить множество актуальных проблем из разных областей, будь то хранение информации, распределение ценных ресурсов, организация выборов или урегулирование финансовых сделок.
Какова основная характеристика блокчейн? Это хранение информации в последовательно формирующихся блоках, которые создаются с помощью криптографической проверки. Важной особенностью блокчейн является консенсус, то есть взаимное подтверждение подлинности, система не имеет единого центра управления, в ней невозможно потерять или отменить новые записи, а все старые записи хранятся в неизменном виде и доступны для любого участника сети.
Есть и еще одна существенная особенность. В распределенных сетях автономные компьютеры взаимодействуют друг с другом для решения какой-то общей задачи, а в децентрализованных каждое устройство полностью автономно, оно не ставит задач перед другими узлами и не получает таких задач от них. Для подтверждения консенсуса приложение может связаться с любым узлом в сети, а не с каким-то конкретным, что и делает сеть устойчивой и безопасной.
Принципы децентрализованных приложений:
1. Код децентрализованного приложения должен быть открыт и доступен любому желающему. Также пользователи должны быть уверены, что именно этот код работает в их приложении.
2. Децентрализованное приложение должно обеспечивать доверие между пользователями, операции с ресурсами должны быть видны и понятны всем пользователям и должны исключать возможность подлога и манипуляций. За что отвечает технология блокчейн.
3. Отсутствие центральной точки отказа. При выходе из строя, блокировке какой-то техники, приложение должно продолжать работать, а данные должны оставаться доступными.
Цели данной работы является исследование существующих блокчейн систем на предмет децентрализованного развертывания приложений, изучение и разработка соответствующих решений для создания клиент- серверного децентрализованного приложения для защищенного хранения данных.
В соответствии с целью работы были поставлены следующие задачи:
1) Исследовать существующие блокчейн системы на предмет децентрализованного развёртывания приложений по ряду характеристик: алгоритмы консенсуса, уровень децентрализации, конфигурация сети, пропускная способность сети, время обработки одной транзакции, языки смарт- контрактов.
2) Изучить и стек технологий, применяемых в разработки и развертывания сети.
3) Разработать смарт-контракт для защищенного хранения данных.
4) Разработать клиент-серверного децентрализованного приложение для защищенного хранения данных
Введение.......................................................................................................... 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................................................................................................ 59
1. Техническая документация по EOS.IO v2
[Электронный ресурс] – 2018. – URL: https://github.com/EOSIO/Documentation
/blob/master/TechnicalWhitePaper.md (дата обращения 05.12.2018)
2. DPOS BFT— Pipelined Byzantine Fault Tolerance [Электронный ресурс] – 2018. – URL: https://medium.com/eosio/dpos-bft- pipelined-byzantine-fault-tolerance-8a0634a270ba (дата обращения 5.12.2018)
3. EOSIO Developer Portal [Электронный ресурс] – 2019. – URL: https://developers.eos.io/
(дата обращения 13.03.2019)
4. XRP [Электронный ресурс] – 2018. – URL: https://ripple.com/ build/transaction-cost/ (дата обращения 05.12.2018)
5. Eosdoc.io dapp development [Электронный ресурс] – 2019. – URL: https://www.eosdocs.io/dappdevelopment/ (дата обращения 13.03.2019)
6. EOS Smart Contract Security [Электронный ресурс] – 2019. – URL: https://blockgeeks.com/guides/eos-smart- contract-security/ (дата обращения 01.04.2019)
7. Документация Xamarin.Forms [Электронный ресурс] – 2019. – URL: https://docs.microsoft.com/ru- ru/xamarin/xamarin-forms/ (дата обращения 01.05.2019)