Словарь терминов 4
Введение 7
1. Теоретическая часть 10
1.1. История создания технологии блокчейн 10
1.2. Основы технологии блокчейн 11
1.3. Достоинства и недостатки технологии блокчейн 13
1.4. Основы платформы Ethereum 15
1.5. Преимущества и недостатки платформы Ethereum 17
1.6. Смарт-контракты и их принцип работы 18
1.7. Преимущества и недостатки смарт-контрактов 20
1.8. Принципы работы оракулов 23
1.9. Типы оракулов 25
1.10. Проблемы, связанные с использованием оракулов 26
2. Разбор структуры приложения 28
2.1. Инструменты для разработки 28
2.2. Постановка задачи 30
2.3. Обоснование выбора технологии и обзор существующих решений 33
3. Программная реализация 36
3.1. Принципы разработки смарт-контрактов 36
3.2. Разработка контракта клиента 41
3.3. Разработка оракула 44
3.4. Компиляция и запуск смарт-контрактов 46
3.5. Тестирование взаимодействия смарт-контрактов клиента и оракула 50
3.6. Тестирование функциональности смарт-контрактов
3.7. Разработка клиентского приложения 54
3.8. Обзор экранов пользовательского интерфейса 57
3.9. Запуск в сети ropsten 65
Заключение 70
Список использованных источников 72
Приложение 1 75
Приложение 2 86
Приложение 3 94
В современном мире способы осуществления сделок купли-продажи являются несовершенными. Классический контракт представляет собой устное или письменное соглашение с набором условий, а выполнение условий контракта гарантирует государство. Если одна из сторон не соблюдает условий соглашения, то суд определяет правонарушителя и обязывает их нести ответственность. Такие контракты постоянно встречаются в быту: при аренде квартиры, страховании автомобиля или трудоустройстве. С ними связаны некоторые трудности. Во-первых, составлять текст документа должен специалист, иначе в условиях контракта могут остаться неточности. Во-вторых, важным нюансом является наличие судьи, который разрешает споры между сторонами соглашения. К тому же, само по себе судебное разбирательство требует времени и денег. Поэтому такие сделки оказываются достаточно сложными в реализации и всегда имеется риск неоднозначной трактовки условий договора или несправедливого решения суда. На сегодняшний день существует технология, позволяющая избавиться от данной проблемы - это смарт- контракты. Они способны значительно упростить и обезопасить многие сферы жизни, что делает их разработку перспективным направлением.
Актуальность смарт-контрактов состоит в том, что они позволяют избавиться от посредников в виде юристов и нотариусов при заключении договоров, поскольку могут самостоятельно проверять условия сделки и подтверждать их. Смарт-контракты основаны на технологии блокчейн, которая обеспечивает общедоступность данных для каждого участника сети, их максимальную защищённость, высокий уровень доверия пользователей к системе и открытость при передаче информации.
Смарт-контракту зачастую необходимо взаимодействовать с внешним миром для получения некоторой информации. Для реализации такого взаимодействия используются оракулы - сервисы, которые отвечают за подключение к источнику данных. С помощью оракула смарт-контракт получает доступ к информации в онлайн-режиме и может узнать текущий курс валют, изменение цен, статус платежа. Оракулы сообщают смарт- контракту о наступлении того или иного события, которое влияет на исполнение программного кода.
Целью выпускной квалификационной работы является разработка оракула - сервиса с необходимым набором функционала, позволяющего смарт-контрактам, развернутым в тестовой сети Ropsten, при обращении к оракулу получать информацию из внешнего мира. Для достижения указанной цели в выпускной квалификационной работе ставятся следующие задачи:
1) Изучение основных принципов и особенностей устройства технологии блокчейн, оракулов, смарт-контрактов и децентрализованных приложений;
2) Обзор существующих блокчейн решений, а также изучение методов взаимодействия смарт-контрактов с оракулами. Выбор предметной области для разработки оракула и определение требований к сервису;
3) Разработка оракула, предоставляющего информацию о спортивных матчах по боксу, а также информацию о том, кто их выиграл;
4) Создание смарт-контракта клиента, с помощью которого пользователи делают ставки на спортивные матчи, информация о которых получена от оракула;
5) Тестирование взаимодействия смарт-контракта клиента и оракула;
6) Создание децентрализованного клиентского приложения для взаимодействия пользователя со смарт-контрактом.
Объектом выпускной квалификационной работы является технология смарт-контрактов, основанная на децентрализованной системе блокчейн, а также сервис-оракул, с помощью которого смарт-контракт получает информацию из внешнего источника.
Предметом выпускной квалификационной работы является платформа для ставок на матчи по боксу, созданная на основе технологии смарт- контрактов, и получающая информацию о матчах, а также сведения о результатах поединков от сервиса-оракула, взаимодействующего с внешним миром.
Практическая ценность и актуальность выпускной квалификационной работы заключается в создании программного продукта, который использует новые и перспективные технологии и обеспечивает безопасность и надежность, предотвращает попытки мошенничества и гарантирует прозрачность процесса ставок.
В ходе выполнения работы была создана платформа для ставок на матчи по боксу, цель которой - сделать процесс ставок более надежным, прозрачным и привлекательным для пользователя. Для обеспечения безопасности системы, предотвращения мошенничества и гарантирования прозрачности при осуществлении ставок использовалась новейшая на сегодняшний день технология - технология смарт-контрактов, основанная на блокчейне. Для коммуникации с реальным миром был разработан оракул, который поставляет данные для других смарт-контрактов, а также реализовано их взаимодействие. В результате данная работа в полной мере реализует все цели и задачи, поставленные на этапе планирования, а именно:
1) Была проведена аналитическая работа по изучению технологий, необходимых для разработки смарт-контрактов и децентрализованного приложения;
2) Разработан оракул, предоставляющий информацию о спортивных матчах, а также информацию о том, кто их выиграл;
3) Разработана и опубликована в тестовой сети Ropsten система смарт- контрактов, с помощью которых пользователи делают ставки на спортивные матчи, информация о которых получена от оракула;
4) Разработана клиентская часть децентрализованного веб-приложения с использованием библиотеки Nethereum;
5) Успешно протестирована работоспособность приложения.
Конечной целью является децентрализованное приложение, позволяющее пользователю взаимодействовать со смарт-контрактом, которая была успешно достигнута. Таким образом, цели и задачи выпускной квалификационной работы были выполнены. В процессе разработки были применены одни из самых современных технологий разработки смарт- контрактов на основе Truffle и с использованием языка Solidity с целью достижения наиболее оптимальных результатов, обеспечивающих
масштабируемость и производительность. Сначала было проведено исследование предметной области, рассмотрены готовые продукты уже существующих систем (существующие решения), проанализированы их функционал и возможности, найдены плюсы и минусы, сделаны необходимые выводы для будущей разработки собственной системы.
Также нельзя не сказать об актуальности и практической значимости разработки программного приложения, которая заключается в сокращении временных затрат и человеческих ресурсов, гарантии защиты от изменений и потерь данных, что повышает эффективность работы системы. Отмечается перспективность направления в использовании смарт-контрактов, поскольку такие системы могут быть полезными для безопасного совершения сделок, передачи информации, подписания документов, а взаимодействие таких систем с оракулами играет ключевую роль в практическом применении смарт-контрактов, поскольку оракулы являются важным звеном в экосистеме любого блокчейна.