Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 18(314)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6, скачать журнал часть 7, скачать журнал часть 8, скачать журнал часть 9, скачать журнал часть 10

Библиографическое описание:
Судаков А.Н. МЕССЕНДЖЕР НА ОСНОВЕ ТЕХНОЛОГИИ BLOCKCHAIN // Студенческий: электрон. научн. журн. 2025. № 18(314). URL: https://sibac.info/journal/student/314/372728 (дата обращения: 15.06.2025).

МЕССЕНДЖЕР НА ОСНОВЕ ТЕХНОЛОГИИ BLOCKCHAIN

Судаков Антон Николаевич

студент, кафедра «Защита информации», Московский государственный технический университет,

РФ, г. Москва

Якушкин Михаил Викторович

научный руководитель,

старший преподаватель, кафедра «Защита информации», Московский государственный технический университет,

РФ, г. Москва

A MESSENGER BASED ON BLOCKCHAIN TECHNOLOGY

 

Anton Sudakov

student, Department of Information Security, Bauman Moscow State Technical University,

Russia, Moscow

Mikhail Yakushkin

scientific supervisor, senior lecturer, Department of Information Security, Bauman Moscow State Technical University,

Russia, Moscow

 

АННОТАЦИЯ

Развитие технологии блокчейн в последние годы позволило использовать её в различных сферах жизни, таких как финансовая, государственная или медицинская. В статье рассматривается, можно ли применить блокчейн, как основу для программы для повседневного использования, такой, как мессенджер.  Далее кратко объясняется, что из себя представляет блокчейн и смарт-контракты и описывается, каким образом построен мессенджер. Описывается, какая часть функций мессенджера реализована в блокчейне, какие недостатки блокчейна закрывает криптография и, также, приводится краткое сравнение с другими похожими мессенджерами.

ABSTRACT

The development of blockchain technology in recent years has made it possible to use it in various areas of life, such as financial, governmental, or medical. The article examines whether blockchain can be used as the basis for a program for everyday use, such as messenger. It further briefly explains what blockchain and smart contracts are and describes how the messenger is constructed. It outlines which functions of the messenger are implemented in the blockchain, which disadvantages of the blockchain are addressed by cryptography, and also provides a brief comparison with other similar messengers.

 

Ключевые слова: блокчейн, мессенджер, смарт-контракт, криптография, передача данных, виртуальная машина эфириум.

Keywords: blockchain, messenger, smart contract, cryptography, data transfer, Ethereum virtual machine.

 

ВВЕДЕНИЕ

Блокчейн всё чаще начинает появляться в различных статьях и новостях в связке обменом валют или другими экономическими терминами. Это представляет блокчейн как что-то, связанное с финансами, что нигде больше не применить. При этом, блокчейн, в первую очередь, является общим для всех хранилищем данных, в котором, при этом, пользователи сами определяют, как и какие данные хранить и каким пользователям показывать [1, с. 1].

Взяв за основу идею о том, что с помощью блокчейна может не только совершать финансовые операции, для проверки, насколько хорошо он подойдет для повседневных задач, было решено создать мессенджер, который будет построен на смарт-контрактах EVM.

BLOCKCHAIN

Блокчейн представляет собой открытую базу данных, распределенную между несколькими компьютерами сети. Данные в этой базе хранятся в, так называемых, блоках. Пользователи совершают различные операции в сети, такие как переводы криптовалют, каждая операция транслируется по всей сети, компьютеры-генераторы блоков собирают такие операции и формируют из них блок. После генерации блок рассылается между всему участниками сети, которые добавляют его в конец существующей цепочки [2].

ETHEREUM

Ethereum представляет собой блокчейн, использующий протокол proof-of-stake и содержащий внутри себя виртуальный компьютер с различными состояниями, называемый Ethereum Virtual Machine (EVM). Участник сети, совершая транзакцию, изменяет состояние локального EVM и после подтверждения транзакции сообщает новое состояние другим участникам [3].

Также, отличием Ethereum от того-же Bitcoin является возможность, благодаря EVM, создавать участниками собственные функции для взаимодействия, называемые смарт-контракты.

СМАРТ-КОНТРАКТЫ

Смарт-контракты являются пользовательскими программами, расширяющими для участников возможности по взаимодействию между собой и с сетью. Смарт-контракты могут быть абсолютно разными, от простого сохранения в сети какой-то заметки с последующим её выводом по запросу до проведения голосования [4].

МЕССЕНДЖЕР

Мессенджер позволяет пользователям общаться между собой, используя блокчейн вместо системы передачи и хранения сообщений. В программе отсутствует подключение к каким-либо серверами и базам данных и всё общение происходит через функции смарт-контрактов. Общая схема возможностей работы мессенджера представлена на рисунках 1 и 2.

 

Рисунок 1. Схема создания переписок

 

Рисунок 2. Схема взаимодействия с переписками

 

  1. Смарт-контракт переписки

Смарт-контракт переписки отвечает за отправку, получение и хранение сообщений. Контракт создается пользователем с помощью вызова функции создания контракта с передачей ей адреса собеседника.

Сохранение переписки происходит в два этапа, сначала создается контракт переписки, в нём определяются необходимые для работы параметры, такие как адреса первого и второго собеседника и открытые ключи собеседников. После адрес созданного контракта отправляется в контракт Хранилища, общий для всех пользователей. Общий вид создания переписки приведен на рисунке 1 в ветке «Создание переписки»

При удачном создании новая переписка отображается на странице пользователя, откуда ему доступен выбор этой переписки для начала общения. Схема создания переписки представлена на рисунке 3.

 

Рисунок 3. Схема создания переписки

 

Пользователь А при отправке сообщения вызывает функцию добавления сообщения во временное хранилище контракта переписки. Пользователь Б, при запросе просмотра новых сообщений, вызывает функции скачивания сообщений из хранилища, формирования из них JSON структуры и добавления структуры в NFT для последующей её обработки и вывода сообщений. Схема обмена сообщениями представлена на рисунке 4.

 

Рисунок 4. Схема обмена сообщениями

 

Если на описанных этапах не было ошибок, то, после вывода сообщений пользователю Б, в сеть автоматически отправляется команда на удаление прочитанных сообщений из временного хранилища контракта и удаление NFT, содержащего сообщения.

  1. Смарт-контракт хранилища

Хранилище представляет собой общее для всех участников сети пространство, в котором хранятся все созданные переписки в формате: Пользователь А – Пользователь Б – Адрес контракта переписки.

Пользователи могут свободно обращаться к данному контракту для получения переписок, но контракт вернет список переписок только при условии, что адрес обращающегося пользователя присутствует на позиции пользователя А или Б.

Также, с помощью данного контракта в программе реализованы функции добавления контракта переписки, проверки существования контракта переписки, получения списка переписок и удаления контракта переписки.

Важно отметить, что удаление контракта переписки подразумевает не классическое удаление, а очистку временного хранилища контракта переписки от находящихся в нём сообщений и удаление адреса контракта переписки из списка переписок контракта хранилища.

  1. Смарт-контракт NFT

NFT является инструментом для передачи сообщения из временного хранилища контракта переписки получателю. В NFT создается JSON структура, в которой отправитель помечается как Sender и сообщение message. После создания NFT на компьютере получателя из структуры берутся сообщения и выводятся в окно переписки, а в сеть отправляется команда на удаление данного NFT.

КРИПТОГРАФИЯ

Так как сообщение при отправке является входным параметром для функции смарт-контракта, при создании транзакции оно отображается в теле транзакции в виде байт, которые легко можно перевести обратно в текст.

Чтобы исправить эту особенность используется криптография Ethereum. При создании кошелька пользователя с помощью алгоритма создания цифровой подписи на эллиптических кривых (ECDSA) создается пара открытого и закрытого ключей. Закрытый ключ остается у пользователя, а открытый преобразуется и становится адресом его кошелька.

В Ethereum для создания пар ключей используется нестандартная эллиптическая кривая secp256k1, из-за чего встроенные библиотеки golang не распознают её при шифровании. Также, ECDSA, являясь алгоритмом создания цифровой подписи, нельзя использовать для шифрования. Для решения данной проблемы используется совместимая с ECDSA схема шифрования на открытых ключах, основанная на эллиптических кривых (ECIES) из библиотеки ethereum/go-ethereum.

ECIES выбрана потому что, из-за одинаковой структуры ключей, открытый и закрытый ключи ECDSA могут быть преобразованы в ключи ECIES и обратно и, также, потому что, благодаря задаче дискретного логарифмирования, злоумышленник, зная открытый ключ получателя и значения точки на эллиптической кривой не сможет получить закрытый ключ получателя для расшифрования сообщения.

Схема подготовки к зашифрованию представляется таким образом: у пользователя А имеется пара открытого и закрытого ключа ECDSA. При создании переписки пользователь отправляет свой открытый ключ в хранилище контракта переписки, также делает пользователь Б. После обмена ключами, пользователь А берет открытый ключ Б, преобразует его из ECDSA в открытый ключ ECIES, после чего с его помощью шифрует своё сообщение.

Для того, чтобы шифрование работало используется следующий алгоритм (Рисунок 5):

  1. Пользователь А вырабатывает пару временных ключей A.
  2. Временный закрытый ключ А по протоколу совместной выработки ключа (КА) объединяется с открытым ключом пользователя Б для выработки общего секретного значения.
  3. Общее секретное значение передается в функцию выработки секретных ключей KDF (Key Derivation Function), откуда получаются MAC (Message authentication code) ключ  и ключ шифрования .
  4. Из ключа шифрования  и открытого текста  c помощью алгоритма шифрования AES в режиме счетчика (CTR) вырабатывается шифротекст .
  5. Шифротекст  и  передаются в MAC функцию для выработки тэга.
  6. Из временного открытого ключа А, тэга и шифротекста  формируется криптограмма и отправляется пользователю Б.

 

Picture background

Рисунок 5. Зашифрование с помощью ECIES

 

Для расшифрования необходимо выполнить следующие шаги (Рисунок 6):

  1. Пользователь Б вырабатывает из полученной криптограммы временный открытый ключ А, тэг и шифротекст .
  2. Временный открытый ключ А объединяется с закрытым ключом пользователя Б с помощью КА для выработки общего секретного значения.
  3. Полученное секретное значение передается в функцию KDF для выработки МАС ключа  и ключа шифрования .
  4. Пользователь Б с помощью  и шифротекста с вырабатывает свой тэг и сравнивает его с тэгом криптограммы для проверки целостности.
  5. Если тэги совпали пользователь Б использует  для получения из шифротекста  открытого текста .

 

Рисунок 6. Расшифрование с помощью ECIES

 

Более подробное описание работы ECIES можно прочитать в статье A Survey of the Elliptic Curve Integrated Encryption Scheme [5, с. 9].

ПРИМЕР РАБОТЫ В СРЕДЕ GANACHE

Ganache представляет из себя среду с работающим локально блокчейном Ethereum, в котором разработчики могут тестировать свои программы. Она использовалась для проверки работы программы. На рисунке 7 показан общий вид интерфейса в браузере.

 

Рисунок 7. Общий вид интерфейса

 

На рисунках 8, 9 и 10 показано создание переписки. Пользователь А берет адрес кошелька пользователя Б и вставляет его в поле «Создать переписку».

 

Рисунок 8. Создание переписки пользователем А

 

Рисунок 9. Удачное создание переписки

 

На рисунке 10 показаны транзакции, которые происходят при создании переписки. Первой транзакцией является «Contract creation», обозначающий что переписка удачно создана. После следуют две транзакции подготовки и последняя транзакция 0x22c990b с автоматической отправкой сообщения о готовности пользователя Б к ведению переписки.

 

Рисунок 10. Транзакции, произведенные при создании переписки

 

На рисунке 11 показано, что пользователь А получил сообщение о готовности от пользователя Б и отправил ему «Hello!» На рисунке 12 в части TX DATA можно увидеть, как выглядит зашифрованное с помощью ECIES сообщение «Hello!».

 

Рисунок 11. Отправка сообщения "Hello!"

 

Рисунок 12. Зашифрованное сообщение «Hello!», передаваемые в теле транзакции

 

СРАВНЕНИЕ

Также было проведено сравнение с несколькими похожими проектами:

1. DappChat; [6]

2. Avax-chat-dapp; [7]

3. Simplex-chat; [8]

Сравнение заключалось в исследовании документации и программного кода для выявления сильных и слабых сторон каждого проекта. Результаты сравнения приведены в таблице 1.

DappChat представляет собой классический мессенджер. В нём содержатся инструменты для переписок, групп и каналов, но отсутствует какое-либо сокрытие сообщений во время передачи по сети и, из-за используемых технологий, таких как Metamask, отправку каждого сообщения необходимо подтверждать в всплывающем окне.

Avax-chat-dapp является наиболее похожим на описываемый в статье мессенджер, но, также как и в прошлом примере, он не будет работать если у пользователя не установлен и не настроен Metamask, который дополнительно предполагает подтверждение отправки сообщений. Также недостатком является отсутствие проверки наличия новых сообщений, пользователю необходимо периодически обновлять страницу, чтобы узнать пришло ли что-то.

Simplex-chat из всех выбранных для сравнения мессенджеров единственный официально представлен в магазинах приложений на разных платформах. Simplex-chat не использует блокчейн или базы данных и все сообщения пользователей хранятся только на их устройствах, а сервера выступают только передатчиками сообщений. Пользователи создают переписки с помощью передачи личной ссылки или QR кода.

Таблица 1.

Сравнение программ

 

Плюсы

Минусы

Особенности

Мессенджер

Шифрование сообщений. Автоматическое обновление при получении сообщения. Использование кошелька Ethereum в роли аккаунта

Предполагается наличие средств на кошельке пользователя

Сообщения хранятся до момента, пока их не прочтут. Для использования нужен только кошелек Ethereum

DappChat

Возможность создать переписку на большое количество участников. Перед отправкой предлагает подтвердить отправку.

Отсутствует шифрование. Требуется дополнительная регистрация

Используется MetaMask, из-за чего каждую операцию необходимо подтверждать во всплывающем окне

Avax-chat-dapp

Перед отправкой предлагает подтвердить отправку.

Отсутствует шифрование. Требуется дополнительная регистрация.

Необходимо перезагружать страницу для получения сообщения

Используется MetaMask, из-за чего каждую операцию необходимо подтверждать во всплывающем окне

Simplex-chat

Высокий уровень анонимности пользователей. Отсутствие серверов баз данных. Защита от спама.

Для повышения защищенности усложнена система создания переписок.

Не используются базы данных или блокчейн. Общение происходит по специально разработанному протоколу SimpleX Messaging Protocol.

 

ЗАКЛЮЧЕНИЕ

Использование технологии блокчейн, как распределенного хранилища, является перспективным направлением. При правильной настройке смарт-контрактов, в блокчейн можно перенести множество инструментов, связанных с хранением и передачей каких-либо данных.

Также, использование децентрализованного хранилища данных обеспечивает защищенность системы от различных угроз, присущих системам с централизованным хранением. Как пример, уничтожение или блокирование доступа к данным из-за выхода из строя сервера или SQL инъекции, которые некуда применять в связи с отсутствием серверов баз данных.

Мессенджер, построенный на технологии блокчейн с использованием криптографического шифрования сообщений и отнесением на второй план необходимости отслеживать криптовалюту на аккаунте, обходит по удобству использования существующие аналоги.

 

Список литературы:

  1. Ситнов А.С., Скрябин Т.С. Безопасность технологии blockchain. Вестник магистратуры. 2018. №3-2(78)
  2. What is a blockchain? [Электронный ресурс] – URL: https://ethereum.org/en/developers/docs/intro-to-ethereum/#what-is-a-blockchain (дата обращения 20.04.2025)
  3. What is Ethereum [Электронный ресурс] – URL: https://ethereum.org/en/developers/docs/intro-to-ethereum/#what-is-ethereum (дата обращения 20.04.2025)
  4. What is smart contracts? [Электронный ресурс] – URL: https://ethereum.org/en/developers/docs/intro-to-ethereum/#what-are-smart-contracts (дата обращения 20.04.2025)
  5. Gayoso Martínez, Víctor & Hernandez Encinas, Luis & Sánchez Ávila, Carmen. (2010). A Survey of the Elliptic Curve Integrated Encryption Scheme. Journal of Computer Science and Engineering. 2. 7-13
  6. DappChat [Электронный ресурс] – URL: https://github.com/foxtroy-jay/DappChat (дата обращения: 21.04.2025)
  7. Avax-chat-dapp [Электронный ресурс] – URL: https://github.com/realnimish/avax-chat-dapp/tree/main (дата обращения: 21.04.2025)
  8. Simplex-chat [Электронный ресурс] – URL: https://github.com/simplex-chat/simplex-chat (дата обращения: 21.04.2025)

Оставить комментарий