Анализ применения технологий блокчейн для разработки хранилищ данных

1.

Юрченко Роман Николаевич
Научный руководитель: к.т.н., доцент, Дзенскевич
Елена Андреевна
Выпускная квалификационная
работа на тему:
Анализ применения технологий
блокчейн для разработки
хранилищ данных
2019

2.

Цели и задачи
Цель:
Целью данной работы является исследование и анализ
применения технологий блокчейн для последующей разработки
децентрализованного приложения для хранения данных.
Задачи:
• Анализ теоретической информации о технологии блокчейн.
• Исследование особенностей блокчейна Ethereum;
• Изучение смарт-контрактов: языка разработки, средств разработки и
отладки;
• Анализ децентрализованных приложений и определение основных
требований для них;
• Анализ и выбор программных продуктов для разработки Ethereum –
приложений;
• Разработка смарт-контракта: назначение контракта, определение
методов, отладка;
• Разработка демонстрационного децентрализованного приложения.
01

3.

Хранилище и основные требования к нему
Хранилище данных - это предметно-ориентированный, интегрированный,
неизменчивый, поддерживающий хронологию набор данных, организованный для
целей поддержки принятия решений и единого места сбора и хранения данных
организации.
Требования к хранилищам данных
децентрализованных приложений:
Распределённость
Структурированность
Доступность
Удаление данных
Поддержка шардинга
Полнотекстовый поиск
02

4.

Основные элементы блокчейна Ethereum
03

5.

Аккаунты в сети Ethereum
Внешняя учётная запись
Контрактная учётная запись
<code>
<code>
<code>
• Контролируются с помощью
внешних ключей;
• Не имеют связанного с ними
кода;
• Могут отправлять сообщения
другим
внешним
учётным
записям и контрактным записям
(инициировать
новые
транзакции);
• Контролируются специальным
кодом, указанным в условиях
контракта;
• Имеют связанный с ними код;
• Не
могут
самостоятельно
инициировать новые транзакции
04

6.

Алгоритмы криптографии Ethereum
SHA-3 – алгоритм хеширования
ETHASH – алгоритм доказательства работы (поиск параметра nonce).
Основное отличие ETHASH – усложнения поиска nonce.
Шаг 1 – создание DAG-ресурса (большое количество псевдослучаных
последовательностей, которые практически невозможно перебрать все за раз).
Шаг 2 – выбор из DAG-ресурса необходимого числа последовательностей.
Шаг 3 – перебор выбранных значений для поиска подходящего значения nonce.
05

7.

Smart-контракты
Смарт-контракт – это некий компьютерный алгоритм в среде блокчейн, для заключения
какого-либо соглашения между участниками договора и служащий для обеспечения
исполнения условий договора без участия третьих лиц.
Классификация
По среде
выполнения:
• централизованная;
• децентрализованная.
По способу
задания и
выполнения
условий
• полные по Тьюрингу
смарт-контракты;
• неполные по Тьюрингу
смарт-контракты.
По способу
инициации:
• автоматическое
выполнение при
наступлении
определённых условий;
• ручное – через создание
транзакций.
По уровню
приватности
• полностью открытые;
• частично открытые;
• полностью
конфиденциальные.
В узком смысле – это набор функций и данных, находящихся по определённому адресу в
блочейне.
06

8.

Средства разработки smart-контрактов
Truffle
Автоматизированное
тестирование контрактов
Наличие генераторов для
создания новых контрактов и
тестов
Консоль для удобной работы
со
скомпилированными
контрактами
Компиляция
и
развёртывание контрактов в
тестовых сетях.
Remix
remix-debug – отладка;
remix-tests –модульное
тестирование;
remix-astwalker – инструмент
для анализа solidity AST;
remixd CLI – позволяет
получить доступ к локальным
элементам Remix
Расчёт стоимости транзакций
и вызовов методов
контракта.
Развертывание контракта в
тестовых сетях.
Solc
Компиляция контракта на
языке Solidity в бинарный
код;
выделение содержимого ABI
в среде Node.js.
07

9.

Remix IDE. Отладка и тестирование смарт-контракта
08

10.

Тестовые сети отладки
Назначение – разработка и тестирование
децентрализованных приложений.
Свойства:
• бесплатные;
• криптовалютные средства не имеют реальной
стоимости;
• собственные механизмы получения средств;
• собственные интерфейсы.
Развернуты:
• локально;
• в сети интернет.
Позволяют:
• создать\выбрать зарегистрированного пользователя;
• определить текущий баланс пользователя;
• перевести средства другому пользователю;
• получить средства от другого пользователя;
• загрузить контракт в сеть;
• вызывать свойства и методы контракта.
09

11.

Основные требования к децентрализованным приложениям
Централизованное
приложение
• Открытый исходный код
Децентрализованное
приложение
• Внутренняя валюта
• Децентрализованный консенсус
• Отсутствие центральной точки отказа
10

12.

Архитектура и структура демонстрационного приложения
11

13.

Преимущества использования Mongo DB
• Документо-ориентированность
• Специальные запросы
• Индексация
• Репликация
Реляционная БД
MongoDB
База данных
База данных
• Балансировка нагрузки
Таблица
Коллекция
Ряд
Документ
• MongoDB.GridFS
Колонка
Поле
Объединение таблиц
Встроенные документы (embedded)
Первичный ключ (primary key)
Первичный ключ (primary key)
• Агрегация операций
По умолчанию MongoDB генерирует
Default key_id
12

14.

Современная разработка веб-приложений
13

15.

Интерфейс децентрализованного приложения
14

16.

Заключение
В соответствии с поставленной целью были решены следующие задачи:
• Собрана и проанализирована теоретическая информация о технологии
блокчейн и основанных на ней продуктах;
• Изучен и проанализирован алгоритм смарт-контрактов;
• Проведён анализ децентрализованных приложений и определены
основные требования для них;
• Проанализированы
и
выбраны
средства
разработки
децентрализованных приложений;
• Разработано децентрализованное приложение.
15
English     Русский Правила