УДК 004

Использование блокчейна для разработки распределенных приложений

Легоньков Роман Олегович – студент МИРЭА – Российского технологического университета

Лукьянов Юрий Аркадьевич – доцент Российского технологического университета МИРЭА – Российского технологического университета

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

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

В последнее время технология блокчейн стала очень популярной и широко используется в различных областях. Одна из главных причин этого - высокий уровень безопасности и прозрачности, который блокчейн обеспечивает. Благодаря этому, многие компании начали использовать эту технологию для хранения и защиты данных в распределенных приложениях. К примеру, авторы Ковальчук А. В. и Сайбель Н. Ю. предлагают использовать технологию в сфере финансовых операций [6].

Остановимся на преимуществах технологии блокчейн. Блокчейн – это технология, которая позволяет создавать цепочки блоков, каждый из которых содержит информацию о транзакции или другом событии. Каждый блок связан с предыдущим блоком, что обеспечивает целостность цепочки. Таким образом, если изменить информацию в одном блоке, то это повлияет на все последующие блоки. Одним из основных преимуществ блокчейн является высокий уровень безопасности. Блокчейн использует криптографические методы для защиты информации, что делает невозможным ее подделку или изменение. Кроме того, блокчейн обеспечивает прозрачность, так как каждый участник сети может просмотреть все транзакции и события в цепочке блоков [3].

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

Не маловажным преимуществом приложения на основе блокчейн является отказоустойчивость. Распределенное приложение хранит данные не на одном сервере, а на всех устройствах, подключенных к блокчейн. Таким образом, приложение может работать пока функционирует единственный узел блокчейн. Это свойство можно использовать в КСА АСУ (в том числе, специального назначения), программные компоненты которого должны сохранять свою функциональность в условиях, которые могут повредить, отключить или уничтожить отдельные узлы или даже сервер.

Целью статьи является разработка метода использования блокчейна для построения распределенного хранилища данных. Для достижения цели необходимо сравнить существующие блокчейны Ethereum, Bitcoin, Quorum и выбрать наиболее подходящий для реализации распределенного хранилища данных.

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

Таблица 1. Сравнительная характеристика блокчейн технологий.

 

Ethereum

Bitcoin

Quorum

Популярность

Является самым популярным блокчейном и имеет большое сообщество разработчиков.

Широко распространен и поддерживается большим сообществом.

Quorum имеет меньшее сообщество разработчиков, чем Ethereum или Bitcoin.

Набор инструментов

Имеет широкий набор инструментов для разработки распределенных приложений

Набор инструментов сильно ограничен.

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

Умные контракты

Поддерживает умные контракты, что позволяет автоматизировать выполнение условий сделки

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

Не поддерживает умные контракты на 100%, что может ограничить функциональность распределенного приложения.

Производительность

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

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

Обеспечивает высокую производительность и масштабируемость благодаря использованию алгоритма BFT (Byzantine Fault Tolerance).

Конфиденциальность

и безопасность

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

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

Является приватным блокчейном и обеспечивает конфиденциальность транзакций.

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

 

Ethereum

Bitcoin

Quorum

Популярность

+

+

-

Набор инструментов

+

-

+

Умные контракты

+

-

-

Производительность

-

-

+

Конфиденциальность

и безопасность

-

+

+

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

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

IPFS (InterPlanetary File System) – это протокол для распределенного хранения и обмена файлами в сети Интернет. В отличие от традиционных систем хранения данных, которые опираются на централизованные серверы, IPFS использует распределенную сеть узлов, каждый из которых хранит часть данных. Это позволяет увеличить скорость и надежность передачи данных, а также обеспечить безопасность и целостность хранимых файлов. IPFS также поддерживает версионность файлов и позволяет быстро находить нужный контент с помощью хешей и адресов [1].

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

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

Таким образом, при работе с IPFS пользовательские файлы хранятся в распределенной сети узлов IPFS, а контракты Ethereum могут сохранять ссылки на эти файлы, используя их хеш-адреса.

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

Для сохранения хэш-адреса в блокчейн могут быть использованы умные контракты. Умные контракты (smart contracts) играют важную роль в блокчейн-технологиях, позволяя автоматизировать и гарантировать выполнение сделок и условий без участия посредников и других третьих лиц. Они представляют программные коды, которые запускаются на блокчейне и могут выполнять действия только при выполнении определенных условий. Умные контракты работают на основе принципа "если-то", то есть, они выполняют определенные действия только в том случае, если соблюдены определенные условия. Такие условия задаются заранее в коде контракта [7]. При добавлении в блокчейн, умные контракты компилируются в байт-код и записываются в блокчейн по принципу транзакции. Такой механизм позволяет гарантировать выполнение именно так, как это задумал разработчик умного контракта. Для разработки смарт-контракта в блокчейне Etherium используется язык Solidity.

Пример контракта для доступа к IPFS:

pragma solidity ^0.8.0;

import "/IpfsStorage.sol";

contract IpfsContract is IpfsStorage {

function upload(string memory _data) public returns (bytes32) {

bytes32 hash = add(_data);

return hash;

}

function getFile(bytes32 _hash) public view returns (string memory) {

return get(_hash);

}

}

Здесь контракт наследует функциональность из библиотеки “IpfsStorage”, которая содержит реализацию загрузки и получения файлов с IPFS. Функция “upload” принимает строку данных, загружает ее на IPFS и возвращает хеш файла. Функция “getFile” принимает хеш файла и возвращает данные, связанные с этим хешем на IPFS. При развертывании контракта необходимо указать адрес библиотеки “IpfsStorage” в параметре “library”.

Доступ к файлам осуществляется только после авторизации пользователя и использования механизмов шифрования для защиты данных. Оптимально использовать блокчейн Etherium для хранения авторизационных данных, в виде уникальных адресов кошельков. Такой подход позволяет не беспокоиться о хранении учетных данных и их шифровании сторонними инструментами.

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

  1. Настроить локальный узел IPFS для хранения файлов в распределенной сети.
  2. Разработать и развернуть контракт Ethereum, который будет использоваться для сохранения ссылок на файлы в IPFS.
  3. Создать интерфейс приложения для загрузки файлов в IPFS и сохранения ссылок на них в контракте Ethereum.
  4. Реализовать функциональность для доступа к файлам из IPFS через контракт Ethereum.
  5. Обеспечить безопасность данных, используя механизмы шифрования и доступа к данным только по разрешению авторизованных пользователей.
  6. Протестировать приложение на различных устройствах и сценариях использования, чтобы убедиться в его надежности и функциональности.
  7. Развернуть приложение на выбранной платформе, такой как веб-сервер или мобильное приложение, и предоставить доступ к нему пользователям.

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

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

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

  1. IPFS Documentation" (Документация IPFS). [Электронный ресурс] URL: https://docs.ipfs.io / (Дата обращения 26.03.2023).
  2. Blockchain for Distributed Applications. Cайт компании IBM. [Электронный ресурс] URL: https://www.ibm.com/blockchain/distributed-applications (Дата обращения 07.04.2023).
  3. Nolan Bauerle. "Как работает блокчейн" (How Does Blockchain Technology Work?) [Электронный ресурс] URL: https://www.coindesk.com/learn/blockchain-101/how-does-blockchain-technology-work (Дата обращения 21.03.2023).
  4. Антонопулос, А. М. Осваиваем биткойн. Программирование блокчейна / А. М. Антонопулос; перевод с английского А. В. Снастина. – Москва : ДМК Пресс, 2018. – 428 с. – ISBN 978-5-94074-965-3. – Текст: электронный // Лань: электронно-библиотечная система. – URL: https://e.lanbook.com/book/112924 (дата обращения: 26.04.2023). – Режим доступа: для авториз. пользователей.
  5. Башир, И. Блокчейн: архитектура, криптовалюты, инструменты разработки, смарт-контракты / И. Башир; перевод с английского М. А. Райтмана. – Москва: ДМК Пресс, 2019. – 538 с. – ISBN 978-5-97060-624-7. – Текст: электронный // Лань: электронно-библиотечная система. – URL: https://e.lanbook.com/book/123701 (дата обращения: 26.04.2023). – Режим доступа: для авториз. пользователей.
  6. Ковальчук А. В., Сайбель Н. Ю. Блокчейн-технологии в финансовом секторе экономики: преимущества и проблемы использования // Научно-методический электронный журнал «Концепт». – 2018. – № 4 (апрель). – 0,4 п. л. – URL: http://e-koncept.ru/2018/184019.htm. (Дата обращения 26.03.2023).
  7. Осмоловская А.С. Смарт-контракты: функции и применения. // [Электронный ресурс] URL: https://cyberleninka.ru/article/n/smart-kontrakty-funktsii-i-primenenie/viewer (Дата обращения 12.04.2023)
  8. Табернакулов, А. Блокчейн на практике / А. Табернакулов. – Москва: Альпина Паблишер, 2019. – 260 с. – ISBN 978-5-9614-2382-2. – Текст: электронный // Лань: электронно-библиотечная система. – URL: https://e.lanbook.com/book/125770 (дата обращения: 26.04.2023). – Режим доступа: для авториз. пользователей.

Интересная статья? Поделись ей с другими: