Блокчейн В Корпоративной Архитектуре: Прихоть Или Необходимость?

Привет! Меня зовут Денис Васин, я технический директор Waves Enterprise, и мы занимаемся блокчейн-проектами для бизнеса.

Благодаря метавселенным в последнее время популярность технологий вновь возросла.

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

Я постараюсь сделать это позже в посте.



Блокчейн в корпоративной архитектуре: прихоть или необходимость?



Какие типы блокчейн-платформ существуют?

31 октября 2008 года некий Сатоши Накамото опубликовал статью «Биткойн: одноранговая электронная денежно-кредитная система», где изложил принципы работы сети Биткойн и ее консенсус.

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

С этого момента принято отсчитывать историю блокчейна как самостоятельной технологии.

Чтобы понять, насколько он стал популярен, достаточно взглянуть на рейтинг самых популярных криптовалют CoinMarketCap. Сейчас в него входит почти 10 тысяч криптовалют, а к концу 2021 года их стало 13 тысяч.

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

Эти события могут быть какими угодно.

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

Ключевой особенностью публичные сети — в этом их открытость.

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

В сети Биткойн можно установить историю всех транзакций с начала работы.

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

Сейчас существует множество инструментов, позволяющих отслеживать пользователей и их транзакции.

На другом полюсе мы имеем полностью закрытые, «частные» сети , например, как авиакомпания S7 на базе IBM Hyperledger Fabric. Доступ к таким сетям можно получить только с разрешения оператора, полностью управляющего сетью.

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

Я суммировал основные различия между публичными и частными сетями блокчейнов на иллюстрации:

Блокчейн в корпоративной архитектуре: прихоть или необходимость?



Корпоративная блокчейн-платформа

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

Такой режим использования предъявляет к нему повышенные требования.

Например, в сети Биткойн транзакция подтверждается примерно за 10 минут. Это слишком долго для использования в бизнесе.

Даже 10 секунд, как в сети Ethereum, тоже слишком много.

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

К российским проектам есть дополнительное требование: они должны поддерживать отечественную криптографию в соответствии с требованиями ГОСТа.



Зачем нужен блокчейн в компании?

С технической точки зрения блокчейн решает одну проблему — достижение консенсуса между всеми узлами сети по определенному журналу внутренних транзакций.

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

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

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

Есть крупный металлургический завод и нефтегазовая компания.

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

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

После транспортировки трубы проверяют еще раз и результаты куда-то фиксируют. Трубы поступают на склад и их состояние снова где-то фиксируется.

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

Первый вариант — стандартные двухточечные интеграции со всеми контрагентами.

С одним заводом и одной нефтегазовой компанией все просто: одна интеграция.

Добавляем транспортную компанию и получаем три интеграции.

И тогда количество интеграций увеличивается в геометрической прогрессии, по формуле n*(n-1)/2), где n — количество участников.

Задача еще более усложняется тем, что все системы, доступные на рынке, не обеспечивают сверку данных.

Крупные компании занимаются такими проектами уже много лет, тратя многие миллионы и раздувая свой ИТ-персонал до смешных размеров.

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

Второй вариант — единая база данных в каком-то облаке.

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

Проблема со сверкой данных решается, но возникает множество других.

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

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

Вам просто нужно обменяться с ним данными.

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

Но кто будет выступать в качестве поставщика услуг? Давайте возьмем пример конфиденциальных данных — например, обмен кредитными историями.

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

В этом случае вопрос решается с помощью независимого участника с особыми полномочиями – БКИ – бюро кредитных историй.

БКИ занимается обменом данными и разрабатывает для этого необходимое программное обеспечение.

Оценим возможные проблемы такого подхода.

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

Все данные централизуются в одном месте и поэтому вся система становится более уязвимой.

Поставщик услуг может разгласить данные в своих интересах или по ошибке.

Наконец, мы приходим к решению через блокчейн .

Основные преимущества здесь:

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

  • Каждый участник несет ответственность только за свою инфраструктуру.

  • Потеря любого узла в сети не повлияет на ее стабильность.

Есть, конечно, и недостатки, в основном организационного характера.

  • Каждому предприятию необходимо будет провести работы по созданию необходимой инфраструктуры у себя.

    Его можно охарактеризовать как SaaS самообслуживания.

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

    Мало кто работает с таким мышлением.

  • Обмен конфиденциальными данными кажется невозможным.

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



Смарт-контракты и конфиденциальные данные

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

Выходные данные смарт-контракта сохраняются в виде сетевого блока, и все участники сети могут видеть входные и выходные данные функции смарт-контракта.

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

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

Два других фундаментальных инварианта: «Я могу тратить биткойны только в том случае, если знаю ключ» и «Биткойн не появляется из воздуха» (требуется либо майнинг, либо передача).

Комбинация этих трех инвариантов дает нам законченную денежную систему.

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

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

Как это работает? Отправитель конфиденциальных данных вычисляет свой хэш и отправляет запрос на отправку с указанием получателя в блокчейн.

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

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

Блокчейн-платформа Федеральной налоговой службы

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

Согласно ему, компании смогут получить кредиты на льготных условиях, которые будут субсидироваться государством.

Но одной компании разрешено иметь только одну активную заявку на кредит в одном банке.

Реализация данного постановления с участием дает огромный простор для мошенников: данные не попадают в БКИ быстро, что позволяет взыскать кучу кредитов в разных банках.

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

Мы предложили решить эту проблему с помощью блокчейна.

Ведь с помощью смарт-контрактов уже на этапе подачи заявки на кредит мы можем создать фундаментальный инвариант: «не может быть двух активных заявок с одного уникального ИНН».

Еще одним преимуществом этого решения является функциональность.

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

Недавно, например, мы запустили пилот единой базы машиночитаемых доверенностей на базе этой сети.

Сейчас проект уже работает как цифровая платформа распределенного реестра ФНС.

В нем каждое приложение имеет открытую и закрытую часть.

Первый обрабатывается смарт-контрактами, которые включают в себя статусы, идентификаторы, номера заявок, ИНН, ОГРН.

Вся эта неконфиденциальная информация хранится в открытом виде в состоянии сети.

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

Блокчейн в корпоративной архитектуре: прихоть или необходимость?

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

Этого достаточно при работе с криптовалютами, но не в бизнес-проектах.

Для записи внешних данных требуемым образом в блокчейн — по сути, в базу данных «ключ-значение» — используются промежуточные сервисы и оракулы данных.

А для получения данных из блокчейна используются обратные оракулы.



Архитектура приложения проекта

Прикладная архитектура блокчейн-проектов основана на принципе CQRS, что означает, что потоки записи отделены от потоков чтения.

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

Смарт-контракты принимают данные и изменяют их в соответствии с логикой.

На выходе мы получаем данные и реплицируем их в удобную для чтения базу данных.

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



Блокчейн в корпоративной архитектуре: прихоть или необходимость?

Эту модель мы опишем поэтапно в рамках проекта с ФНС.

  1. Пользователь входит в приложение через REST и отправляет заявку на кредит.
  2. Приложение генерирует транзакцию — вызов смарт-контракта — с входными данными приложения.

  3. Данные отправляются в блокчейн в качестве входных данных смарт-контракта.

  4. Смарт-контракт проверяет, является ли данная заявка дубликатом и может ли заявитель в принципе подать ее.

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

  5. Данные переходят в так называемое состояние блокчейна — снимок цепочки блоков.

  6. Создается ответная транзакция, указывающая на появление нового блока в сети.

  7. Все участники сети получают уведомление о транзакции и добавляют информацию о заявке в свою базу данных в удобном формате.

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



Давайте подведем итоги

Блокчейн — это способ реализации общеотраслевых бизнес-процессов, выходящих за пределы одной компании.

Блокчейн автоматизирует новые типы бизнес-процессов, а не улучшает существующие.

Поэтому сфера его применения весьма ограничена.

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

Блокчейн не является заменой реляционной базы данных, интеграционной шины, NoSQL, базы данных «ключ-значение», Kafka или чего-либо еще.

Это достаточно узкое специализированное решение, направленное на достижение консенсуса в недоверенной среде.

Вот тут это будет оправдано на 100%.

В будущих публикациях Waves Enterprise мы с коллегами более подробно поговорим о технической стороне блокчейна, блокчейн-проектах и других сопутствующих вещах.

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

Теги: #блокчейн #Децентрализованные сети #ИТ-инфраструктура #Анализ и проектирование систем #Распределенные системы #блокчейн-платформа #распределенные реестры #блокчейн-проект

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.