Академический Документы
Профессиональный Документы
Культура Документы
КУРСОВАЯ РАБОТА
Научный руководитель
доц., канд. физ-мат. наук. _____________________________В. В. Подколзин
(подпись, дата)
Нормоконтроллер
ст. преп. _____________________________________________ А. В. Харченко
(подпись, дата)
Краснодар 2017
СОДЕРЖАНИЕ
Реферат.....................................................................................................................3
Введение4
1 История создания технологии Блокчейн............................................................5
2 Устройство работы технологии Blockchain.6
2.1 Одноранговые (пиринговые сети) сети........................................................7
2.2 Структура блока.............................................................................................8
2.Структура транзакции......................................................................................9
2.Цифровые подписи......................................................................................10
2.Входы и выходы транзакций.......................................................................11
2.Добавление блоков в цепочку. Майнинг.......................................................12
2.Непреднамеренное разветвление цепи......................................................14
3 Реализация технологии блокчейн.....................................................................17
3.1Обзор аналогичных продуктов....................................................................17
3.2 Описание концепции разрабатываемого программного обеспечения....18
3.3 Описание технологий, выбранных для разработки..................................19
3.4 Описание интерфейса и работы компонентов приложения.....................20
3.4.1 Обозреватель блоков..............................................................................20
3.4.2 кладка Мой кошелёк..............................................................................21
3.4.3 оздание новой транзакции.....................................................................23
3.4.4 правление майнингом............................................................................25
Заключение26
Список использованных источников27
2
ВВЕДЕНИЕ
3
1 История создания технологии Блокчейн
4
2 Устройство работы технологии Blockchain
5
Сеть с клиент-серверной архитектурой подразумевает централизованный
контроль данных и доступа. Вся системная логика и информация скрыты
внутри сервера, что позволяет снизить требования к производительности
клиентских устройств и обеспечить высокую скорость обработки данных, но
такая сеть обладает низкой отказоустойчивостью.
В основе технологии блокчейн лежат одноранговые или
децентрализованные сети. Такая сеть не имеет главного устройства, и все
участники имеют равные права. В такой модели каждый пользователь является
не только потребителем, но и сам становится поставщиком сервиса.
Преимуществом такой системы является доступность данных: нет единой
точки точки отказа, как в случае с базой данных, расположенной на одном
сервере и высокая отказоустойчивость: при прекращении функционирования
одного или нескольких узлов работоспособность сети не нарушается.
6
Все хеширующие функции должны отвечать следующим требованиям:
1. Весь доступный диапазон хешей используется по максимуму. То есть,
если на хеш отведено 32 байта, то разные данные дают максимально
разнообразный хеш, который может являться совершенно любой комбинацией
битов.
2. Любое, даже самое незначительное, изменение входных данных
должно давать другой хеш.
На практике возможны случаи, при котором хеш-функция преобразует
несколько разных сообщений в одинаковые сводки - это называется коллизией.
Вероятность возникновения коллизий используется для оценки качества хеш-
функций и должна стремиться к минимуму.
Хеш используется для того, чтобы быстрее отличать одни данные от
других без необходимости сравнивать каждый бит этих данных. Достаточно
обработать эти данные один раз (вычислить их хеши) и можно сравнивать
только их, а это гораздо быстрее.
Каждый блок состоит из заголовка и списка транзакций представленных,
корнем хеш-дерева Меркла. Заголовок блока включает в себя свой хеш, хеш
предыдущего блока и дополнительную служебную информацию (рисунок 3).
7
вершины — результаты сложения значений связанных вершин[3] (Рис. 4).
8
получателя и количество средств для перевода (рисунок 5).
9
открытого ключа адресата. Расшифровать это секретное сообщение получатель
может только, используя закрытый ключ из пары с открытым, которым оно
было зашифровано. В то же время сообщение зашифрованное закрытым
ключом отправителя, может быть расшифровано только при помощи
соответствующего открытого ключа из пары с закрытым.
Открытый и закрытый ключи связаны друг с другом при помощи
некоторых математических отношений. Открытый ключ реально вычислить на
основе закрытого ключа, а вот обратное преобразование требует невозможного
на практике объема вычислений.
Таким образом, асимметричное шифрование используется в блокчейне
для аутентификации отправителей и обеспечения целостности транзакций.
10
между несколькими получателями. Это очень важное свойство т.к. использовать
каждую транзакцию в качестве входа можно только один раз.
В том случае когда сумма входов транзакции больше чем сумма выходов
разница либо помещается в отдельный выход, адресуемый отправителю
средств, либо становится комиссией за транзакцию (transaction fee).
Рассмотрим пример транзакции с двумя входами и двумя выходами
изображённой на рисунке 6.
11
2.4 Добавление блоков в цепочку. Майнинг.
12
Когда один из майнеров подбирает хеш, новый блок отсылается всем
узлам сети, которые проверят действителен ли блок, проверив все
содержащиеся в нём транзакции, и добавят его в свою копию блокчейна. В
качестве награды за майнинг на адрес майнера, подобравшего хеш
автоматически формируется, транзакция, с вознаграждением.
Награда за майнинг состоит из вознаграждения за «добычу» блока,
которое определённого в системе и суммы комиссий всех транзакций входящих
в блок. Время появления нового блока регулируется сложностью
хеширования — необходимым количеством ведущих нулей в хеше. Сложность
подбирается системой так, чтобы новый блок появлялся примерно раз в 10
минут и увеличивается пропорционально суммарной вычислительной
мощности всех майнеров сети.
13
часть другой действительный блок и возникнет два разных состояния блокчейна
(рисунок 9) в одно и то же время. Такая ситуация называется непреднамеренной
развилкой.
14
Из-за возможности возникновения подобной ситуации, в блокчейне
определён параметр, называемый необходимой глубиной блока. Этот параметр
определяет необходимое количество блоков, которые должны быть добавлены
после текущего, чтобы транзакции в этом блоке считались исполненными.
Правило, согласно которому побеждает самая длинная цепь, в сочетании с
тем фактом, что требуется огромная вычислительная мощность для добавления
блоков в цепочку, делает блокчейн невероятно безопасным. Практически
единственный способ атаковать сеть — это вернуться к какому-либо блоку в
блокчейне, и начать формировать с него новую цепочку блоков. Однако, для
этого злоумышленнику понадобится вычислительная мощность, большая чем
вся объединенная сеть майнеров.
15
3 Реализация технологии блокчейн
16
3.2. Описание концепции разрабатываемого программного обеспечения
17
Рисунок 11 –
Гибридная сеть
Координационный сервер выполняет задачи контроля за состоянием
сети и предоставления списка активных участников сети.
18
Рисунок 12 — Модули приложения и связи между ними
19
популярная библиотека BouncyCastle, включающая функции генерации пар
ключей и цифровых подписей на их основе, а так же включающая реализацию
хеш-функции Scrypt.
Сериализация данных для последующей отправки через сеть
осуществляется в приложении с помощью библиотеки ApacheSerializationUtils.
20
помощью которого он может совершать транзакции и отслеживать изменения
баланса.
Главное окно приложения содержит основные элементы управления,
сгруппированные по вкладкам: Обзор, Мой кошелёк, Новая транзакция и
Майнинг.
21
Рисунок 15 – Вкладка Мой кошелёк
Вкладка мой кошелёк(рисунок 15) предоставляет пользователю
возможность просмотреть историю всех исходящих и входящих транзакций его
кошелька, узнать свой баланс и идентификатор кошелька. Идентификатор
кошелька служит адресом для получения и перевода средств при создании
транзакции.
22
Рисунок 16 – Вкладка Новая транзакция
Элементы управления для создания транзакции находятся на вкладке
новая транзакция (рисунок 16). Для создания новой транзакции пользователь
должен заполнить форму составления транзакции, в соответствии с указанными
на странице правилами. По нажатию на кнопку подтвердить будет выведено
диалоговое окно предлагающее пользователю проверить и подтвердить
введённые данные, либо диалоговое окно сообщающее о ошибке в составлении
транзакции. Ошибкой в составлении транзакции может являться как
неправильное заполнение полей, так и нехватка средств.
При выборе отправки транзакции с комиссией, можно указать размер
комиссии включённой в транзакцию. В этом случае средства для оплаты
комиссии будут сняты со счёта пользователя сверх суммы перевода. Если
оставить поле пустым то, размер комиссии будет составлять 0.5% от суммы
перевода.
После подтверждения транзакции она отправляется в список
необработанных транзакций и ожидает включения в следующий блок.
23
Рисунок 17– Вкладка Майнинг
Вкладка майнинг(рисунок 17) включает в себя элементы управления для
создания и майнинга блоков. В текстовом поле «Необработанные транзакции»
отображаются транзакции, которые ещё не были включены в блокчейн.
Нажатие на кнопку Обновить посылает в пул запрос об обновлении
списка необработанных транзакций. Кнопка создать блок отвечает за
конфигурирование нового блока. При её нажатии создаётся новый блок, в
который помещается 10 необработанных транзакций из списка, а в текстовое
поле «Данные о новом блоке» помещается информации о данном блоке.
При нажатии кнопки Добыть блок в отдельном потоке начинается
процесс майнинга сконфигурированного блока. При успешной добыче блока,
новый блок рассылается всем активным узлам цепи, а в клиентском окне
появляется уведомление о успешном создании нового блока.
24
ЗАКЛЮЧЕНИЕ
25
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
26