Блокчейн, распределенный реестр и доверенная третья сторона
И почему производителю сенсоров для Интернета вещей надо об этом знать
Что такое блокчейн?
Блокчейн (от англ. blockchain, «цепочка блоков») — это «открытый, распределенный реестр, куда эффективным, поддающимся проверке и неизменяемым способом записываются транзакции между двумя сторонами»[1]. Технологии блокчейн уже десять лет: она появилась 3 января 2009 года. После создания первичного блока к каждому блоку (записи данных) так называемыми майнерами [2] добавляется следующий с использованием криптографической хэш-функции. Предыдущий блок нельзя изменить, заменить или удалить без обновления всех последующих блоков во всех копиях цепочки. Копия цепочки хранится на каждом узле в системе. Такой механизм предполагает, что чем больше узлов в цепочке, тем надежнее становится блокчейн, поскольку данные, записанные в блок, невозможно изменить (или фальсифицировать). Технология блокчейн и ее самая известная реализация Bitcoin («биткоин») на сегодняшний день уже стала мировым явлением — данные, записываемые в блоки биткоина, соответствуют «финансовым» транзакциями между сторонами, то есть фактически это электронный реестр. Именно поэтому блокчейн иногда называют распределенным реестром.
Пример блокчейна: биткоин
Поскольку каждый узел не зависит от любого другого и у всех узлов есть копия цепочки (или реестра), не существует ответственного узла, где хранится централизованная сертифицированная копия — на каждом узле хранится реальная цепочка. Это означает, что отсутствует необходимость в доверенной третьей стороне. Биткоин называют криптовалютой, потому что он гарантирует, что никто просто так не «печатает» и не генерирует биткоины — следовательно, не девальвирует валюту. В случае обычной валюты это делает центральный банк страны — единственное возможное слабое звено. Биткоин является децентрализованной валютой и фактически не зависит от какого-либо «давления правительства». В технологии биткоина нет доверенной третьей стороны, однако эта валюта застрахована от DoS-атак и функционирует практически без комиссионных платежей.
В Visa для кредитных операций реализован по сути аналогичный функционал. Тем не менее, поскольку в Visa не используется распределенная технология, компания вынуждена каждый год инвестировать огромные средства в защиту централизованной клиент-серверной архитектуры от DoS-атак. Миллионы клиентских устройств по всему миру (терминалы кредитных карт) подключены к главному серверу. Visa гарантирует надежность и безопасность этой системы, выступая доверенной третьей стороной, и требует значительной компенсации за все связанные проблемы в виде комиссионных платежей.
Куда передаются все данные?
Когда в будущем миллиарды сенсоров будут объединены в Интернет вещей, куда будут передаваться все данные? Даже если бы можно было построить эффективную и защищенную от DoS-атак централизованную клиент-серверную архитектуру, целесообразно ли вверять контроль над данными от всех сенсоров по всему миру одной единственной компании? Данные от сенсоров можно сохранять непосредственно в реестр, благодаря чему отдельные клиенты будут иметь возможность контактировать с отдельными сенсорами и получать свои данные независимо, безопасно и без лишних затрат на услуги доверенной третьей стороны, выступающей в качестве посредника.
Концепция и проблемы смарт-контрактов
Смарт-контракты представляют собой алгоритмы, которые выполняются на каждом узле в цепочке. Определенные входные параметры обусловливают определенные выходные параметры (в идеале подобно юридическому договору). Принимаемые алгоритмом смарт-контракта «решения» надежны, поскольку они универсальны, а результат заносится в блокчейн в прозрачным, поддающимся проверке и неизменяемым способом.
Смарт-контракты выполняются на виртуальной машине, не зависимой от аппаратного обеспечения, на котором она работает, поскольку алгоритм должен выполняться на всех возможных узлах, и, следовательно, не имеет доступа к информации об аппаратном обеспечении или данным сенсора. Еще одно важное техническое препятствие: смарт-контракты выполняются на всех без исключения узлах, и при наличии данных только от одного датчика крайне нежелательно, чтобы миллионы узлов одновременно запросили одни и те же данные этого сенсора.
Блокчейн Ethereum («эфириум»), конкурент биткоина, стал первой криптовалютой, для которой была внедрена технология смарт-контрактов, поэтому его создатели начали работать над решением: оракулы.
Возможное решение: оракулы
Оракулы представляют собой особые узлы в сети, которые являются источниками данных для смарт-контрактов. Аппаратные сенсоры передают свои данные и предоставляют к ним доступ оракулу, который распределяет их по цепочке. Оракул выступает эффективным посредником в передаче данных.
Проблема доверия
В результате вновь возникла проблема доверия. Существует возможность изменения передаваемых сенсорами данных на стороне оракула до того, как они попадут в блокчейн. Оказавшись в блокчейне, данным в транзакции можно доверять без участия доверенной третьей стороны, однако встает вопрос доверия поставщикам оракулов. Поставщики оракулов удостоверяются центральными системами сертификации. Это, по сути означает возвращение доверенной третьей стороны (только в другой форме), а также централизованной архитектуры (подобно Verisign для надежных веб-страниц). Простая атака DoS-атака на поставщиков сертификатов или сами оракулы способна обрушить всю систему Интернета вещей.
Одним из решений является передача данных нескольким различным оракулам и использование принципа избыточности. Тем не менее, для большинства организаций создание достаточного количества оракулов окажется слишком дорогостоящим. Универсально размещаемый сервер-оракул с открытым исходным кодом может стать решением проблемы передачи данных, но не проблемы доверия.
Сертификат «доверяет» только узлу-оракулу. Передающий данные сенсор может быть скомпрометирован, но оракул не узнает об этом или, что еще хуже, «не придаст этому значения». Производители оракулов просто предоставляют услугу по передаче информации в блокчейн и в реальности не способны проверить всех поставщиков сенсоров.
Разумеется, поставщики сенсоров также могут получить сертификат и подтвердить, что их аппаратное обеспечение или встроенное программное обеспечение заслуживает доверия и его невозможно взломать. Но опять же возникают такие проблемы, как наличие доверенной третьей стороны, замыкание на стороне клиента и рост затрат на систему.
Если появляется доверенная третья сторона, целесообразность использования децентрализованного доверенного блокчейна ставится под сомнение. «Стандартная» централизованная сеть базы данных предлагает те же функциональные возможности с теми же недостатками.
Идеальное решение: надежные камеры
Идеальное решение заключается в том, чтобы конечный пользователь мог проверить (с помощью смарт-контракта), были ли данные, передаваемые сенсорами, изменены по пути.
Если взять в качестве примера сенсор-видеокамеру, первым шагом станет хэширование изображения и сохранение полученного хэша. Изображение будет получено конечным пользователем, который сравнит полученный хэш с тем, который он создал сам. Если они не совпадают, изображение фальсифицировано. Дополнительную информацию (например, сведения о встроенном программном обеспечении) также можно хэшировать наряду с данными изображения. Таким образом изображение будет уникальным, соответствующим конкретной камере и версии встроенного программного обеспечения. Другие локальные сенсоры в системе также могут передавать свои данные в видеомодуль для хэширования перед отправкой в блокчейн. Так конечный пользователь сможет проверить, были ли данные от сенсоров фальсифицированы.
Это всего лишь один из примеров надежного сенсора-видеокамеры.[3] Существует множество возможностей для других сенсоров.
Резюме
Современные одноранговые сети, построенные на технологии блокчейна, функционируют без централизованной доверенной третьей стороны. Это обусловливает их масштабируемость и позволяет избежать привлечения доверенного третьего лица за отдельную плату. К сожалению, передача данных от сенсоров в алгоритмы смарт-контрактов в цепочке должна осуществляться через посредников. С тем чтобы избежать монополизации данных такими посредниками-оракулами, предлагается независимый алгоритм самостоятельной проверки достоверности передаваемых данных сенсором-видеокамерой. Следует надеяться, что другие производители сенсоров также последуют этому примеру, что позволит создать действительно децентрализованную свободную сеть, в которой не будет необходимости в доверенной третьей стороне.
ССЫЛКИ
[1] M. Iansiti, K.R. Lakhani "The Truth about Blockchain", Harvard Business Review, January 2017.
[2] D. Drescher, “Blockchain Basics”, mitp, Chapter 14, 2017.
[3] Patent Pending, B16000DE / FK, em 18-009.