УДК 004.056.5:004.01
В.М. Шарошкин, И.В. Сибикина, И.М. Космачева
Астраханский государственный технический университет, А страхань, 414056 e-mail: [email protected]; [email protected]; [email protected]
ВНЕДРЕНИЕ ТЕХНОЛОГИИ BLOCKCHAIN В СИСТЕМУ ЭЛЕКТРОННОГО ДОКУМЕНТООБОРОТА
За последние несколько лет мы стали свидетелями активного и последовательного развития технологий ЭДО, поощряемых как предприятиями, так и контролирующими органами. Электронный документооборот (ЭДО) - это перевод документов в безбумажную форму, где электронный документ, подписанный цифровой подписью, имеет полную юридическую силу и не требует наличия оригинала в бумажном виде. Однако степень оцифровки документов в бизнес-сфере варьируется: в то время как одни компании применяют безбумажные технологии на всем жизненном цикле документов, другие только начинают думать об их внедрении. Существует большое количество предприятий, которые все еще используют программное обеспечение для работы только со сканированными копиями, не доверяя безопасности ЭДО. Технология blockchain может повысить безопасность и доверие к системам электронного документооборота, предлагая более надежный способ учета и хранения конфиденциальных документов. Задачами исследования являются: анализ технологии blockchain, рассмотрение перспектив использования технологии в системах ЭДО, разработка прототипа системы ЭДО на blockchain, тестирование ПО.
Ключевые слова: блокчейн, документооборот, информационная безопасность.
V.M. Sharoshkin, I.V. Sibikina, I.M. Kosmacheva
Astrakhan State Technical University, Astrakhan, 414056 e-mail: [email protected]; [email protected]; [email protected]
IMPLEMENTATION OF BLOCKCHAIN TECHNOLOGY INTO THE ELECTRONIC DOCUMENT MANAGEMENT SYSTEM
Over the past few years, we have witnessed an active and consistent development of EDM technologies, encouraged by both enterprises and regulatory authorities. Electronic document management (EDM) is a converting of documents into a paperless format, where an electronic document signed with a digital signature has full legal force and does not require the original in paper form. However, the degree of document digitization in business varies: while some companies apply paperless technologies throughout the entire document lifecycle, others are just beginning to think about their implementation. There is a large number of enterprises that still use software to work only with scanned copies, not trusting the security of EDM. Blockchain technology can enhance the security and confidence in electronic document management systems by offering a more reliable way to record and store confidential documents.The objectives of the research are: analysis of blockchain technologies, consideration of the prospects for usingtechnologies in EDM systems, development of a prototype of an EDM system for block-chain, software testing.
Key words: blockchain, workflow, information security.
Технология, лежащая в основе биткойнов и других виртуальных валют, блокчейн - это открытый распределенный реестр, с помощью которого можно безопасно проводить транзакции между двумя сторонами [1].
С помощью блокчейна можно создать глобальную систему, в которой документы представлены в цифровом виде и хранятся в прозрачных общих базах данных, где они защищены от удаления, подделки и изменения. В этой системе каждое соглашение, каждый процесс, каждая задача и каждый платеж будут иметь цифровую запись и подпись, которые можно идентифицировать, проверять, хранить и передавать. Посредники, такие как юристы, брокеры и банкиры,
могут больше не понадобиться. Люди и организации могли бы свободно взаимодействовать друг с другом без особых трудностей. В этом огромный потенциал блокчейна в сфере документооборота.
На самом базовом уровне блокчейн представляет собой цепочку блоков, но не в традиционном смысле этих слов. Когда мы говорим в этом контексте слова «блок» и «цепочка», мы говорим о цифровой информации («блок»), хранящейся в общедоступной базе данных («цепочка») [1].
«Блоки» в цепочке блоков состоят из цифровых данных, в частности, из трех частей:
1. Блоки хранят информацию о транзакциях, такую как дата, время и сам документ.
2. Блоки хранят информацию о том, кто участвует в транзакциях.
3. В блоках хранится информация, которая отличает их от других блоков. Каждый блок хранит уникальный код, называемый хешем, который позволяет нам отличать его от любого другого блока. Хеши - это криптографические коды, созданные с помощью специальных алгоритмов.
Когда в блоке хранятся новые данные, он добавляется в цепочку блоков. Блокчейн, как следует из названия, состоит из нескольких блоков, связанных вместе (рис. 1).
BLOCK2 BLOCK 3
Рис. 1. Цепочка блоков
Однако для добавления блока в цепочку блоков должны произойти четыре вещи:
1. Вы должны инициировать транзакцию.
2. Эта транзакция должна быть подтверждена. В блокчейне эта работа возлагается на сеть компьютеров. Когда вы совершаете транзакцию, эта сеть компьютеров проверяет, произошла ли ваша транзакция так, как вы сказали. То есть они подтверждают детали, включая время транзакции, участников и т. д.
3. Эта транзакция должна храниться в блоке. После того, как ваша транзакция будет подтверждена как правильная, она получит «зеленый свет». Сумма транзакции в долларах, ваша цифровая подпись и цифровая подпись получателя хранятся в блоке. Там к транзакции, скорее всего, присоединятся сотни или тысячи других подобных.
4. Этому блоку необходимо присвоить хеш. После проверки всех транзакций блока ему должен быть присвоен уникальный идентификационный код, называемый хешем. Блоку также дается хеш самого последнего блока, добавленного в цепочку блоков. После хеширования блок может быть добавлен в цепочку блоков.
Когда этот новый блок добавляется в цепочку блоков, он становится общедоступным для просмотра всем - даже вам. Если вы посмотрите на блокчейн Биткойна, то увидите, что у вас есть доступ к данным транзакции, а также к информации о том, когда («Время»), где («Высота») и кем («Передано») был добавлен в блокчейн.
Технология блокчейн решает проблемы безопасности и доверия несколькими способами. Во-первых, новые блоки всегда хранятся линейно и в хронологическом порядке. То есть они всегда добавляются в конец цепочки блоков. Если вы посмотрите на блокчейн Биткойна, вы увидите, что каждый блок имеет позицию в цепочке, называемую «высотой» [1].
После того как блок был добавлен в конец цепочки блоков, очень сложно вернуться и изменить содержимое блока. Это потому, что каждый блок содержит свой собственный хеш вместе с хешем блока перед ним. Хеш-коды создаются математической функцией, которая превращает цифровую информацию в строку цифр и букв. Если эта информация каким-либо образом редактируется, изменяется и хеш-код [3].
Вот почему это важно для безопасности. Допустим, злоумышленник пытается отредактировать ваш договор о покупке в транзакции так, чтобы вам действительно пришлось платить за покупку дважды. Как только он отредактирует сумму вашей транзакции, хеш блока изменится. Следующий блок в цепочке по-прежнему будет содержать старый хеш, и злоумышленнику нужно будет обновить этот блок, чтобы замести следы. Однако это изменит хеш этого блока. И следующий, и так далее [1, 3].
Таким образом, чтобы изменить отдельный блок, хакеру необходимо будет изменить каждый блок после него в цепочке блоков. Пересчет всех этих хешей потребует огромных и невероятных вычислительных мощностей. Другими словами, как только блок добавлен в цепочку блоков, его становится очень трудно редактировать и невозможно удалить.
Чтобы решить проблему доверия, сети блокчейнов внедрили тесты для компьютеров, которые хотят присоединиться и добавить блоки в цепочку. Тесты, называемые «моделями консенсуса», требуют от пользователей «доказать себя», прежде чем они смогут участвовать в сети блокчейн. Один из наиболее распространенных примеров, используемых Биткойном, называется «доказательство работы».
В системе доказательства работы компьютеры должны доказать, что они выполнили работу путем решения сложной вычислительной математической задачи. Если компьютер решает одну из этих проблем, он получает право добавить блок в цепочку блоков. Но процесс добавления блоков в цепочку блоков, который в мире криптовалют называют «майнингом», непрост. Фактически шансы решить одну из этих проблем в сети Биткойн составляли примерно один к 17,56 триллионам в августе 2020 г. Чтобы решать сложные математические задачи с такой вероятностью, компьютеры должны запускать программы, которые требуют значительных затрат энергии [1].
Доказательство работы не делает атаки невозможными, но делает их в некоторой степени бесполезными. Если хакер хотел скоординировать атаку на блокчейн, ему нужно было бы контролировать более 50% всей вычислительной мощности в блокчейне, чтобы иметь возможность подавить всех других участников сети. Учитывая огромный размер блокчейна Биткойн, так называемая атака 51% почти наверняка не стоит затраченных усилий и практически невозможна.
Для демонстрации работы блокчейна был разработан прототип системы ЭДО. Для запуска сервера выполняется команда «руШоптат.ру <ро1!>», для запуска клиента - «руШоптат.ру <р><рой>» (рис. 2) [2].
+ Терминал
~/В1оскСНа1п >» ру±Ьо!I та!п.ру 1234 Сервер слушает порт 127.0.1.1:1234 127.Э.Э.1:4507б соединение 127.0.0.1:45078 соединение
п
+ Терминал Q. - • • •
~/BlockChaln »> python main.py 127.0.0.1 1234
Введите ваше имя : Алиса
Введите 1 для создания новой группы Введите 2 для подключения к группе
»о
+ Терминал О, - • • •
~/BlockChain »> python main.py 127.0.0.1 1234
Введите ваше имя : Боб
Введите 1 для создания новой группы Введите 2 для подключения к группе
Рис. 2. Запуск сервера и клиентов
Каждый участник вводит свое имя, после чего одним из клиентов создается группа, и секретная информация в виде ГО и пароля передается другим участникам документооборота (рис. 3).
~/BlockChatn »> python main.py 1234 Сервер слушает порт 127.0.1.1:1234 127.0.0.1:45156 соединение 127.0.0.1:45158 соединение
+ Терминал О. ■■■ 9 9 9 • + Терминал О. •■■ 9 9 9
'/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/ Введите ваше имя : Боб
Введите 1 для создания новой группы
Это Ю группы : Введите 2 для подключения к группе
11РРМС1С1Е6 > 2
Это секретный ключ группы :
| Введите Ю группы :11РИМС1С1Е6
I Введите секретный ключ группы : ЕН0А(РЕМЗРЗРЫР№Т5АИ Iм
////////// Добро пожаловать /////////// Я ////////// Добро пожаловать ///////////
Группа : иРЮОС1Е6 создана!!! Группа : иРГЖ1С1ЕС создана!!!
Ваше имя : Алиса Ваше имя : Боб
;/////////////////////////////////////// ///////////////////////////////////////
1
Рис. 3. Создание группы
Для отправки документа участникам группы вводится полный или относительный путь файла, хранящегося на компьютере (рис. 4).
+ Терминал Q, ■■■ ф ф ф
~/BlockChaln »> python main.py 1234 Сервер слушает порт 127.0.1.1:1234 127.0.0.1:45156 соединение 127.0.0.1:45158 соединение ' - Добавление блока в блокчейн
. Хеш блока: 4321c3aceeb5186dcf9b4b39calf1548bd5cb5a6ad2d8e0c353bladd3f4e2 532
Предыдущий хэш: 2bl4ecfc79ff7fd0facd61b9922865e7d8c7ab71bf12ее254с5875с0
lf09806b
Номер блока: 1
Данные блока: {"ID \u0433\u0440\u0443\u043f\u043f\u044b": "UFRNCICIEG", • . "\u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c": "\ ' u0410\u043b\u0438\u0441\u0430", "\u0441\u043e\u043e\u0431\u0449\u0435\u0 43d\u0438\u0435": "qFRw74/QoMDW7ekVzkX+MFl6Cd6vE88ucxZMzNtTaUo=">
Одноразовый номер: 2044
' .......
Это ID группы : UFRNCICIEG
Это секретный ключ группы EHOAQJEMJРJ PNPWTSARM
////////// Добро пожаловать /////////// Группа : иР№С1С1Е6 создана!!! Ваше имя : Алиса
///////////////////////////////////////
I 'Введите 1 для создания новой группы I Введите 2 для подключения к группе
и==================================
«Введите 10 группы :иРМ1С1С1Е6
Ивведите секретный ключ группы : ЕНОАС^ЕМ^РЫРМТБАИ
I
ШППППП Добро пожаловать /////////// " Группа : 1^МС1С1ЕС создана!!! Ваше имя : Боб
///////////////////////////////////////
^Алиса : otchet.docx
Е
Рис. 4. Отправка документа «otchet.docx»
При отправке документа он сохраняется в блокчейн. Документу присваивается уникальный хеш и порядковый номер (рис. 5).
+ Терминал Q. ■■■ ф ф ф
u0410\u043b\u0438\u0441\u0430", "\u0441\u043e\u043e\u0431\u0449\u0435\u0[ 43d\u0438\u0435": nqFRw74/QoMDW7ekVzkX+MFl6Cd6vE88ucxZMzNtTaUo="} Одноразовый номер: 2044
Добавление блока в блокчейн
Хеш блока: df6256979f99clbe065a393eba6bl70b2e3d57194daf4c080866d500f9al2 909
Предыдущий хэш: 4321c3aceeb518бdcf9b4b39calf1548bd5cb5aбad2d8e0c353Ыadd
3f4e2532
Номер блока: 2
Данные блока: {"Ю \u0433\u0440\u0443\u043f\u043f\u044b": "иРГООаЕС', '"\u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c": "\ и0411\и043е\и0431", "\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0 435": "0+hk6lcKfzPtWq8whpUnNGCHyNSnEkxZ2UKbj+gPKAo="} Одноразовый номер: 1033
+ Терминал Q. ■ •• • • •
Это Ю группы :
иРМ1С1С1ЕС
Это секретный ключ группы :
ЕН0А()3 EMJ Р ^МРУЛ"5А1*М
////////// Добро пожаловать /////////// Группа : 11Р1УОС1ЕС создана!!! Ваше имя : Алиса
///////////////////////////////////////
~о1:с11е1:^осх гАлиса : о^е^осх Боб : dogovor.pdf
Введите 2 для подключения к группе
> 2
Введите Ю группы :иРИМС1С1Е6
Введите секретный ключ группы : ЕН0А(РЕМ^РМР№Т5АИ М
////////// Добро пожаловать /////////// Группа : иР(Ж1С1ЕС создана!!! Ваше имя : Боб
///////////////////////////////////////
Алиса : otchet.docx dogovor.pdf -Боб : dogovor.pdf
Рис. 5. Отправка документа «dogovor.pdf»
Таким образом, внедрение технологии blockchain в систему электронного документооборота призвано повысить безопасность обмена и хранения конфиденциальных документов.
Литература
1. ТапскоттД., ТапскоттА. Технология блокчейн. - М.: Эксмо, 2018. - 448 с.
2. ЛутцМ. Изучаем Python. - СПб.: Издательский дом «Символ-Плюс», 2011. - 1280 с.
3. Панасенко С. Алгоритмы шифрования. - СПб.: БХВ-Петербург, 2008. - 577 с.