Низкоресурсный блокчейн для Интернета вещей: как с пользой «скрестить ежа с ужом»

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

Казалось бы, между ресурсоемким по своей природе блокчейном и Интернетом вещей, построенном на использовании устройств с ограниченными ресурсами, лежит огромная пропасть. Однако многие из свойств блокчейна оказались настолько востребованными в Интернете вещей, что появилось целое направление блокчейн-технологий — низкоресурсный блокчейн (Lightweight Blockchain, LWB), в рамках которого было предложено множество подходов к созданию блокчейнов с пониженными требованиями к ресурсам и, следовательно, к их адаптации для реализации в системах Интернета вещей и, в частности, в устройствах с низкими вычислительными ресурсами.

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

Эволюция Интернета вещей

Эволюция Интернета вещей

О полезных свойствах блокчейна

Начнем со свойств блокчейна, благодаря которым появились идеи о его применимости в Интернете вещей, вот они:

  • децентрализация;

  • прозрачность данных (в данном случае важны легкость определения и подтверждения источника данных);

  • невозможность удаления данных, внесенных ранее;

  • встроенная (и обеспеченная криптографическими механизмами) поддержка целостности/аутентичности данных и их привязки ко времени.

Авторы обзорной работы [1] (перечень ссылок приведен в конце статьи), проанализировав существующие варианты применения блокчейна в системах Интернета вещей (отметим, что вышеупомянутая работа была опубликована в 2022 г. и посвящена обзору вышедших на тот момент 152 (!) статей и докладов, в которых описываются подобные применения), сделали вывод о том, что блокчейн не только оказался востребован в системах Интернета вещей, но и в значительной мере повлиял на их развитие; взгляд авторов данной работы на эволюцию Интернета вещей проиллюстрирован на рисунке выше.

Проблемы и пути их решения

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

  • высокая степень гетерогенности (устройств, технологий, протоколов…) в Интернете вещей;

  • наличие множества уникальных сценариев применения (блокчейна в Интернете вещей) с различными специфичными требованиями.

Именно этими проблемами, видимо, объясняется такое обилие значительно различающихся между собой подходов к созданию низкоресурсных блокчейнов, среди которых можно выделить следующие основные направления минимизации ресурсоемкости блокчейна (причем данные подходы часто используются совместно в различных комбинациях):

  • проектирование систем с применением архитектурных решений, нацеленных на комплексное снижение общей ресурсоемкости блокчейна;

  • снижение ресурсоемкости используемых криптографических алгоритмов, в том числе, за счет использования низкоресурсной криптографии;

  • применение простых и нересурсоемких механизмов консенсуса;

  • минимизация требований к памяти, необходимой для хранения данных блокчейна;

  • перенос ресурсоемких операций на верхние уровни систем Интернета вещей.

Под минимизацией ресурсоемкости понимается достижение следующих основных целей (набор метрик для оценки степени достижения каждой из этих целей приведен на рисунке далее):

  • снижение вычислительной нагрузки;

  • снижение задержек и накладных расходов при передаче данных;

  • снижение требований к памяти;

  • повышение пропускной способности;

  • снижение затрат энергии.

Метрики ресурсоемкости

Метрики ресурсоемкости

Если не рассматривать перенос ресурсоемких операций на верхние уровни систем Интернета вещей (поскольку они напрямую не имеют отношения к минимизации ресурсоемкости именно блокчейна) и методы, нацеленные на снижение ресурсоемкости используемой криптографии (их несколько подробнее рассмотрим далее), то перечисленные выше подходы к созданию низкоресурсных блокчейнов, можно классифицировать следующим образом:

«Некриптографические» подходы к снижению ресурсоемкости

«Некриптографические» подходы к снижению ресурсоемкости

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

Соотношение направлений снижения ресурсоемкости

Соотношение направлений снижения ресурсоемкости

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

Примеры реализации некриптографических подходов

Опишем несколько примеров для иллюстрации вышесказанного. 

Оригинальная архитектура + перенос ресурсоемких операций на верхние уровни системы

Пример относительно низкоресурсного блокчейна на основе оригинальной архитектуры предложен в статье [3]. Авторы данного решения добились существенного увеличения пропускной способности при адекватном уровне безопасности за счет комбинации следующих решений:

  • структурирования данных в виде компактного направленного ациклического графа (CoDAG), приведенного на следующем рисунке;

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

Структура на основе CoDAG

Структура на основе CoDAG

Данное решение позиционируется авторами как публичный блокчейн c Proof-of-Work-консенсусом для использования в промышленном интернете вещей (Industrial Internet of Things, IIoT). Некоторые сомнения, правда, вызывает сценарий использования именно такого варианта блокчейна — как-то экзотично выглядят гипотетические IIoT-системы, в которых могут присутствовать недоверенные узлы и, таким образом, применение PoW-консенсуса является оправданным.

Низкоресурсный протокол консенсуса

Блокчейн для систем Интернета вещей на основе оригинального низкоресурсного протокола консенсуса описан в статье [4]. Предложенный ее авторами протокол консенсуса можно кратко описать следующим образом:

  • каждый валидирующий узел сопоставляется с вычисляемой на основе его открытого ключа метрикой KWM (Key Weight Metric);

  • транзакции назначаются валидирующим узлам в зависимости от значения старшего байта хеш-кода транзакции — диапазону значений старшего байта соответствует определенное значение KWM, по которому определяется валидатор;

  • после валидации одна или несколько транзакций сразу публикуется валидатором в новом блоке;

  • каждый валидирующий узел ведет свою цепочку блоков до окончания текущей эпохи;

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

Пример структуры блоков на основе данного протокола приведен на рисунке:

Низкоресурсный протокол консенсуса

Низкоресурсный протокол консенсуса

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

Стоит отметить, что авторы статьи [4] нестандартно трактуют понятие «форк», которое в данном случае означает разбиение конкретной цепочки блоков на несколько с целью балансировки нагрузки (с увеличением количества валидирующих узлов) — в случае неравномерного распределения транзакций между валидаторами или когда по каким-либо причинам валидатор не справляется со своими задачами; примеры такого разбиения приведены на рисунке выше.

Частичный перенос данных в облако с их анонимизацией

Авторы работы [5] предложили минимизировать требования к памяти для хранения данных на уровне низкоресурсных устройств Интернета вещей (а также обеспечить ограниченный доступ к информации об источнике данных) путем совместного использования двух различных типов блокчейна и облачного хранилища данных (см. следующий рисунок):

  • основные данные системы хранятся в облаке;

  • на нижнем уровне системы Интернета вещей применяется публичный блокчейн, в котором хранятся только ссылки на помещенные в облако данные и их хеш-коды;

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

Частичный перенос данных в облако

Частичный перенос данных в облако

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

Варианты и примеры уменьшения ресурсоемкости за счет криптографических механизмов

Криптографические операции дают существенный вклад в ресурсоемкость блокчейн-технологий. Оставив за скобками использование криптографии в ряде протоколов консенсуса (приведем для примера масштабное использование функций хеширования в Proof-of-Work), рассмотрим, прежде всего, использование хеширования и электронной подписи для подтверждения целостности и аутентичности транзакций и блоков, а также для объединения блоков в цепочки.

Если хеширование является быстрой операцией, не требующей значительных затрат ресурсов, то электронная подпись требует на 2–3 порядка больше времени на вычисление и/или проверку (в зависимости от конкретных алгоритмов для сравнения) на тех же ресурсах. Конкретные цифры быстродействия многих известных алгоритмов хеширования и электронной подписи на различных аппаратных платформах можно найти на сайте [5].

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

  • использование низкоресурсных криптографических алгоритмов — т. е. алгоритмов, изначально разработанных для применения в устройствах с ограниченными ресурсами (в ряде случаев, но не всегда, — за счет некоторого снижения криптостойкости алгоритма);

  • отказ от ресурсоемких криптографических операций в пользу менее ресурсоемких; например, использование вместо электронной подписи несравнимо менее ресурсоемких алгоритмов ключевого хеширования — там, где это возможно;

  • минимальная реализация криптоалгоритмов общего назначения с оптимизацией под конкретную целевую платформу — например, реализация только одного варианта алгоритма (алгоритм может допускать вариативные размеры ключей/блоков данных, различные алгоритмы хеширования в паре с определенным алгоритмом электронной подписи и т. п.) в одном требующемся режиме работы (если говорить о симметричном шифровании) с «тонкой настройкой» под возможности конкретного устройства; данный подход вступает в явное противоречие с обычной гетерогенностью систем Интернета вещей, поэтому вряд ли может быть широко применен, но примеры таких систем существуют — в частности, см. статью [6];

  • упрощение и оптимизация операций генерации и распределения ключей; поскольку данные процедуры также могут быть ресурсоемкими (в частности, в случае необходимости передачи в устройство и проверки в нем цепочки сертификатов открытых ключей), уход от них (например, в направлении certificateless-криптографии) позволит добиться заметной экономии ресурсов; в качестве примера можно привести описанный в статье [7] вариант низкоресурсного блокчейна с использованием ID-based-криптографии, где в качестве идентификаторов применяются серийные номера устройств Интернета вещей;

  • перенос криптографических операций (по крайней мере, их наиболее ресурсоемкой части) на вышележащие уровни.

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

Частичное применение ключевого хеширования вместо электронной подписи

Использование кодов аутентификации сообщений на основе ключевого хеширования HMAC (Hash-based Message Authentication Codes) вместо электронной подписи на нижнем уровне системы Интернета вещей (на уровне транзакций) предложено в докладе [8]. При этом на вышележащих уровнях системы Интернета вещей, где транзакции валидируются и собираются в блоки, по-прежнему используется электронная подпись, поскольку данные уровни оснащены вычислителями с достаточными ресурсами:

Частичное применение HMAC вместо электронной подписи

Частичное применение HMAC вместо электронной подписи

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

Распределенное вычисление электронной подписи

Несколько необычный подход к вычислению электронной подписи транзакций в блокчейне для систем Интернета вещей предложен авторами работы [9]; основная идея состоит в следующем:

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

  • проверка подписи выполняется только на верхних уровнях системы Интернета вещей.

Распределенное вычисление электронной подписи

Распределенное вычисление электронной подписи

В результате достигаются следующие результаты:

  • низкоресурсные устройства Интернета вещей минимально (с точки зрения затрат ресурсов) задействованы в подтверждении целостности и аутентичности транзакций;

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

Заключение

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

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

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

Литература по теме

1.     D. Stefanescu, L. Montalvillo, P. Galán-García, J. Unzilla, A. Urbieta. A Systematic Literature Review of Lightweight Blockchain for IoT. IEEE Access, vol. 10, pp. 123138–123159, November 2022.

2.     A. Panarello, N. Tapas, G. Merlino, F. Longo, A. Puliafito. Blockchain and IoT Integration: A Systematic Survey. Sensors, vol. 18, no. 8, p. 2575, August 2018.

3.     L. Cui, S. Yang, Z. Chen, Y. Pan, M. Xu, K. Xu. An Efficient and Compacted DAG-based Blockchain Protocol for Industrial Internet of Things. IEEE Transactions on Industrial Informatics, vol. 16, no. 6, pp. 4134–4145, June 2020.

4.     A. Dorri, R. Jurdak. Tree-Chain: A Fast Lightweight Consensus Algorithm for IoT Applications. Preprint, May 2020.

5.     Virtual Applications and Implementations Research Lab eBACS Project: ECRYPT Benchmarking of Cryptographic Systems.

6.     S.N. Mohanty, K.C. Ramya, S.S. Rani, D. Gupta, K. Shankar, S.K. Lakshamanaprabu, A. Khanna. An efficient lightweight integrated blockchain (ELIB) model for IoT security and privacy. Future Generation Computer Systems, vol. 102, pp. 1027–1037, January 2020.

7.     S. Panasenko. A Lightweight Blockchain for the Internet of Medical Things Using Hash-based Message Authentication Codes. 19th International Wireless Communications and Mobile Computing Conference (IEEE IWCMC»2023), Marrakesh, Morocco, June 19–23, 2023, proceedings, pp. 1095–1100.

© Habrahabr.ru