Разработка приложения для проверки подлинности дипломов с использованием технологии блокчейн
|
ВВЕДЕНИЕ 5
ГЛОССАРИЙ 8
1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ 9
1.1. Обзор научной литературы и аналогов 9
1.2. Обзор готовых решений для создания приложения для проверки
подлинности дипломов 12
2. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ТЕХНОЛОГИИ БЛОКЧЕЙН 19
2.1. Понятие, структура и механизм работы технологии блокчейн .. 19
2.2. Типы блокчейна 23
2.3. Понятие консенсуса 24
2.4. Алгоритмы консенсуса 25
3. ТРЕБОВАНИЯ К СИСТЕМЕ 30
3.1. Функциональные требования к системе 30
3.2. Нефункциональные требования к системе 31
3.3. Варианты использования системы 31
4. АРХИТЕКТУРА СИСТЕМЫ 34
4.1. Компоненты блокчейн приложения 35
4.1.1. Выбор платформы для реализации блокчейн приложения 35
4.1.2. Tendermint ABCI 36
4.2. Структура диплома 38
4.3. Схема базы данных 40
5. РЕАЛИЗАЦИЯ 43
5.1. Реализация блокчейн приложения 43
5.2. Реализация компонентов для создания, подписания, отзыва и
проверки дипломов 50
5.3. Реализации веб-приложения 54
5.3.1. Реализация структуры базы данных 54
5.3.2. Реализация внутренней логики 55
5.4. Реализация внешнего интерфейса веб-приложения 57
6. ТЕСТИРОВАНИЕ 60
6.1. Тестирование веб-приложения 60
6.2. Тестирование блокчейн приложения 62
ЗАКЛЮЧЕНИЕ 66
ЛИТЕРАТУРА 67
ПРИЛОЖЕНИЯ 72
ПРИЛОЖЕНИЕ А - Код в файле state.go 72
ПРИЛОЖЕНИЕ Б - Код метода Query 74
ПРИЛОЖЕНИЕ В - Код метода newTendermint 75
ПРИЛОЖЕНИЕ Г - Код классов Profile и Template 77
ПРИЛОЖЕНИЕ Д - Диплом в JSON 79
ПРИЛОЖЕНИЕ Е - Код компонентов веб-приложения 81
ПРИЛОЖЕНИЕ Ж - Код функции index 85
ПРИЛОЖЕНИЕ И - Страница с проверенным дипломом 86
ПРИЛОЖЕНИЕ К- Код в файле genesis.json 87
ГЛОССАРИЙ 8
1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ 9
1.1. Обзор научной литературы и аналогов 9
1.2. Обзор готовых решений для создания приложения для проверки
подлинности дипломов 12
2. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ТЕХНОЛОГИИ БЛОКЧЕЙН 19
2.1. Понятие, структура и механизм работы технологии блокчейн .. 19
2.2. Типы блокчейна 23
2.3. Понятие консенсуса 24
2.4. Алгоритмы консенсуса 25
3. ТРЕБОВАНИЯ К СИСТЕМЕ 30
3.1. Функциональные требования к системе 30
3.2. Нефункциональные требования к системе 31
3.3. Варианты использования системы 31
4. АРХИТЕКТУРА СИСТЕМЫ 34
4.1. Компоненты блокчейн приложения 35
4.1.1. Выбор платформы для реализации блокчейн приложения 35
4.1.2. Tendermint ABCI 36
4.2. Структура диплома 38
4.3. Схема базы данных 40
5. РЕАЛИЗАЦИЯ 43
5.1. Реализация блокчейн приложения 43
5.2. Реализация компонентов для создания, подписания, отзыва и
проверки дипломов 50
5.3. Реализации веб-приложения 54
5.3.1. Реализация структуры базы данных 54
5.3.2. Реализация внутренней логики 55
5.4. Реализация внешнего интерфейса веб-приложения 57
6. ТЕСТИРОВАНИЕ 60
6.1. Тестирование веб-приложения 60
6.2. Тестирование блокчейн приложения 62
ЗАКЛЮЧЕНИЕ 66
ЛИТЕРАТУРА 67
ПРИЛОЖЕНИЯ 72
ПРИЛОЖЕНИЕ А - Код в файле state.go 72
ПРИЛОЖЕНИЕ Б - Код метода Query 74
ПРИЛОЖЕНИЕ В - Код метода newTendermint 75
ПРИЛОЖЕНИЕ Г - Код классов Profile и Template 77
ПРИЛОЖЕНИЕ Д - Диплом в JSON 79
ПРИЛОЖЕНИЕ Е - Код компонентов веб-приложения 81
ПРИЛОЖЕНИЕ Ж - Код функции index 85
ПРИЛОЖЕНИЕ И - Страница с проверенным дипломом 86
ПРИЛОЖЕНИЕ К- Код в файле genesis.json 87
АКТУАЛЬНОСТЬ ТЕМЫ ИССЛЕДОВАНИЯ
На данный момент идет активное внедрение современных информационно-телекоммуникационных технологий во всех странах мира. Например, правительством Российской Федерации была сформирована национальная программа «Цифровая экономика Российской Федерации» в рамках которой определены основные направления развития цифрового обще - ства [7]. Создание, хранение и использование электронных дубликатов (электронных образов) бумажных документов является одной из основных целей, определяемых программой развития национального цифрового пространства.
В итоге, если рассматривать систему образования, то становится ясной одна из важнейших задач - оцифровка документооборота образовательного учреждения. Очевидно, что в ближайшее время документы об образовании (аттестаты, дипломы, сертификаты, удостоверения и т.п.) трансформируются в электронный формат. В связи с этим встает вопрос о хранении электронных документов [8].
В случае бумажных документов об образовании выявлено множество инцидентов, связанных с их подделкой. Человек не окончивший вуз имеет возможность получить документ с ложной информацией об окончании им какого-либо высшего учебного заведения. Тем самым некомпетентный человек может устроиться на рабочее место, обманув своего работодателя. Несмотря на перевод бумажных документов в электронный вид данная проблема остается актуальной.
Исходя из вышесказанного можно сделать вывод, что хранилище документов об образовании должно удовлетворять некоторым требованиям. Во-первых, цифровой реестр должен обеспечить безопасное хранение электронных документов, исключить или снизить до минимума риск их подделки. Во-вторых, иметь механизм идентификации обеспечивающий доступ пользователей к документам, например, будущий работник должен иметь 5
возможность предоставить нанимателю, в случае устройства на рабочее место, свой подлинный диплом об образовании.
Впервые технология блокчейн была предложена в 2008 году [9]. Блок- чейн можно рассматривать как публичный реестр, где вся информация хранится в списке блоков. Цепочка блоков растет по мере добавления в нее новых блоков. Для обеспечения безопасности пользователей и согласованности были использованы такие решения, как асимметричная криптография и распределенные алгоритмы консенсуса. Технология блокчейн, как правило, имеет такие ключевые характеристики как децентрализация, устойчивость, анонимность и проверяемость [3]. Благодаря этим характеристикам, технология блокчейн может быть использована для реализации системы хранения документов об образовании.
Однако, если рассматривать Российскую Федерацию, блокчейн имеет ряд проблем, которые влияют на распространение данной технологии в сфере образования, их можно разделить на три основные группы [10]:
1) технико-технологические проблемы (национальная платформа блокчейн пока что отсутствует);
2) правовые проблемы (цифровые образовательные документы в блокчейн не имеют юридической силы);
3) организационные проблемы (отсутствие централизованной управляющей структуры, координирующей «образовательный» блокчейн как единое цифровое информационное пространство).
ЦЕЛИ И ЗАДАЧИ ИССЛЕДОВАНИЯ
Целью данной работы является разработка веб-приложения для проверки подлинности дипломов с использованием технологии блокчейн.
Для достижения данной цели необходимо решить следующие задачи, перечисленные ниже.
1. Провести обзор литературы и существующих аналогов, а также готовых решений для создания приложения для проверки подлинности дипломов c использованием технологии блокчейн.
2. Определить требования к веб-приложению и разработать варианты использования.
3. Определить требования к блокчейн приложению.
4. Разработать блокчейн приложение для хранения дипломов.
5. Разработать веб-приложение для проверки подлинности дипломов с использованием технологии блокчейн.
6. Провести тестирование блокчейн приложения.
7. Провести тестирование веб-приложения.
СОДЕРЖАНИЕ И СТРУКТУРА РАБОТЫ
Работа состоит из введения, шести глав и заключения. Объем работы составляет 88 страниц, объем библиографии - 49 источников.
В первой главе проводится анализ предметной области, приведен обзор существующей литературы, относящейся к теме работы, примеры аналогов, представлен обзор готовых решений для создания системы проверки подлинности дипломов.
Во второй главе приведена теоретическая часть по теме работы.
В третьей главе описаны требования к системе, а также варианты использования системы.
В четвертой главе представлена архитектура системы.
В пятой главе представлены результаты реализации системы и описаны используемые технологии.
В шестой главе описан процесс тестирования приложения для проверки дипломов и приведен протокол тестирования основных аспектов его работы.
В заключении приводятся основные результаты работы и рассматриваются дальнейшие пути развития приложения.
ГЛОССАРИЙ
1. Алгоритм SHA-256 - представляет собой алгоритм, который принимает в качестве входных данных любые произвольные данные и создает серию уникальных цифр и букв [1].
2. Алгоритм консенсуса - это процесс получения согласованного результата группой участников [2].
3. Блокчейн (цепочка блоков) - это цифровой реестр, где все совершенные транзакции хранятся в списке блоков. Цепочка блоков растет по мере добавления новых блоков [3].
4. Верификация - процесс сравнения двух уровней спецификации средств вычислительной техники или автоматизированных систем на надлежащее соответствие [4].
5. Идентификатор - уникальный признак субъекта или объекта доступа [4].
6. Идентификация - присвоение субъектам и объектам доступа идентификатора и (или) сравнение предъявляемого идентификатора с перечнем присвоенных идентификаторов [4].
7. Транзакция - это атомарная операция над базой данных, то есть она либо завершается, либо не происходит вообще, но не может быть оставлена в промежуточном состоянии [5].
8. Частный блокчейн - это цепочка блоков, в которой, не каждый узел может участвовать в блокчейн, имеет строгое управление полномочиями по доступу к данным [6].
На данный момент идет активное внедрение современных информационно-телекоммуникационных технологий во всех странах мира. Например, правительством Российской Федерации была сформирована национальная программа «Цифровая экономика Российской Федерации» в рамках которой определены основные направления развития цифрового обще - ства [7]. Создание, хранение и использование электронных дубликатов (электронных образов) бумажных документов является одной из основных целей, определяемых программой развития национального цифрового пространства.
В итоге, если рассматривать систему образования, то становится ясной одна из важнейших задач - оцифровка документооборота образовательного учреждения. Очевидно, что в ближайшее время документы об образовании (аттестаты, дипломы, сертификаты, удостоверения и т.п.) трансформируются в электронный формат. В связи с этим встает вопрос о хранении электронных документов [8].
В случае бумажных документов об образовании выявлено множество инцидентов, связанных с их подделкой. Человек не окончивший вуз имеет возможность получить документ с ложной информацией об окончании им какого-либо высшего учебного заведения. Тем самым некомпетентный человек может устроиться на рабочее место, обманув своего работодателя. Несмотря на перевод бумажных документов в электронный вид данная проблема остается актуальной.
Исходя из вышесказанного можно сделать вывод, что хранилище документов об образовании должно удовлетворять некоторым требованиям. Во-первых, цифровой реестр должен обеспечить безопасное хранение электронных документов, исключить или снизить до минимума риск их подделки. Во-вторых, иметь механизм идентификации обеспечивающий доступ пользователей к документам, например, будущий работник должен иметь 5
возможность предоставить нанимателю, в случае устройства на рабочее место, свой подлинный диплом об образовании.
Впервые технология блокчейн была предложена в 2008 году [9]. Блок- чейн можно рассматривать как публичный реестр, где вся информация хранится в списке блоков. Цепочка блоков растет по мере добавления в нее новых блоков. Для обеспечения безопасности пользователей и согласованности были использованы такие решения, как асимметричная криптография и распределенные алгоритмы консенсуса. Технология блокчейн, как правило, имеет такие ключевые характеристики как децентрализация, устойчивость, анонимность и проверяемость [3]. Благодаря этим характеристикам, технология блокчейн может быть использована для реализации системы хранения документов об образовании.
Однако, если рассматривать Российскую Федерацию, блокчейн имеет ряд проблем, которые влияют на распространение данной технологии в сфере образования, их можно разделить на три основные группы [10]:
1) технико-технологические проблемы (национальная платформа блокчейн пока что отсутствует);
2) правовые проблемы (цифровые образовательные документы в блокчейн не имеют юридической силы);
3) организационные проблемы (отсутствие централизованной управляющей структуры, координирующей «образовательный» блокчейн как единое цифровое информационное пространство).
ЦЕЛИ И ЗАДАЧИ ИССЛЕДОВАНИЯ
Целью данной работы является разработка веб-приложения для проверки подлинности дипломов с использованием технологии блокчейн.
Для достижения данной цели необходимо решить следующие задачи, перечисленные ниже.
1. Провести обзор литературы и существующих аналогов, а также готовых решений для создания приложения для проверки подлинности дипломов c использованием технологии блокчейн.
2. Определить требования к веб-приложению и разработать варианты использования.
3. Определить требования к блокчейн приложению.
4. Разработать блокчейн приложение для хранения дипломов.
5. Разработать веб-приложение для проверки подлинности дипломов с использованием технологии блокчейн.
6. Провести тестирование блокчейн приложения.
7. Провести тестирование веб-приложения.
СОДЕРЖАНИЕ И СТРУКТУРА РАБОТЫ
Работа состоит из введения, шести глав и заключения. Объем работы составляет 88 страниц, объем библиографии - 49 источников.
В первой главе проводится анализ предметной области, приведен обзор существующей литературы, относящейся к теме работы, примеры аналогов, представлен обзор готовых решений для создания системы проверки подлинности дипломов.
Во второй главе приведена теоретическая часть по теме работы.
В третьей главе описаны требования к системе, а также варианты использования системы.
В четвертой главе представлена архитектура системы.
В пятой главе представлены результаты реализации системы и описаны используемые технологии.
В шестой главе описан процесс тестирования приложения для проверки дипломов и приведен протокол тестирования основных аспектов его работы.
В заключении приводятся основные результаты работы и рассматриваются дальнейшие пути развития приложения.
ГЛОССАРИЙ
1. Алгоритм SHA-256 - представляет собой алгоритм, который принимает в качестве входных данных любые произвольные данные и создает серию уникальных цифр и букв [1].
2. Алгоритм консенсуса - это процесс получения согласованного результата группой участников [2].
3. Блокчейн (цепочка блоков) - это цифровой реестр, где все совершенные транзакции хранятся в списке блоков. Цепочка блоков растет по мере добавления новых блоков [3].
4. Верификация - процесс сравнения двух уровней спецификации средств вычислительной техники или автоматизированных систем на надлежащее соответствие [4].
5. Идентификатор - уникальный признак субъекта или объекта доступа [4].
6. Идентификация - присвоение субъектам и объектам доступа идентификатора и (или) сравнение предъявляемого идентификатора с перечнем присвоенных идентификаторов [4].
7. Транзакция - это атомарная операция над базой данных, то есть она либо завершается, либо не происходит вообще, но не может быть оставлена в промежуточном состоянии [5].
8. Частный блокчейн - это цепочка блоков, в которой, не каждый узел может участвовать в блокчейн, имеет строгое управление полномочиями по доступу к данным [6].
В данной работе было разработано веб-приложение для проверки подлинности дипломов с использованием технологии блокчейн.
При этом были решены задачи, приведенные ниже.
1. Проведен обзор литературы и существующих аналогов, а также готовых решений для создания приложения для проверки подлинности дипломов c использованием технологии блокчейн.
2. Определены требования к веб-приложению и разработать варианты использования.
3. Определены требования к блокчейн приложению.
4. Разработано блокчейн приложение для хранения дипломов.
5. Разработано веб-приложение для проверки подлинности дипломов с использованием технологии блокчейн.
6. Проведено тестирование блокчейн приложения.
7. Проведено тестирование веб-приложения.
Планируется дальнейшее развитие проекта, где планируется реализация функций, приведенных ниже.
1. Добавление в веб-приложение управления партиями дипломов.
2. Добавление в веб-приложение данных о получателях.
3. Развертывание блокчейн приложения на большем числе машин.
При этом были решены задачи, приведенные ниже.
1. Проведен обзор литературы и существующих аналогов, а также готовых решений для создания приложения для проверки подлинности дипломов c использованием технологии блокчейн.
2. Определены требования к веб-приложению и разработать варианты использования.
3. Определены требования к блокчейн приложению.
4. Разработано блокчейн приложение для хранения дипломов.
5. Разработано веб-приложение для проверки подлинности дипломов с использованием технологии блокчейн.
6. Проведено тестирование блокчейн приложения.
7. Проведено тестирование веб-приложения.
Планируется дальнейшее развитие проекта, где планируется реализация функций, приведенных ниже.
1. Добавление в веб-приложение управления партиями дипломов.
2. Добавление в веб-приложение данных о получателях.
3. Развертывание блокчейн приложения на большем числе машин.





