Внедрение машинного обучения в блокчейн-системы | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 5 февраля, печатный экземпляр отправим 9 февраля.

Опубликовать статью в журнале

Автор:

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

Опубликовано в Молодой учёный №7 (349) февраль 2021 г.

Дата публикации: 12.02.2021

Статья просмотрена: 16 раз

Библиографическое описание:

Саскевич, А. В. Внедрение машинного обучения в блокчейн-системы / А. В. Саскевич. — Текст : непосредственный // Молодой ученый. — 2021. — № 7 (349). — С. 14-17. — URL: https://moluch.ru/archive/349/78609/ (дата обращения: 24.01.2022).



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

Ключевые слова: машинное обучение, блокчейн, архитектура вычислительных систем.

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

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

Реализация моделей машинного обучения в смарт-контракте

Блокчейн-системы Ethereum и Hyperledger позволяют разработчику реализовывать необходимую бизнес-логику с помощью смарт-контрактов, для написания исходного кода которых используются C-подобные языки — Solidity, JavaScript.

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

В качестве простейшего примера реализации можно привести примеры однослойного перцептрона и линейной регрессии на базе Ethereum. Фундаментальным ограничением модели является отсутствие работы с числами с плавающей точкой. Для того, чтобы решить эту сложность, необходимо воспользоваться следующим подходом — считать, что в целом числе, например, несколько младших разрядов вещественной частью числа с плавающей точкой. Такой механизм позволит реализовать операции с плавающей точкой, однако будет наблюдаться накопление ошибок, связанных с точностью. В некоторых случаях это может оказаться неприемлемым. Также необходимо предварительное выделение ресурсов, например, на хранение коэффициентов модели. В примере ниже приведен фрагмент кода, реализующего процедуру обучения модели простейшего однослойного персептрона [4].

Реализация смарт-контракта в системе Hyperledger позволяет не только избежать недостатков, связанных с Ethereum и Solidity, но и переиспользовать уже существующие решения. Hyperledger предлагает к использованию такие языки программирования как JavaScript, Go и Java [5]. Готовые модели машинного обучения доступны для многих популярных языков программирования, например, TensorFlow.js [6].

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

Реализация моделей машинного обучения посредством стороннего сервиса-оракула

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

Сторонние сервисы предоставляют разработчику доступ к специальному «оракулу» — программе, которая способна предоставлять данные внутрь блокчейна и обрабатывать события, происходящие внутри системы. Документация Ethereum предлагает к использованию Chainlink [7], который позволяет организовать аналог REST API, позволяющий изолированной среде блокчейна получить данные извне.

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

Таким образом, рассмотрены два способа внедрения моделей машинного обучения в блокчейн-систему — прямой реализацией модели в смарт-контракте и подключение модели через сервисы-оракулы. Первый способ имеет среди недостатков медленную скорость выполнения, сложности с реализацией, и относительно невысокую точность и накапливаемую ошибку. Однако есть альтернативы, которые позволяют с большей точностью и скоростью производить вычисления, однако сложности реализации и масштабирования все равно не решены. Второй способ позволяет реализовывать модель любого уровня сложности, однако это накладывает сложности и ограничения при связывании с блокчейн-сетью, хотя в целом способ является более предпочтительным в применении.

Литература:

  1. Соколова Т. Н., Волошин И. П., Петрунин И. А. Преимущества и недостатки технологии блокчейн // Экономическая безопасность и качество. — 2019. — №. 1 (34).
  2. Dannen C. Introducing Ethereum and solidity. — Berkeley: Apress, 2017. — Т. 318.
  3. Осмоловская А. С. Смарт-контракты: функции и применение // Бизнес-образование в экономике знаний. — 2018. — №. 2 (10).
  4. Вакуленко С., Жихарева А. Практический курс по нейронным сетям // Университет ИТМО. — 2018.
  5. Androulaki E. et al. Hyperledger fabric: a distributed operating system for permissioned blockchains // Proceedings of the thirteenth EuroSys conference. — 2018. — С. 1–15.
  6. Smilkov D. et al. Tensorflow. js: Machine learning for the web and beyond // arXiv preprint arXiv:1901.05350. — 2019.
  7. Kaleem M., Shi W. Demystifying Pythia: A Survey of ChainLink Oracles Usage on Ethereum // arXiv preprint arXiv:2101.06781. — 2021.
Основные термины (генерируются автоматически): машинное обучение, виртуальная машина, реализация моделей, API, REST, данные, недостаток, посредство, преимущество, реализация.


Ключевые слова

машинное обучение, блокчейн, архитектура вычислительных систем
Задать вопрос